feat(hyprland): launch-or-focus binds (item 17)
All checks were successful
Check / eval (push) Successful in 3m4s

nomarchy.launchOrFocus (opt-in, commented template example): each
entry gives a key that FOCUSES the app's existing window
(case-insensitive class match via jq + a "(?i)" focuswindow regex) or
launches it when none is open. One shared nomarchy-focus-or-launch
script; a bind whose command was removed from the suite fires a
"not installed" toast instead of failing silently. The same entries
render into the SUPER+? cheatsheet through prettyKeys — bind and
documentation stay one source. README row added.

Verified: V0; V1 — a scratch downstream with two entries renders both
binds (default command = lowercased class; custom mods/command/desc
honored), the script passes bash -n with a usage guard, and the
cheatsheet carries both rows. Focus behaviour needs a session -> V3
(HARDWARE-QUEUE).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Bernardo Magri
2026-07-05 20:56:01 +01:00
parent 4e3acbe89c
commit 8d54eecd67
8 changed files with 116 additions and 6 deletions

View File

@@ -34,6 +34,11 @@
# { name = "HDMI-A-1"; position = "auto-right"; }
# ]; # names from `hyprctl devices`
#
# nomarchy.launchOrFocus = [ # SUPER+<key> focuses the app's window,
# { key = "B"; class = "firefox"; } # or launches it if none is open;
# { key = "O"; class = "obsidian"; }# rows appear in the SUPER+? cheatsheet
# ]; # (class from `hyprctl clients`)
#
# nomarchy.displayProfiles = { # named layouts for the SAME outputs —
# docked = [ # switch: System Display Profiles
# { name = "eDP-1"; resolution = "disable"; }