Returning to the launcher from another app left the search bar's text field focused, with the on-screen keyboard up. Typing on the physical keyboard then went into the search bar - the IME commits characters to the focused text field - while the search results never appeared, because the key event handler deliberately leaves keys alone while the text field has the focus. Coming home looked like the launcher had stopped responding to the keyboard; it happens with a freshly started launcher and a plain app switch, with no search ever opened. Give that focus up again one frame after the launcher is resumed, and hide the on-screen keyboard, as long as the home screen is what is shown. Only on a resume (pauseTime > 0), so that a search component used as the home screen can still focus itself when the launcher starts. Also set isSearchBarFocused back to false when the text field loses the focus, like upstream does. LauncherSearchBar requests focus whenever that flag is true, so only ever setting it to true made the text field focus itself again after it had been unfocused - which is what kept the on-screen keyboard around. Clear the search query before resetting the page in the resume path, so that a stale query is gone even if the page transition is interrupted. Note: the focus fix is a workaround for the framework/IME handing the focus back to the text field; it is not verified on the device yet.
Kvaesitso
Kvaesitso is a search focused, free and open source launcher for Android.
Installation
Using an F-Droid client and MM20's repo
The preferred way of installation is using the F-Droid application. That way you will always be notified about updates. Kvaesitso is available in the official F-Droid repository, but all features depending on non-foss external APIs were removed. For feature-complete builds you can add MM20's repository. Just scan the code below or open the link on your phone:
The same version is also available in IzzyOnDroid's repository.
Manual installation
You can also download the latest release from the releases page and install it manually.
Report issues
If you notice any bugs or issues create a new issue in the issue tracker. Before you do, please search the existing issues for any similar issues. Please include any relevant information such as steps to reproduce, stack traces, logs, and device information. These information can be founder under Settings > Debug > Crash reporter and Settings > Debug > Export debug information.
Feature requests
If you have an idea for a new feature, just create a new issue. However, there is no guarantee that they will be implemented. If it's important for you, consider implementing it yourself, see contribute.
Contribute
Contributions are always welcome. If you want to fix any existing issues or implement smaller new features just create a new pull request. If you plan to implement any (bigger) new features, please create an issue first so we can discuss if and how this feature should be implemented.
If you want to help translating, see how to translate the project.
Links
- User guide: https://kvaesitso.mm20.de/docs/user-guide
- F-Droid-Repository: https://fdroid.mm20.de
Thanks to
- @EliotAku for the app icon
- All translators and code contributors
License
This software is free software licensed under the GNU General Public License 3.0.
Copyright (C) 2021–2026 MM2-0 and the Kvaesitso contributors
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
The plugin SDK modules (plugins/sdk and core/shared) are licensed under the Apache License 2.0.