fix(rofi): #143 — reset selection to row 0 on query edits (inputchange)

Upstream keeps the selected row *index* across a refilter (rofi#2317),
so backspacing grew the list back under a stationary highlight and Enter
launched the wrong app. The maintainer's reply pointed at the
inputchange {} config block — adopted as pure config in the generated
config.rasi (kb-row-first on every query edit), no patch, no source
build. Covers every rofi surface: drun, text menus, dmenu pickers.

V2: headless VM (theme-shot variant driving QMP keystrokes). On HEAD the
repro left the highlight on row 3 (kitty -> Bulk Rename); patched, the
highlight snaps to the first entry after backspace — verified in the
executive-slate drun grid, boreal's whole-swap grid, and the
keyboard-layout dmenu picker. nix flake check --no-build passes; the
rendered config.rasi carries the nested block.

Backlog #143 deleted (watch closed), decision recorded as Resolved,
ROADMAP checkmark added.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-17 20:37:35 +01:00
parent 8a4914c22e
commit f899b192fe
3 changed files with 32 additions and 56 deletions

View File

@@ -1827,6 +1827,13 @@ in
case-smart = false;
sort = true;
sorting-method = "normal";
# Selection follows the row *index* across a refilter, not the
# entry — with sort=true a backspace can leave the highlight on an
# unrelated app (rofi#2317; maintainer pointed at this knob).
# Reset to row 0 on every query edit, like dmenu/fuzzel.
inputchange = {
action = "kb-row-first";
};
};
# Whole-swap themes bring their own rofi.rasi; otherwise the theme