fix(rofi): normal sorter for fuzzy search + power-profile icons
All checks were successful
Check / eval (push) Successful in 3m8s

Two rofi fixes:

- Search (item 31): rofi 2.0.0's fzf sorter mis-ranks fuzzy matches —
  typing "steam" left ghostty selected instead of Steam. Bernardo's live
  A/B confirmed `-sorting-method normal` and `-matching normal` both fix
  it while `-no-sort` does not. Switch sorting-method fzf → normal, keep
  matching=fuzzy + case-sensitive=false.

- Power profile menu (item 39): list profiles with per-profile icons from
  Papirus' colored battery-profile-{performance,balanced,powersave} family
  (the -symbolic variants are #444 grey, invisible on dark). Row text
  stays the bare profile name so `powerprofilesctl set` is unaffected.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-07 21:51:07 +01:00
parent cd5d3b51e2
commit 926be22fd4
4 changed files with 53 additions and 28 deletions

View File

@@ -26,23 +26,6 @@ next, in what order*.
## NEXT
### 31. rofi search broken under rofi 2.0.0 `[bug]`
(Raised by Bernardo, 2026-07-07.) Typing a lowercase query fails to
match (`steam` doesn't select **Steam**) and Enter launches the first
entry instead (ghostty) — i.e. matching behaves case-sensitively and the
selection never moves off row 0. **Not a missing config key:** the
generated config already sets `case-sensitive = false`, `matching =
"fuzzy"`, `sort = true`, `sorting-method = "fzf"`, and `rofi -dump-config`
shows rofi 2.0.0 honours them (they're its new defaults). The lock bump
`8fded63` pulled **rofi 2.0.0** (a major version) — this is a 2.0
behaviour change. Needs interactive repro on a session (can't be
eyeballed headlessly). Candidate levers to A/B live: `matching`
(normal/prefix vs fuzzy), `-i`/`case-smart`/`normalize-match` (new 2.0
knobs), `sort`/`sorting-method`, and the per-modi `sorting-method:"name"`
default 2.0 shows for drun. Fix once, then bake into
`programs.rofi.extraConfig`. Covers Bernardo's item 1 (case-insensitive
search).
### 32. SUPER+? cheatsheet bind still not opening `[bug]`
(Raised by Bernardo, 2026-07-07 — item 2.) Item 26's fix (SHIFT in the
bind modmask so the shifted `question` keysym fires) shipped, but SUPER+?
@@ -50,11 +33,6 @@ still doesn't open the keybindings cheatsheet. Re-diagnose: confirm the
Hyprland bind's modmask/keysym against the *actual* layout, whether rofi
2.0.0 changed anything, and that the cheatsheet path still resolves.
### 39. Icons in the power-profile rofi menu
(Raised by Bernardo, 2026-07-07 — item 9.) The power-profile picker
(rofi.nix `power-profile`) lists profiles as bare text; add per-profile
icons (performance/balanced/power-saver) like the other System rows.
Small.
### 36. Battery / power quick menu
(Raised by Bernardo, 2026-07-07 — items "battery toggle in a rofi

View File

@@ -236,6 +236,13 @@ QA machine), the **T14s** (webcam case).
unchanged (the bar still reserves its space). Accepted trade-off
of `layer: bottom`: a floating window dragged over the top strip
can now overlap the bar — confirm that's the only regression.
- [ ] **rofi menu polish** (iteration #58, item 39 + #56/#57 34/40) —
after `home-update`: (a) menu System Power profile shows a
colored icon per profile (performance/balanced/power-saver), not
just text — icons *render* (not blank); (b) every submenu's ↩ Back
shows a single arrow, no double; (c) on this single-monitor box,
System Display → pick a resolution → Back returns to System
(not back into the same resolution list).
## AMD dev box only
- [ ] **AMD runtime bits** — VA-API (`vainfo` → radeonsi), amd-pstate EPP

View File

@@ -17,6 +17,25 @@ Template:
---
## 2026-07-07 — rofi search mis-ranks + power-profile icons (iteration #58, items 31 & 39)
- **#31 (rofi search broken):** Bernardo ran the live A/B — `-sorting-method
normal` and `-matching normal` both fixed "steam"→Steam; `-no-sort` did
not. So the culprit is rofi 2.0.0's **fzf sorter** paired with fuzzy
matching (it ranked ghostty above Steam), not case-sensitivity. Fix:
`programs.rofi.extraConfig.sorting-method` `"fzf"` → `"normal"`, keeping
`matching="fuzzy"` (forgiveness) + `case-sensitive=false`. Also closes
Bernardo's batch item 1 (case-insensitive — already false, now ranks
right too).
- **#39 (power-profile icons):** the picker listed profiles as bare text.
Now emits `row "$p" battery-profile-<p>` using Papirus' **colored**
`battery-profile-{performance,balanced,powersave}` family (the
`-symbolic` variants are #444 grey → invisible on dark themes; verified
the colored ones carry real fills). Returned row text stays the bare
profile name, so `powerprofilesctl set` is unaffected; added `-show-icons`.
- **Verified:** V0 `nix flake check --no-build` green for both. #31's fix
is the exact lever Bernardo confirmed live. #39's icon *rendering* is a
V3 visual check (Papirus lookup can't be eyeballed headlessly) — queued.
## 2026-07-07 — Display menu "Back" doesn't return (iteration #57, item 40)
- **Task:** BACKLOG item 40 — in System Display the Back row didn't
return on a single-monitor machine.