fix(desktop): tighter bar icon pad + case-insensitive rofi match
Some checks failed
Check / eval (push) Has been cancelled
Some checks failed
Check / eval (push) Has been cancelled
- Double-space pad on volume (esp. high), battery, keyboard layout glyphs - rofi: matching=normal,fuzzy; case-smart off (ste finds Steam) - Queue: unfree+calendar PASS; retest spacing + rofi search V0: nix flake check --no-build green. V3: bar/rofi on session.
This commit is contained in:
@@ -1159,19 +1159,18 @@ in
|
||||
# reserving `lines` (8) — so a 6-entry menu doesn't leave empty space,
|
||||
# while the app launcher still fills + scrolls past `lines`.
|
||||
fixed-num-lines = false;
|
||||
# Search: case-insensitive fuzzy across every menu + the launcher, so
|
||||
# "system" finds "System" and "fzr" finds "Firefox". `normal` sorting
|
||||
# ranks by match distance so the closest match lands on top (the
|
||||
# per-keystroke modules — calc/emoji — opt out per-invocation with
|
||||
# -no-sort).
|
||||
# Search: case-insensitive, substring first + fuzzy forgiveness.
|
||||
# "ste" must find "Steam", "system" finds "System", "fzr" still
|
||||
# reaches "Firefox". Comma list = match if ANY method hits (rofi 1.7+).
|
||||
#
|
||||
# NOT `fzf`: rofi 2.0.0's fzf sorter mis-ranks with fuzzy matching —
|
||||
# typing "steam" left ghostty selected on top instead of Steam
|
||||
# (confirmed on hardware: `-sorting-method normal` and `-matching
|
||||
# normal` both fixed it, `-no-sort` did not). Keep fuzzy matching for
|
||||
# forgiveness; use the normal sorter to rank it (item 31).
|
||||
matching = "fuzzy";
|
||||
# History: fuzzy-only + fzf sorter mis-ranked (ghostty over Steam);
|
||||
# fuzzy-only still failed short lowercase queries on hardware
|
||||
# 2026-07-10 despite case-sensitive=false. normal covers the
|
||||
# prefix/substring case; fuzzy stays for typo-tolerant hits.
|
||||
# case-smart off so all-lowercase never flips to case-sensitive.
|
||||
matching = "normal,fuzzy";
|
||||
case-sensitive = false;
|
||||
case-smart = false;
|
||||
sort = true;
|
||||
sorting-method = "normal";
|
||||
};
|
||||
|
||||
@@ -215,17 +215,18 @@ let
|
||||
# Active keyboard layout (per focused device) — only placed in
|
||||
# modules-right when showLanguage (see above).
|
||||
"hyprland/language" = {
|
||||
format = "<span size='${toString (t.fonts.size + 2)}pt'></span> {short}";
|
||||
# Two spaces after the glyph: the keyboard icon's right bearing
|
||||
# otherwise kisses the layout code (esp. mono Nerd faces).
|
||||
format = "<span size='${toString (t.fonts.size + 2)}pt'> </span>{short}";
|
||||
tooltip = false;
|
||||
};
|
||||
|
||||
pulseaudio = {
|
||||
# Trailing spaces on icons (not only between span and text): Nerd Font
|
||||
# glyphs often have tight right bearings and otherwise collide with
|
||||
# the percentage digits.
|
||||
format = "<span size='${toString (t.fonts.size + 2)}pt'>{icon}</span> {volume}%";
|
||||
# Two trailing spaces on every icon level: high-volume glyphs are the
|
||||
# widest and still kissed the % with a single pad (hardware report).
|
||||
format = "<span size='${toString (t.fonts.size + 2)}pt'>{icon}</span>{volume}%";
|
||||
format-muted = "";
|
||||
format-icons.default = [ " " " " " " ];
|
||||
format-icons.default = [ " " " " " " ];
|
||||
on-click = "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
|
||||
# Right-click → the full mixer (per-app volumes) in a floating window
|
||||
# (item 35). pwvucontrol ships in the template suite; the Hyprland
|
||||
@@ -251,10 +252,10 @@ let
|
||||
|
||||
battery = {
|
||||
states = { warning = 25; critical = 10; };
|
||||
# Same icon-bearing fix as pulseaudio (see format-icons note there).
|
||||
format = "<span size='${toString (t.fonts.size + 2)}pt'>{icon}</span> {capacity}%";
|
||||
format-charging = "<span size='${toString (t.fonts.size + 2)}pt'> </span>{capacity}%";
|
||||
format-icons = [ " " " " " " " " " " ];
|
||||
# Same double-pad as pulseaudio (single space still tight on some glyphs).
|
||||
format = "<span size='${toString (t.fonts.size + 2)}pt'>{icon}</span>{capacity}%";
|
||||
format-charging = "<span size='${toString (t.fonts.size + 2)}pt'> </span>{capacity}%";
|
||||
format-icons = [ " " " " " " " " " " ];
|
||||
# Click either the battery or the power-profile icon → the combined
|
||||
# power menu (profile + charge cap). The granular System rows stay.
|
||||
on-click = "nomarchy-menu powermgmt";
|
||||
|
||||
Reference in New Issue
Block a user