• Kvaesitso 1.40.2 type-to-search and agenda (build 10)
    Some checks are pending
    Trigger F-Droid repository rebuild / trigger (release) Waiting to run
    Stable

    jonas released this 2026-09-17 08:57:00 +02:00 | 0 commits to main since this release

    Tenth build of the fork. The clock widget's agenda is configurable.

    Changes since v1.40.2-typing.9

    • Pick which calendars the agenda shows. The agenda used to inherit the calendar search
      settings' exclusions and nothing else. The clock widget now has its own selection
      (clockWidgetCalendarPartExcludedCalendars): EventsCalendars expands into a checkbox per
      calendar, tinted with the calendar's colour. Calendars you disable in Settings → Search → Calendar
      are not listed there at all, since the launcher does not read them; the Manage calendars
      button next to the list opens that screen (it is now reachable directly via a settings route).
      If the calendar permission is missing, the section says so and offers to grant it.
    • Choose how many entries are shown. The Visible events slider (1–8, default 4) sets how many
      event rows the agenda renders before it collapses the rest into a "+N more events" row. The
      collapse row now counts the events it hides after the configured number of rows instead of
      reserving one of them, so five events with the default now read as four rows plus "+1 more event"
      rather than three plus "+2".

    Both settings default to the previous behaviour, so nothing changes until you open the clock
    widget's configuration (home screen edit mode, or Settings → Home screen → Clock widget → the
    tune button). No migration, no data loss on update.

    Signed with the same key as previous builds, so it installs in place over the running launcher.

    Downloads
  • Kvaesitso 1.40.2 type-to-search and agenda (build 9)
    Some checks failed
    Trigger F-Droid repository rebuild / trigger (release) Has been cancelled
    Build Nightly APK / build (push) Has been cancelled
    Stable

    jonas released this 2026-09-12 15:47:27 +02:00 | 2 commits to main since this release

    Second attempt at the weather/location battery drain. The first one (typing.8) keyed the skip
    on WeatherSettingsData.managedLocation, which only exists once "managed location" has been
    picked explicitly for the provider — so with an empty weatherProviderSettings the guard never
    fired and the worker kept requesting a location and retrying every 30 seconds.

    With a push-based weather provider (Breezy Weather), the worker only checked autoLocation and
    therefore requested a location even though the provider resolves its own. getWeatherData() is a
    noop that always returns null, so the worker then returned Result.retry() forever and never
    set lastUpdate — which also meant the update interval check could never short-circuit it.

    Every attempt called getLastKnownLocation(), which registers GPS and network listeners at a
    one second interval and held them for up to ten minutes, so the location stack never idled. On
    the device this showed up as ~46,000 delivered fixes, *location* wakelocks held ~99% of the
    time, and Doze never engaging at all.

    • Add WeatherProvider.isPushBased and set it on BreezyWeatherProvider, so the check no longer
      depends on any user setting.
    • Skip and cancel the weather work entirely for push-based providers.
    • A managed location now takes the WeatherLocation path instead of the auto-location one, so
      managed-location plugins still get their data without a location request.
    • Give up on a location fix after two minutes instead of ten.
    • LocationsRepository: don't collect the location flow when location search is off or not
      permitted. As a combineTransform argument it was always collected, so every search query
      registered GPS and network listeners for up to 30 seconds.
    Downloads
  • Kvaesitso 1.40.2 type-to-search and agenda (build 8)
    Some checks failed
    Trigger F-Droid repository rebuild / trigger (release) Has been cancelled
    Stable

    jonas released this 2026-09-12 15:30:18 +02:00 | 4 commits to main since this release

    Fixes a battery drain caused by the weather worker pinning the location stack.

    With a weather provider that manages its own location (Breezy Weather), the worker only
    checked autoLocation and therefore still requested a location even though the provider
    resolves its own. BreezyWeatherProvider.getWeatherData() is a noop that always returns
    null, so the worker then returned Result.retry() forever and never set lastUpdate
    which also meant the update interval check could never short-circuit it.

    Every attempt called getLastKnownLocation(), which registers GPS and network listeners
    at a one second interval and held them for up to ten minutes, so the location stack never
    idled. On the device this showed up as ~46,000 delivered fixes, *location* wakelocks
    held ~99% of the time, and Doze never engaging at all.

    • Expose the selected provider's managedLocation in WeatherSettingsData.
    • Skip and cancel the weather work for providers that manage their own location.
    • Give up on a location fix after two minutes instead of ten.
    • LocationsRepository: don't collect the location flow when location search is off or not
      permitted. As a combineTransform argument it was always collected, so every search
      query registered GPS and network listeners for up to 30 seconds.
    Downloads
  • Kvaesitso 1.40.2-typing.7 (type-to-search + agenda)
    Some checks failed
    Trigger F-Droid repository rebuild / trigger (release) Has been cancelled
    Stable

    jonas released this 2026-09-11 21:30:23 +02:00 | 6 commits to main since this release

    Seventh build of the fork. The clock widget's agenda part is immediate and reliable now.

    Changes since v1.40.2-typing.6

    • The agenda no longer shows up late. Its query went through the calendar repository's 500 ms
      debounce (which exists to collapse refresh bursts in the calendar widget) and the part is hidden
      while its ranking is 0, so it always popped in about half a second after the clock, date and
      alarm. The agenda query now skips that debounce.
    • Coming back to the home screen keeps the agenda. The clock widget rebuilt its part providers
      every time it was subscribed again - which happens on every return from another app - so the
      cached data was thrown away and the query had to run again. The providers now live as long as the
      widget's ViewModel: their cached ranking is drawn immediately and the query refreshes the rows in
      place.
    • Fixed a calendar query that reported "no events" before it had run. The query handed out an
      empty result before any provider had answered. The 500 ms debounce had been hiding that behind
      its delay; without the debounce the agenda vanished completely. It now waits for the providers and
      reports their combined result, so today's events - all-day ones included - are there as soon as
      the widget is drawn. The search page no longer flashes an empty result list either.

    Install or update through Obtanium as usual. The APK is signed with the same key as the installed
    build, so it updates in place and keeps the launcher configuration.

    Downloads
  • Kvaesitso 1.40.2-typing.6 (type-to-search + agenda)
    Some checks failed
    Trigger F-Droid repository rebuild / trigger (release) Has been cancelled
    Stable

    jonas released this 2026-09-11 13:30:47 +02:00 | 10 commits to main since this release

    Sixth build of the fork. The clock widget's dynamic zone is tidied up.

    Changes since v1.40.2-typing.5

    • The alarm part shows the time the alarm goes off (e.g. 07:30) instead of "in 8 hours". Its text now uses the same typography as the date part.
    • The dynamic zone's order is fixed: the alarm always sits directly below the clock, the date follows it, and only then come the contextual parts (media, calendar, low battery). The calendar's "starting soon" boost is gone, so the agenda no longer jumps the queue.
    • More spacing between each agenda row's colour dot and its time column.
    Downloads
  • Kvaesitso 1.40.2-typing.5 (type-to-search + agenda)
    Some checks failed
    Trigger F-Droid repository rebuild / trigger (release) Has been cancelled
    Stable

    jonas released this 2026-09-11 12:38:42 +02:00 | 14 commits to main since this release

    Fifth build of the fork. The clock widget's dynamic zone can now show more than one part, and it has an agenda part.

    Changes since v1.40.2-typing.4

    • The dynamic zone shows up to N parts instead of exactly one. Settings → Clock widget → Dynamic zone → Visible parts sets N (1 up to the number of enabled parts). Parts are shown highest-ranked first, so the contextual ones (media, alarm, low battery) still take precedence over the date.
    • New Events part (same card, off by default): today's agenda under the clock — events that are still running or upcoming, plus today's all-day events. Up to four rows of [dot in the calendar's colour | time | title], with "+N more events" as the last row when there are more (it opens the calendar app). Tapping a row opens the event. All-day events read "all-day"; times are always times, never dates.
    • Alarms are shown up to 24 hours ahead instead of 8, so an alarm set for the next morning no longer stays hidden all evening.

    The Events part uses the calendar permission, the same one the calendar widget asks for.

    Downloads
  • Kvaesitso 1.40.2-typing.4 (type-to-search)
    Some checks failed
    Trigger F-Droid repository rebuild / trigger (release) Has been cancelled
    Build Nightly APK / build (push) Has been cancelled
    Stable

    jonas released this 2026-09-10 21:49:57 +02:00 | 18 commits to main since this release

    Fourth build of the type-to-search fork. Skip v1.40.2-typing.3 — in that build the physical
    keyboard stopped opening the search page (the character was inserted into the query, but the results
    never appeared).

    Changes since v1.40.2-typing.2

    • Typing on the physical keyboard on the home screen opens the search page again. The key event
      handler was bound to a scaffold state that is replaced while the launcher starts (the state that
      rememberSaveable restores after the configuration change, and the one created when the window is
      measured), so it acted on a state that was not the one being rendered.
    • The launcher no longer crashes when a widget offers "Configure widget" but has no configure
      activity (or the app providing it was uninstalled). Upstream main still has the unguarded call;
      the failure is now logged instead of killing the launcher process.
    • Coming back to the home screen from another app no longer leaves the search bar holding the
      keyboard focus with the on-screen keyboard up. In that state the physical keyboard typed into the
      search bar without the search results ever opening, which made the launcher look unresponsive.
    • The search query is cleared before the search page is reset when the launcher is resumed, so a
      stale query cannot survive an interrupted page transition.
    • SearchBar adopts text that changed from the outside in a side effect instead of writing snapshot
      state during composition.

    The feature

    • Pressing a printable key on the physical keyboard on the home screen opens the search and inserts
      the character.
    • Characters keep their order, even when typing faster than the launcher can redraw.
    • Backspace deletes, enter launches the highlighted result.
    • The on-screen keyboard stays hidden while you type.
    • Tapping the search bar gives the normal editable field with the soft keyboard.
    • Setting: Settings -> Search -> Search on typing (on by default).
    Downloads
  • Kvaesitso 1.40.2-typing.3 (type-to-search)
    Some checks failed
    Trigger F-Droid repository rebuild / trigger (release) Has been cancelled
    Stable

    jonas released this 2026-09-10 20:59:22 +02:00 | 19 commits to main since this release

    Superseded by v1.40.2-typing.4. In this build the physical keyboard did not open the
    search page (the character was inserted into the query, but the results never appeared).
    Do not use this build.

    Third build of the type-to-search fork.

    Changes since v1.40.2-typing.2

    • The launcher no longer crashes when a widget offers "Configure widget" but has no configure
      activity (or the app providing it was uninstalled). Upstream main still has the unguarded call;
      the failure is now logged instead of killing the launcher process.
    • Coming back to the home screen from another app no longer leaves the search bar holding the
      keyboard focus with the on-screen keyboard up. In that state the physical keyboard typed into the
      search bar without the search results ever opening, which made the launcher look unresponsive.
    • The search bar adopts text that changed from the outside in a side effect instead of writing
      snapshot state during composition.
    • The search query is cleared before the search page is reset when the launcher is resumed, so a
      stale query cannot survive an interrupted page transition.

    The feature

    • Pressing a printable key on the physical keyboard on the home screen opens the search and inserts
      the character.
    • Characters keep their order, even when typing faster than the launcher can redraw.
    • Backspace deletes, enter launches the highlighted result.
    • The on-screen keyboard stays hidden while you type.
    • Tapping the search bar gives the normal editable field with the soft keyboard.
    • Setting: Settings -> Search -> Search on typing (on by default).
    Downloads
  • Kvaesitso 1.40.2-typing.2 (type-to-search)
    Some checks failed
    Trigger F-Droid repository rebuild / trigger (release) Has been cancelled
    Stable

    jonas released this 2026-09-10 12:03:01 +02:00 | 23 commits to main since this release

    Second build of the type-to-search fork.

    Changes since v1.40.2-typing.1

    • The search is cleared when the launcher is left, even after a short app switch or a fast return
      from a launched app. Upstream keeps the search for returns within five seconds, which left the old
      query on screen.
    • Dismissing the search page now ends the keyboard driven search, so opening the search again
      (gesture or search bar) focuses the text field and shows the soft keyboard as usual.

    The feature

    • Pressing a printable key on the physical keyboard on the home screen opens the search and inserts
      the character.
    • Characters keep their order, even when typing faster than the launcher can redraw.
    • Backspace deletes, enter launches the highlighted result.
    • The on-screen keyboard stays hidden while you type.
    • Tapping the search bar gives the normal editable field with the soft keyboard.
    • Setting: Settings -> Search -> Search on typing (on by default).
    Downloads
  • Kvaesitso 1.40.2-typing.1 (type-to-search)
    Some checks failed
    Trigger F-Droid repository rebuild / trigger (release) Has been cancelled
    Stable

    jonas released this 2026-09-10 11:45:39 +02:00 | 25 commits to main since this release

    Fork of Kvaesitso 1.40.2 with type-to-search for
    phones with a physical keyboard (built for the Unihertz Titan 2 Elite).

    What is different from upstream

    • Type to search – pressing a printable key on the home screen opens the search page and
      inserts the character. No need to touch the screen or the search bar first.
    • Characters keep their order, even when typing faster than the launcher can redraw.
    • Backspace deletes, enter launches the highlighted result (same as "launch on enter").
    • The on-screen keyboard is kept hidden while you type, because it would only cover the results.
    • Tapping the search bar still gives the normal editable search field, including the on-screen
      keyboard, so nothing from upstream is lost.
    • Only starts from the home screen (and from the search page itself when the cursor was scrolled
      away). Typing on the widgets, notifications or recents page does not jump to the search.
    • New setting Settings → Search → Search on typing (on by default) to turn it off.

    While a search is driven by the keyboard the text field is intentionally left unfocused - a focused
    text field makes the system show the on-screen keyboard. The characters are therefore inserted into
    the search state directly. The moment you tap the search bar, the text field takes over and behaves
    exactly like upstream.

    Install

    Signed with the fork key, so this replaces the official build (de.mm20.launcher2.release).
    Uninstalling the official app first and restoring the data afterwards keeps the launcher setup.

    Downloads