Skip to content

Keystroke 1.5.1

Choose a tag to compare

@evindor evindor released this 09 Oct 10:58
· 13 commits to main since this release

Keystroke 1.5.1

Released October 9, 2026.

A fix for Qt 6.12, which Omarchy edge already ships: without it the palette
loses its theme colours. Also in this release: two new extensions, Windows and
Herdr; the converter can work out the target unit itself; Codex accepts newer
CLIs; and fixes for a lost graphics surface and for the Omarchy menu. Thanks to
Nero Song, Justin Garza, Hemal, Christian Dandachi, Thomas Torggler and bultot,
who wrote them.

Fixes

  • Qt 6.12 (by Nero Song). Qt 6.12 adds a Color type to QtQuick that
    hides Omarchy's Color theme tokens, so on Omarchy edge the palette, its
    rows, the preview pane, the confirmation sheet, the Codex view and the
    Translate and GIF Search views read undefined colours. They now read the
    theme as Commons.Color, as Omarchy's own shell does since
    omacom/omarchy#14553. Nothing changes on Qt 6.11. Extension authors:
    see CONTRIBUTING.md for the qualified import.
  • A lost graphics surface closes the palette (by Thomas Torggler). When
    the compositor closes the palette's surface or its graphics resources are
    lost (a full-screen surface running out of GPU memory on a two-monitor
    machine, for one), the palette stayed logically open with nothing to draw
    on, and a waiting omarchy-menu-select never returned. It now closes at
    once, the waiting picker gets "no selection", a resource loss is reported
    once, and the next open tries again. A paste already on its way when this
    happens still goes through.
  • Omarchy menu entries load inside the shell (by Thomas Torggler). On
    some setups the menu files' load handlers failed with "Property 'text' …
    is not a function", and entries such as the theme switcher did not open
    from Keystroke. The handlers now call the file's text() by name.

New

  • Windows (extension, by Justin Garza). > lists every open Hyprland
    window, most recently used first; > firefox narrows it, and ↵ focuses
    the window, switching workspace if needed. The window you came from is left
    out, so > then ↵ goes back to the previous one, like Alt+Tab. Window
    titles also match at the root from two characters on (at most five rows,
    a setting). The list is read with hyprctl clients -j once per palette
    open. Off until you turn it on.
  • Herdr (extension, by Justin Garza). % lists the agents (with their
    Working or Idle state), workspaces, tabs, panes and sessions of every
    running Herdr session; ↵ focuses the target in Herdr
    and raises the terminal window that shows it, or opens a terminal attached
    to the session. The helper asks each session over Herdr's own socket, once
    per palette open. Off until you turn it on.
  • The converter infers the target unit (by Hemal). 35 lb, 180 cm,
    100 F or 60 mph answer in the other system's everyday unit without
    typing to …. Metres, millilitres, kelvin, time and data still need a
    target, so a bare 10m stays free for Timer.

Improvements

  • Codex accepts newer CLIs (by Christian Dandachi). The Codex integration
    now runs with any stable Codex CLI from 0.153.2 on, instead of exactly
    0.153.2. Prerelease builds are still refused, and the message says so.
  • Browser search reads Helium (by bultot). With Helium as the default
    browser, history and bookmarks are read from net.imput.helium, honouring
    HELIUM_CONFIG_HOME. Browser search 1.1.0.

Update

omarchy plugin update evindor.keystroke
omarchy restart shell

Requires Omarchy 4.0.2 or later; on Qt 6.12 the Omarchy shell also needs
omacom/omarchy#14553, which edge already has. Everything in the
1.4.0 notes applies unchanged. The bundled matching engine is
byte for byte the one verified in 1.4.2. Windows needs nothing beyond
hyprctl; Herdr needs Herdr and Python 3's standard library.

Validation: the QML suite (272 tests), the extension checks for all ten
extensions, the palette, clipboard, Codex, matching, graphics-loss and hotkey
checks, qmllint and plugin validation pass on Qt 6.11; the palette checks were
also run offscreen against Qt 6.12.0 and Quickshell 0.3.2. See the
verification record.

Full changes