Migrate docs to VitePress

This commit is contained in:
MM20
2024-02-05 01:02:32 +01:00
parent 6c4e068fac
commit 78b0822e34
112 changed files with 2011 additions and 23088 deletions
@@ -1 +0,0 @@
label: Contributor Guide
@@ -1,9 +1,5 @@
---
sidebar_position: 2
---
# Feature Requests
If you have an idea for a new feature, just create a new issue. Please be as descriptive as possible, this will greatly enhance your chances of not simply being ignored.
Approved requests will be marked with the <span class="badge badge--info">enhancement</span> label. However this does not give any information about how soon the feature will be implemented.
Approved requests will be marked with the <Badge type="info">[enhancement](https://github.com/MM2-0/Kvaesitso/labels/enhancement)</Badge> label. However this does not give any information about how soon the feature will be implemented.
+4 -3
View File
@@ -18,9 +18,10 @@ There are two components: i18n and units:
Each unit has a `unit_[name]` and a `unit_[name]_symbol` resource. `unit_[name]_symbol` is the
symbol that is used in the search query. For SI units, this should typically be the SI symbol (m, s, kg and so on),
but other, non-SI units may need their symbols to be translated (for example, nautical miles or horse powers).
:::caution
For technical reasons, these symbols may not contain spaces.
:::
> [!CAUTION]
> For technical reasons, these symbols may not contain spaces.
`unit_[name]` is the full name of the unit that is used in the unit converter results. It's a plural resource, for different quantities of that unit.
## Icons and other resources
+1 -1
View File
@@ -4,4 +4,4 @@ sidebar_position: 0
# Get Involved
You want to get involved and support the development? Whether you are a developer or not this guide is what you are looking for.
You want to get involved and support the development? Whether you can code or not, there are a lot of ways you can support the development.
@@ -1,9 +1,3 @@
---
sidebar_position: 0
---
import BugReportRoundedIcon from '@mui/icons-material/BugReportRounded'
# Report Bugs
The easiest way to get involved is to report bugs on the [issue tracker](https://github.com/MM2-0/Kvaesitso/issues). Before you open a new issue, please make sure you have searched for existing issues to avoid duplications and that you are running the latest release version of the launcher.
@@ -19,7 +13,7 @@ Please include all relevant information such as:
When the launcher crashes, a crash report is automatically generated. You can find these crash reports at Settings > Debug > Crash Reporter.
Use the <BugReportRoundedIcon/> icon in the top right corner to open an new issue with that report. Make sure to fill in additional information before submitting, such as steps to reproduce (if possible) or what you were trying to do when the launcher crashed.
Use the <span class="material-symbols-rounded">bug_report</span> icon in the top right corner to open an new issue with that report. Make sure to fill in additional information before submitting, such as steps to reproduce (if possible) or what you were trying to do when the launcher crashed.
## Logs
+28
View File
@@ -0,0 +1,28 @@
import type { DefaultTheme } from 'vitepress/types/default-theme'
export const ContributorGuideSidebar: DefaultTheme.SidebarItem[] = [
{
text: 'Get Involved',
link: '/docs/contributor-guide/',
},
{
text: 'Bug Reports',
link: '/docs/contributor-guide/report-bugs',
},
{
text: 'Feature Requests',
link: '/docs/contributor-guide/feature-requests',
},
{
text: 'Translations and i18n',
link: '/docs/contributor-guide/i18n',
},
{
text: 'Pull Requests',
link: '/docs/contributor-guide/pull-requests',
},
{
text: 'Donate',
link: '/docs/contributor-guide/sponsor',
},
]
+1 -5
View File
@@ -1,7 +1,3 @@
---
sidebar_position: 1000
---
# Sponsor
# Donate
If you like my work and you want to support the project financially, you can sponsor me on [GitHub sponsors](https://github.com/sponsors/MM2-0).
-1
View File
@@ -1 +0,0 @@
label: Developer Guide
@@ -1,2 +0,0 @@
label: External APIs
position: 2
@@ -2,6 +2,5 @@
Kvaesitso integrates with a number of external APIs. Most of them require some sort of authentication, like an API key. These API keys are not part of the GitHub repository. If you want to build Kvaesitso from source with all features enabled, follow the steps in this chapter.
:::info
Kvaesitso is still buildable even without these steps, but some features will be disabled in the resulting APK. If all you need is a debug build for testing purposes, you can probably skip this chapter.
:::
> [!INFO]
> Kvaesitso is still buildable even without these steps, but some features will be disabled in the resulting APK. If all you need is a debug build for testing purposes, you can probably skip this chapter.
@@ -1,30 +0,0 @@
# Microsoft Graph Services
Microsoft Graph Services are used for OneDrive search. To enable OneDrive integration in your builds, follow these steps:
1. Go to the [Microsoft Azure Portal](https://portal.azure.com)
1. Create a new project.
1. Search for App Registrations
1. Add a new registration
1. Supported account types: Accounts in any organizational directory and personal Microsoft accounts
1. Add an authentication platform
1. Go to Authentication
1. Add a platform > Android
1. Enter the debug package name (de.mm20.launcher2.debug) and the signature hash of your debug key
1. You can use the following command to generate the signature hash:
`keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64`
1. Click Configure > Done
1. In the newly created Android section, click on Add URI
1. Add package name (de.mm20.launcher2.release) and signature hash of your release key
1. Download the client details
1. In the debug client row, click on View
1. Copy the JSON below MSAL Configuration to `ms-services/src/debug/res/raw/msal_auth_config.json` (you'll need to create this file first)
1. Repeat the previous step for the release config
1. Add the required scopes
1. Go to API permissions
1. Add a permission
1. Select Microsoft Graph > Delegated permissions
1. Tick the following scopes:
- Files.Read.All
- User.Read
1. Click Add permissions
@@ -43,6 +43,8 @@ Bright Sky is an API that converts data published by the Deutscher Wetterdienst
to work with JSON format. The API is free to use and requires no additional configuration, however
it only provides weather data for locations in Germany.
---
[^1]:
These weather providers do not provide any means of geocoding or location lookup. Instead, the
Android Geocoder API is used to lookup locations (in fixed location mode) and location names (in
@@ -107,10 +107,9 @@ To your `appfilter.xml` file, add the following:
`prefix` is the prefix of the icon drawables. You need to provide one drawable for each day of the
month (`calendar_1`, `calendar_2`, etc. up to `calendar_31`).
:::note
Single digit days must not be zero-padded (e.g. `calendar_1` is correct but `calendar_01` is not).
Make sure that all 31 drawables are present, or the launcher will reject the icon.
:::
> [!NOTE]
> Single digit days must not be zero-padded (e.g. `calendar_1` is correct but `calendar_01` is not).
> Make sure that all 31 drawables are present, or the launcher will reject the icon.
#### Clock icons
@@ -136,9 +135,8 @@ The icon itself must be either a `LayerDrawable`, or an `AdaptiveIconDrawable` w
a `LayerDrawable`
as its foreground layer.
:::note
Some launchers only support `AdaptiveIconDrawable`s, so you should prefer that if possible.
:::
> [!NOTE]
> Some launchers only support `AdaptiveIconDrawable`s, so you should prefer that if possible.
The entry in the `appfilter.xml` file tells the launcher which layer
corresponds to which clock hand. If your icon does not have all three clock hands, you can omit the
@@ -188,41 +186,38 @@ must follow these rules:
above, the hour hand is offset by 300°, the minute hand by 60° and the second hand by 180°. This
means that the clock shows 10:10:30 in its default state.
- To let the launcher know which time the clock shows in its default state, you can use
the `defaultHour`, `defaultMinute` and `defaultSecond` attributes in the `appfilter.xml` entry.
the `defaultHour`, `defaultMinute` and `defaultSecond` attributes in the `appfilter.xml` entry.
:::note
> [!NOTE]
>
> `defaultHour`, `defaultMinute` and `defaultSecond` are independent from each other. If you
> set `defaultHour` to 10, then it is expected that the hour hand drawable is rotated by exactly 300°,
> regardless of the positions of the minute and second hands even if that means that the clock shows
> an impossible time.
`defaultHour`, `defaultMinute` and `defaultSecond` are independent from each other. If you
set `defaultHour` to 10, then it is expected that the hour hand drawable is rotated by exactly 300°,
regardless of the positions of the minute and second hands even if that means that the clock shows
an impossible time.
:::
:::info
**Why these numbers?**
Launchers use the `android:level` attribute to
animate the clock hands. A drawable's level is a number
between 0 and 10000 that influences how the drawable is drawn. For `RotateDrawable`s, the level
attribute is used to set the rotation angle. Each level corresponds
to 1/10000 of the angle between `android:fromDegrees` and `android:toDegrees`.
For the second hand, it is expected
that [10 levels are equal to 1 second](https://cs.android.com/android/platform/superproject/+/refs/heads/master:frameworks/libs/systemui/iconloaderlib/src/com/android/launcher3/icons/ClockDrawableWrapper.java;drc=7346c436e5a11ce08f6a80dcfeb8ef941ca30176;l=84).
which means that 600 levels correspond to a full rotation. But since a drawable has 10000 levels,
the total angle must be `360/600 * 10000 = 6000` degrees.
For the minute layer, one level is equal to one minute so 60 levels are equal to a full rotation.
This means that the total angle must be `360/60 * 10000 = 60000` degrees.
For the hour layer, one level is also equal to one minute, so there are `12 * 60 = 720` levels in a
full rotation. `360/720 * 10000 = 5000` degrees.
Technically, you could also use other kinds of drawables that support the `android:level`
attribute (such as a `LevelListDrawable`), as long as you follow the rules above.
:::
> [!INFO]
>
> **Why these numbers?**
>
> Launchers use the `android:level` attribute to
> animate the clock hands. A drawable's level is a number
> between 0 and 10000 that influences how the drawable is drawn. For `RotateDrawable`s, the level
> attribute is used to set the rotation angle. Each level corresponds
> to 1/10000 of the angle between `android:fromDegrees` and `android:toDegrees`.
>
> For the second hand, it is expected
> that [10 levels are equal to 1 second](https://cs.android.com/android/platform/superproject/+/refs/heads/master:frameworks/libs/systemui/iconloaderlib/src/com/android/launcher3/icons/ClockDrawableWrapper.java;drc=7346c436e5a11ce08f6a80dcfeb8ef941ca30176;l=84).
> which means that 600 levels correspond to a full rotation. But since a drawable has 10000 levels,
> the total angle must be `360/600 * 10000 = 6000` degrees.
>
> For the minute layer, one level is equal to one minute so 60 levels are equal to a full rotation.
> This means that the total angle must be `360/60 * 10000 = 60000` degrees.
>
> For the hour layer, one level is also equal to one minute, so there are `12 * 60 = 720` levels in a
> full rotation. `360/720 * 10000 = 5000` degrees.
>
> Technically, you could also use other kinds of drawables that support the `android:level`
> attribute (such as a `LevelListDrawable`), as long as you follow the rules above.
### Themed icons
@@ -1,5 +1,6 @@
label: Integrations
label: Plugins
position: 4
link:
type: generated-index
title: Integrations
title: Plugins
description: In this chapter you will learn how external apps can integrate with Kvaesitso.
@@ -0,0 +1,5 @@
# Get Started
First, create a new project in Android Studio.
## Get the plugin SDK
@@ -0,0 +1 @@
# File Search
@@ -0,0 +1 @@
# Search provider
+56
View File
@@ -0,0 +1,56 @@
import type { DefaultTheme } from 'vitepress/types/default-theme'
export const DeveloperGuideSidebar: DefaultTheme.SidebarItem[] = [
{
text: 'Developer Guide',
link: '/docs/developer-guide/',
},
{
text: 'Setup',
link: '/docs/developer-guide/setup',
},
{
text: 'External APIs',
link: '/docs/developer-guide/external-apis/',
items: [
{
text: 'Currency Exchange Rates',
link: '/docs/developer-guide/external-apis/exchange-rates',
},
{
text: 'Google Cloud Services',
link: '/docs/developer-guide/external-apis/google',
},
{
text: 'Weather Services',
link: '/docs/developer-guide/external-apis/weather',
},
{
text: 'Wikipedia',
link: '/docs/developer-guide/external-apis/wikipedia',
},
],
},
{
text: 'Project Structure',
items: [
{
text: 'Modules',
link: '/docs/developer-guide/project-structure/modules',
},
{
text: 'Libraries',
link: '/docs/developer-guide/project-structure/libraries',
},
],
},
{
text: 'Integrations',
items: [
{
text: 'Icon Packs',
link: '/docs/developer-guide/integrations/icon-packs',
},
],
},
]
-2
View File
@@ -1,2 +0,0 @@
label: User Guide
position: 0
@@ -1,4 +0,0 @@
label: Concepts
link:
type: generated-index
title: Concepts
@@ -1,5 +1,3 @@
import StarBorderRoundedIcon from '@mui/icons-material/StarBorderRounded'
# Favorites
Favorites allow even faster access to selected items.
@@ -12,7 +10,7 @@ Favorites consist of:
## Pin apps to favorites
You can pin any app and any search result to favorites by long pressing it and selecting the <StarBorderRoundedIcon /> icon. Remove items by pressing the same icon again.
You can pin any app and any search result to favorites by long pressing it and selecting the <span class="material-symbols-rounded">star_border</span> icon. Remove items by pressing the same icon again.
Some apps allow the creation of home screen shortcuts. These shortcuts will also appear in the favorites section.
@@ -24,9 +22,8 @@ Favorites can appear in three different places:
- In the [favorites widget](/docs/user-guide/widgets/favorites-widget) (not enabled by default)
- In the [clock widget](/docs/user-guide/widgets/clock#dynamic-components) (not enabled by default)
:::info
If you have the calendar widget enabled, pinned calendar events will not appear in any of the above places. Instead, they will appear in the calendar widget.
:::
> [!INFO]
> If you have the calendar widget enabled, pinned calendar events will not appear in any of the above places. Instead, they will appear in the calendar widget.
## Customization
@@ -1,9 +1,3 @@
import EditRoundedIcon from '@mui/icons-material/EditRounded'
import AddRoundedIcon from '@mui/icons-material/AddRounded'
import MoreVertRoundedIcon from '@mui/icons-material/MoreVertRounded'
import DeleteRoundedIcon from '@mui/icons-material/DeleteRounded'
import CopyRoundedIcon from '@mui/icons-material/ContentCopyRounded'
# Tags
Tags are a way to organize apps and other items.
@@ -15,7 +9,7 @@ Tags are a way to organize apps and other items.
There are three ways to create tags and assign them to items:
1. Long-press any search result and select “Customize” (or the <EditRoundedIcon /> icon) in the menu.
1. Long-press any search result and select “Customize” (or the <span class="material-symbols-rounded">edit</span> icon) in the menu.
2. Type a comma-separated list of tags into the tags input field.
OR
@@ -29,7 +23,7 @@ OR
1. Go to Settings > Search > Tags
2. On this screen, you can:
- Create a new tag by tapping on the <AddRoundedIcon /> in the bottom right corner
- Create a new tag by tapping on the <span class="material-symbols-rounded">add</span> in the bottom right corner
- Quickly assign multiple apps to a tag:
- Tap on a tag
- In the dialog sheet, tap on “x items selected”
@@ -37,10 +31,10 @@ OR
- Rename a tag:
- Tap on a tag and change the name in the dialog sheet
- Delete a tag:
- Tap on the <MoreVertRoundedIcon /> icon and select <DeleteRoundedIcon /> Delete
- Tap on the <span class="material-symbols-rounded">more_vert</span> icon and select <span class="material-symbols-rounded">delete</span> Delete
- Duplicate a tag:
- Tap on the <MoreVertRoundedIcon /> and select <CopyRoundedIcon /> Duplicate
- Tap on the <span class="material-symbols-rounded">more_vert</span> and select <span class="material-symbols-rounded">content_copy</span> Duplicate
- Merge two tags:
- Tap on one of the two tags you want to merge
- Change the name of that tag to the name of the other tag
- The contents of the two tags will be merged
- The contents of the two tags will be merged
@@ -1,4 +0,0 @@
label: Customization
link:
type: generated-index
title: Customization
@@ -1,12 +1,3 @@
import AddIcon from '@mui/icons-material/AddRounded'
import EditIcon from '@mui/icons-material/EditRounded'
import MoreVertIcon from '@mui/icons-material/MoreVertRounded'
import ContentCopyIcon from '@mui/icons-material/ContentCopyRounded'
import AutoFixHighIcon from '@mui/icons-material/AutoFixHighRounded'
import LightModeIcon from '@mui/icons-material/LightModeRounded'
import DarkModeIcon from '@mui/icons-material/DarkModeRounded'
import PaletteIcon from '@mui/icons-material/PaletteRounded'
# Color Schemes
Color schemes can be managed at settings > appearance > color schemes.
@@ -26,18 +17,16 @@ A high contrast theme using only black and white.
## Custom color schemes
Customize the launchers color scheme to your likings. You can have as many color schemes as you want.
Create a new color scheme by clicking the <AddIcon/> button in the bottom right corner, or by
selecting <MoreVertIcon /> > <ContentCopyIcon /> **Duplicate** on an existing color scheme.
You can then edit a color scheme by selecting <MoreVertIcon /> > <EditIcon /> **Edit**.
Create a new color scheme by clicking the <span class="material-symbols-rounded">add</span> button in the bottom right corner, or by
selecting <span class="material-symbols-rounded">more_vert</span> > <span class="material-symbols-rounded">content_copy</span> **Duplicate** on an existing color scheme.
You can then edit a color scheme by selecting <span class="material-symbols-rounded">more_vert</span> > <span class="material-symbols-rounded">edit</span> **Edit**.
Kvaesitso uses the Material Design 3 system for its user interface. The color schemes are therefore
based on the Material Design 3 color system.
:::info
For a detailed explanation of the color system, see https://m3.material.io/styles/color/the-color-system
:::
> [!INFO]
> For a detailed explanation of the color system, see https://m3.material.io/styles/color/the-color-system
### Key colors
@@ -45,8 +34,8 @@ A color scheme is defined by a set of key colors. These key colors are not used
they are used to generate the rest of the color scheme. The key colors are:
- **Primary**: mainly used for interactive key components, like buttons, switches and input
fields. Also used for [themed icons](/docs/user-guide/customization/themed-icons/) and as elevation overlay color (cards, dialogs and other elevated
surfaces will have a slight tint of this color)
fields. Also used for [themed icons](/docs/user-guide/customization/themed-icons) and as elevation overlay color (cards, dialogs and other elevated
surfaces will have a slight tint of this color)
- **Secondary**: used for less prominent components, such as chips, badges and some (non interactive) headlines
- **Tertiary**: not used anywhere at the moment, reserved for future use
- **Neutral**: used as background for cards, dialogs, settings, and other surfaces. Also used for text and some icons
@@ -60,7 +49,7 @@ usually based on the wallpaper.
Material Design 3 comes with an algorithm to generate an entire key color palette based on a single
seed color (this is what the system uses to generate an entire color palette based on a single
wallpaper key color). To make use of this algorithm, each key color (except primary) has
a <AutoFixHighIcon /> **From primary** button, which generates a new color based on the currently
a <span class="material-symbols-rounded">auto_fix_high</span> **From primary** button, which generates a new color based on the currently
selected primary color.
### Scheme colors
@@ -68,27 +57,25 @@ selected primary color.
Scheme colors are colors that are derived from the key colors and that are used for actual UI
components.
:::info
To derive these colors, Material 3 uses a color model called HCT (Hue, Chroma, Tone). In its core,
it is similar to the probably more commonly known HSL (Hue, Saturation, Lightness) color model, but it
better reflects how humans perceive colors. For more information, read https://material.io/blog/science-of-color-design
Each scheme color is generated from a specific key color by changing the key color's tone.
:::
> [!INFO]
> To derive these colors, Material 3 uses a color model called HCT (Hue, Chroma, Tone). In its core,
> it is similar to the probably more commonly known HSL (Hue, Saturation, Lightness) color model, but it
> better reflects how humans perceive colors. For more information, read https://material.io/blog/science-of-color-design
>
> Each scheme color is generated from a specific key color by changing the key color's tone.
To learn how the different scheme colors are used in components, refer to the
[Material 3 Design docs](https://m3.material.io/styles/color/the-color-system/color-roles).
Examples are shown in the color scheme editor. Keep in mind, that not all scheme colors are currently
used by Kvaesitso.
:::tip
Long press a color to display its name.
:::
> [!TIP]
> Long press a color to display its name.
For each scheme color, there is one variant for light mode, and one for dark mode. To toggle between
light and dark mode variants, use the <LightModeIcon /> and <DarkModeIcon /> buttons in the top right corner
light and dark mode variants, use the <span class="material-symbols-rounded">light_mode</span> and <span class="material-symbols-rounded">dark_mode</span> buttons in the top right corner
of each section.
For each scheme color, you can either select a custom color, or you can derive a color from a key color.
To derive a color from a key color, select <PaletteIcon /> **Palette**, and then select the key color
To derive a color from a key color, select <span class="material-symbols-rounded">palette</span> **Palette**, and then select the key color
to derive from. You can then adjust the tone of the derived color by dragging the **T** slider.
@@ -1,8 +1,6 @@
import EditRoundedIcon from '@mui/icons-material/EditRounded'
# Per-Item Customization
Apps and other search results can be customized individually. Long-press an item and select Customize (or the <EditRoundedIcon /> icon) in the menu.
Apps and other search results can be customized individually. Long-press an item and select Customize (or the <span class="material-symbols-rounded">edit</span> icon) in the menu.
## Custom labels
@@ -7,13 +7,10 @@ Themed Icons is a feature that adapt app icons to the launcher's color scheme:
Themed icons can be enabled for supported apps in Settings > Grid & icons > Themed Icons.
:::note
If you are an app developer, you can support themed icons by adding a `<monochrome>` drawable to
your app icon. For more information refer to
[the official documentation](https://developer.android.com/develop/ui/views/launch/icon_design_adaptive#add_your_adaptive_icon_to_your_app).
:::
> [!NOTE]
> If you are an app developer, you can support themed icons by adding a `<monochrome>` drawable to
> your app icon. For more information refer to
> [the official documentation](https://developer.android.com/develop/ui/views/launch/icon_design_adaptive#add_your_adaptive_icon_to_your_app).
While themed icons were originally introduced in Android 13, support has been backported to Android
8.0-12.
@@ -30,21 +27,19 @@ that pack using the toggle button that appears in the icon pack preference:
![Themed icon pack](/img/themed-icon-pack.png)
:::note
If you are an icon pack developer, you can indicate that your icon pack supports themed icons by
adding
the following intent filter:
```xml
<intent-filter>
<action android:name="app.lawnchair.icons.THEMED_ICON" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
```
:::
> [!NOTE]
> If you are an icon pack developer, you can indicate that your icon pack supports themed icons by
> adding
> the following intent filter:
>
> ```xml
> <intent-filter>
>
> <action android:name="app.lawnchair.icons.THEMED_ICON" />
> <category android:name="android.intent.category.DEFAULT" />
>
> </intent-filter>
> ```
## Auto generated themed icons
+3 -4
View File
@@ -6,13 +6,13 @@ sidebar_position: 2
## How do I get app icons on the home screen?
There are two options:
There are two options:
1. Go to Settings > Home screen > Clock and enable "Favorites". This will display the first row of pinned items
as part of the clock widget.
as part of the clock widget.
2. Scroll down to the end of the widgets list, select "Edit widgets" > "Add widget" > "Favorites" to add
the favorites widget to the home screen.
the favorites widget to the home screen.
## Can I remove / customize the clock?
@@ -22,4 +22,3 @@ style. There is also an "empty style" that will remove the clock entirely.
## The toggle to grant notification access is disabled
Please refer to the [Restricted Settings on Android 13+](/docs/user-guide/troubleshooting/restricted-settings) page.
@@ -1,4 +0,0 @@
label: Integrations
link:
type: generated-index
title: Integrations
@@ -1,4 +0,0 @@
label: Search
link:
type: generated-index
title: Search
@@ -1,11 +1,9 @@
import AddRoundedIcon from '@mui/icons-material/AddRounded'
# Quick Actions
Quick actions are shown below the search terms. They are shortcuts that pass your search term to another app to do _something_ with it.
There are four kinds of actions: built-in actions, web search actions, app search actions and custom intents.
Quick actions can be customized at settings > search > quick actions. Click the <AddRoundedIcon /> icon to create a new action. Long-press and drag actions to reorder them.
Quick actions can be customized at settings > search > quick actions. Click the <span class="material-symbols-rounded">add</span> icon to create a new action. Long-press and drag actions to reorder them.
## Built-in
@@ -24,7 +22,7 @@ Built-in actions can be enabled or disabled using the switches. There are curren
Web search actions are shortcuts to perform a search on a website, e.g. to search on Google.
To create a new web search action, click the <AddRoundedIcon /> button in the bottom right corner and select _Search on a website_.
To create a new web search action, click the <span class="material-symbols-rounded">add</span> button in the bottom right corner and select _Search on a website_.
In the next step, enter the URL of the website, e.g. "google.com" and press continue. The launcher will try to fetch the search specification from the website and proceed to the last step.
@@ -45,11 +43,11 @@ In the last step, you can customize the web search action. Depending on whether
- Open the website you wish to add in a browser
- Use the website's search field to search for anything
- Look at the browser's URL bar. Find the search term you just searched for in the URL
:::info
Spaces and special characters might be encoded. Don't worry about it, the launcher will handle the encoding for you.
If you can't find the search term anywhere, try to disable Javascript and try again. If that still doesn't work, then that website cannot be used.
:::
> [!INFO]
> Spaces and special characters might be encoded. Don't worry about it, the launcher will handle the encoding for you.
>
> If you can't find the search term anywhere, try to disable Javascript and try again. If that still doesn't work, then that website cannot be used.
- Replace the search term in the URL with `${1}`. Copy the URL and paste it into the URL template field.
@@ -63,15 +61,14 @@ In the last step, you can customize the web search action. Depending on whether
## App search
:::info
App search actions are an experimental feature. Some actions might not work as expected.
:::
> [!INFO]
> App search actions are an experimental feature. Some actions might not work as expected.
App search actions allow you to directly launch an apps search screen for apps that support it. To create a new web search action, click the <AddRoundedIcon /> button in the bottom right corner and select _Search in an app_. A list of apps will appear. Pick an app to search.
App search actions allow you to directly launch an apps search screen for apps that support it. To create a new web search action, click the <span class="material-symbols-rounded">add</span> button in the bottom right corner and select _Search in an app_. A list of apps will appear. Pick an app to search.
### Advanced settings
You probably won't need this but if you know what you're doing, you can use this to pass extra data to the search intent. First, select a data type and a key and click the <AddRoundedIcon /> button to add a new extra. A new text field (or switch in case of a boolean extra) will appear where you can change the extra's value.
You probably won't need this but if you know what you're doing, you can use this to pass extra data to the search intent. First, select a data type and a key and click the <span class="material-symbols-rounded">add</span> button to add a new extra. A new text field (or switch in case of a boolean extra) will appear where you can change the extra's value.
## Custom intent
@@ -79,4 +76,4 @@ If you are an Android developer, you probably know what an [Intent](https://deve
### Advanced settings
**Extras**: here you can add custom extras that are passed along with the intent. First, select a data type and a key and click the <AddRoundedIcon /> button to add a new extra. A new text field (or switch in case of a boolean extra) will appear where you can change the extra's value.
**Extras**: here you can add custom extras that are passed along with the intent. First, select a data type and a key and click the <span class="material-symbols-rounded">add</span> button to add a new extra. A new text field (or switch in case of a boolean extra) will appear where you can change the extra's value.
+118
View File
@@ -0,0 +1,118 @@
import type { DefaultTheme } from 'vitepress/types/default-theme'
export const UserGuideSidebar: DefaultTheme.SidebarItem[] = [
{
text: 'Get Started',
link: '/docs/user-guide/',
},
{
text: 'Frequently Asked Questions',
link: '/docs/user-guide/faq',
},
{
text: 'Concepts',
items: [
{
text: 'Favorites',
link: '/docs/user-guide/concepts/favorites',
},
{
text: 'Tags',
link: '/docs/user-guide/concepts/tags',
},
],
},
{
text: 'Customization',
items: [
{
text: 'Color Schemes',
link: '/docs/user-guide/customization/color-schemes',
},
{
text: 'Per-item Customization',
link: '/docs/user-guide/customization/per-item-customization',
},
{
text: 'Themed Icons',
link: '/docs/user-guide/customization/themed-icons',
},
],
},
{
text: 'Integrations',
items: [
{
text: 'Media Control',
link: '/docs/user-guide/integrations/mediacontrol',
},
{
text: 'Weather',
link: '/docs/user-guide/integrations/weather',
},
],
},
{
text: 'Search',
items: [
{
text: 'Calculator',
link: '/docs/user-guide/search/calculator',
},
{
text: 'Unit Converter',
link: '/docs/user-guide/search/unit-converter',
},
{
text: 'Quick Actions',
link: '/docs/user-guide/search/quickactions',
},
],
},
{
text: 'Widgets',
items: [
{
text: 'Calendar Widget',
link: '/docs/user-guide/widgets/calendar-widget',
},
{
text: 'Clock Widget',
link: '/docs/user-guide/widgets/clock',
},
{
text: 'Favorites Widget',
link: '/docs/user-guide/widgets/favorites-widget',
},
{
text: 'Music Widget',
link: '/docs/user-guide/widgets/music-widget',
},
{
text: 'Notes Widget',
link: '/docs/user-guide/widgets/notes-widget',
},
{
text: 'Weather Widget',
link: '/docs/user-guide/widgets/weather-widget',
},
],
},
{
text: 'Troubleshooting',
items: [
{
text: 'Crash Reporter',
link: '/docs/user-guide/troubleshooting/crashreporter',
},
{
text: 'Reccuring Permission Requests',
link: '/docs/user-guide/troubleshooting/granted-permissions',
},
{
text: 'Restricted Settings on Android 13+',
link: '/docs/user-guide/troubleshooting/restricted-settings',
},
],
},
]
@@ -1,4 +0,0 @@
label: Troubleshooting
link:
type: generated-index
title: Troubleshooting and Debugging
@@ -0,0 +1,15 @@
# Crash Reporter
When the launcher crashes, a notification is posted. When you tap on that notification, the crash reporter screen opens. You can also navigate to that screen like this: Settings > Debug > Crash reporter.
The crash reporter lists crashes and exceptions.
## Crashes
Crashes are marked with the <span class="material-symbols-rounded">error</span> icon. Crashes are unexpected errors that were not handled by launcher. They are often a consequence of bugs and should therefore be reported. You can click the <span class="material-symbols-rounded">bug_report</span> icon in the top right corner to create a new issue on GitHub. Make sure to fill in additional information like steps to reproduce (if possible) or what you were trying to do that lead to the crash.
[Read more about reporting bugs](/docs/contributor-guide/report-bugs).
## Exceptions
Exceptions are marked with the <span class="material-symbols-rounded">warning</span> icon. Exceptions are errors that were handled by the launcher. They can sometimes be helpful to locate bugs and other sources of errors, but as long as you don't notice anything strange, you can safely ignore them and do not need to report them. It is expected that some exceptions will occur while the launcher is running. For example, the most common source of exceptions is network timeouts due to the device being offline.
@@ -1,19 +0,0 @@
import ErrorRoundedIcon from '@mui/icons-material/ErrorRounded'
import BugReportRoundedIcon from '@mui/icons-material/BugReportRounded'
import WarningRoundedIcon from '@mui/icons-material/WarningRounded'
# Crash Reporter
When the launcher crashes, a notification is posted. When you tap on that notification, the crash reporter screen opens. You can also navigate to that screen like this: Settings > Debug > Crash reporter.
The crash reporter lists crashes and exceptions.
## Crashes
Crashes are marked with the <ErrorRoundedIcon/> icon. Crashes are unexpected errors that were not handled by launcher. They are often a consequence of bugs and should therefore be reported. You can click the <BugReportRoundedIcon/> icon in the top right corner to create a new issue on GitHub. Make sure to fill in additional information like steps to reproduce (if possible) or what you were trying to do that lead to the crash.
[Read more about reporting bugs](/docs/contributor-guide/report-bugs).
## Exceptions
Exceptions are marked with the <WarningRoundedIcon/> icon. Exceptions are errors that were handled by the launcher. They can sometimes be helpful to locate bugs and other sources of errors, but as long as you don't notice anything strange, you can safely ignore them and do not need to report them. It is expected that some exceptions will occur while the launcher is running. For example, the most common source of exceptions is network timeouts due to the device being offline.
@@ -1,5 +1,3 @@
import MoreVertRoundedIcon from '@mui/icons-material/MoreVertRounded'
# Restricted Settings on Android 13+
Starting with Android 13, some settings are restricted for sideloaded apps and extra steps are required to enable them.
@@ -23,11 +21,10 @@ The notification access permission is used to display notification badges, and t
<img src="/img/notification-access-3.png" width="300"/>
5. Tap on the 3-dot-menu (<MoreVertRoundedIcon/>) in the top-right corner.
5. Tap on the 3-dot-menu (<span class="material-symbols-rounded">more_vert</span>) in the top-right corner.
:::info
This menu only shows up if you have tried to enable a restricted setting before. **Step 2 is crucial for this to work.**
:::
> [!INFO]
> This menu only shows up if you have tried to enable a restricted setting before. **Step 2 is crucial for this to work.**
6. Tap on “Allow restricted settings”
@@ -53,15 +50,13 @@ The accessibility service is used to perform certain gesture actions, like turni
<img src="/img/notification-access-3.png" width="300"/>
5. Tap on the 3-dot-menu (<span class="material-symbols-rounded">more_vert</span>) in the top-right corner.
5. Tap on the 3-dot-menu (<MoreVertRoundedIcon/>) in the top-right corner.
:::info
This menu only shows up if you have tried to enable a restricted setting before. **Step 2 is crucial for this to work.**
:::
> [!INFO]
> This menu only shows up if you have tried to enable a restricted setting before. **Step 2 is crucial for this to work.**
6. Tap on “Allow restricted settings”
<img src="/img/notification-access-4.png" width="300"/>
7. Go back to the accessibility screen. Kvaesitso is no longer disabled, and you can enable it.
7. Go back to the accessibility screen. Kvaesitso is no longer disabled, and you can enable it.
@@ -1,4 +0,0 @@
label: Widgets
link:
type: generated-index
title: Widgets
@@ -1,9 +1,7 @@
import TuneRoundedIcon from '@mui/icons-material/TuneRounded'
# Calendar Widget
Display calendar events and appointments for the next seven days. In the widget settings, you can
choose which calendars to display: Tap 'Edit widgets', then tap the <TuneRoundedIcon /> icon for the
choose which calendars to display: Tap 'Edit widgets', then tap the <span class="material-symbols-rounded">tune</span> icon for the
calendar widget. There is also an option to hide all-day events.
## My calendars don't show up!
@@ -12,6 +10,7 @@ Calendar apps need to use the Android calendar provider APIs to store their cale
to make them accessible for other apps (like this widget).
The calendar provider framework consists of two parts:
- calendar providers that serve as a backend to store and sync calendar data
- calendar apps that provide a user interface to view and modify calendar data
@@ -37,6 +36,7 @@ this widget cannot display Proton Calendar events. As a workaround, if you are o
plan, you can [share your calendar via link](https://proton.me/support/share-calendar-via-link) and
then sync that calendar link using [ICSx⁵](https://f-droid.org/de/packages/at.bitfire.icsdroid/). However,
this solution has some drawbacks:
- The synced calendar is read-only, if you need to make changes, you need to do that in the Proton Calendar app
- The calendar widget will not open the event in the Proton Calendar app, but in the default calendar app
- You effectively bypass Proton's privacy features
@@ -62,4 +62,4 @@ Simple Calendar settings, and enabling 'CalDAV sync'. There you can select your
To migrate your existing Simple Calendar calendars to the new calendar provider, select
'Export events to an .ics file', then clear them from Simple Calendar (settings > Delete all events and tasks)
and reimport them ('Import events from an .ics file'). Make sure to select the right calendar
and that 'Ignore event types in the file, always use the default one' is ticked.
and that 'Ignore event types in the file, always use the default one' is ticked.
@@ -1,3 +1,3 @@
# Favorites Widget
A widget that displays your [favorites](/docs/user-guide/concepts/favorites). This mirrors the favorites grid that is shown above the app grid but brings them to the widget page. This widget is not enabled by default.
A widget that displays your [favorites](/docs/user-guide/concepts/favorites). This mirrors the favorites grid that is shown above the app grid but brings them to the widget page.
@@ -1,5 +1,3 @@
import MoreVertRoundedIcon from '@mui/icons-material/MoreVertRounded'
# Notes Widget
The notes widget allows you to write down quick notes on your home screen. It is not enabled by
@@ -12,6 +10,7 @@ and selecting "Add widget" > "Notes".
The notes widget consists of a text field that you can use to write down notes. Basic markdown
syntax is supported:
<details>
- `**Bold**`
@@ -36,14 +35,14 @@ syntax is supported:
### Export notes
Notes can be exported as markdown files. To do so, tap the <MoreVertRoundedIcon /> icon in the bottom right corner and select "Save".
Notes can be exported as markdown files. To do so, tap the <span class="material-symbols-rounded">more_vert</span> icon in the bottom right corner and select "Save".
### Add notes
A new instance of the notes widget can be added by tapping the <MoreVertRoundedIcon /> in an existing notes widget and selecting "New note".
A new instance of the notes widget can be added by tapping the <span class="material-symbols-rounded">more_vert</span> in an existing notes widget and selecting "New note".
### Dismiss notes
Notes can be dismissed by tapping the <MoreVertRoundedIcon /> icon in the bottom right corner and
Notes can be dismissed by tapping the <span class="material-symbols-rounded">more_vert</span> icon in the bottom right corner and
selecting "Dismiss". If you dismiss a note, the widget will be removed, unless it is the last instance
of a note widget. In this case the note widget's content will be cleared instead.
@@ -1,14 +1,12 @@
import TuneRoundedIcon from '@mui/icons-material/TuneRounded'
# Weather Widget
A widget that displays current and future weather data.
## Configuration
The weather widget can be configured by tapping "Edit widgets" and then selecting the <TuneRoundedIcon /> icon
The weather widget can be configured by tapping "Edit widgets" and then selecting the <span class="material-symbols-rounded">tune</span> icon
on the weather widget.
- **Compact mode**: If enabled, the widget will only display the current weather data. Forecast data will be hidden.
- **Weather integration settings**: A shortcut to [Settings > Integrations > Weather](/docs/user-guide/integrations/weather). This is where you can configure
which weather provider to use and which location to get weather data for.
which weather provider to use and which location to get weather data for.