Make every settings row reachable, and every accessibility switch honest
Claude-Session: https://claude.ai/code/session_01Ms2FbjQy31TVf3CEvQhGM8
This commit is contained in:
@@ -119,8 +119,16 @@ a polished general-purpose desktop can go beyond the current shell.
|
||||
3. A keyboard-layout change notice. Hyprland reports the active keymap but not
|
||||
a change event Quickshell already consumes, so this needs either polling or
|
||||
new event plumbing, and a single-layout machine cannot test it.
|
||||
4. Sticky keys, slow keys and bounce keys. AccessX is an X11 server feature
|
||||
with no Wayland equivalent; GNOME, macOS and Windows all ship these.
|
||||
4. Sticky keys, slow keys and bounce keys. Wayland has no protocol for these,
|
||||
so each compositor implements them for itself — mutter does, which is how
|
||||
GNOME has them on Wayland, and Hyprland does not. There is no XKB option to
|
||||
lean on either: the accessx option group is X11-only and does not appear in
|
||||
evdev.lst at all (checked, not assumed — `grep -c accessx
|
||||
/usr/share/X11/xkb/rules/evdev.lst` is 0), and Hyprland will happily store
|
||||
`accessx:enable` as a keyboard option that nothing ever acts on. This is a
|
||||
Hyprland gap rather than a Wayland impossibility, and the Accessibility page
|
||||
says so in those terms; an earlier version of this line blamed X11 and sent
|
||||
anyone who needs sticky keys to the wrong conclusion about the platform.
|
||||
5. An on-screen keyboard, for a touch or convertible machine.
|
||||
|
||||
KDE Connect, the printer UI, Tesseract, and ZBar are installed and remain
|
||||
|
||||
@@ -262,6 +262,44 @@ bind(mod .. " + SHIFT + S", hl.dsp.exec_cmd(qs("screen-intelligence", "open")),
|
||||
-- Color picker: copies the hex under the cursor to the clipboard.
|
||||
bind(mod .. " + SHIFT + P", hl.dsp.exec_cmd("hyprpicker -a -f hex"), { description = "Color picker" })
|
||||
|
||||
-- ── Magnifier ───────────────────────────────────────────────────────────────
|
||||
category("Shell")
|
||||
--
|
||||
-- The chords are NOT the obvious SUPER+=/-/0. SUPER+equal is already "Reset
|
||||
-- split" (Window management, below), and taking a daily tiling key away to
|
||||
-- give the magnifier the prettiest chord on the keyboard is the wrong trade.
|
||||
--
|
||||
-- SUPER+ALT is where they went instead, which is also where GNOME's magnifier
|
||||
-- lives: gsettings' magnifier-zoom-in / magnifier-zoom-out ship as
|
||||
-- <Alt><Super>= and <Alt><Super>-, so this is the shortcut the machine this
|
||||
-- desktop replaced already had. SUPER+ALT+0 -- free; the workspace digits are
|
||||
-- plain ALT -- resets to 1.00 ×, reading as "back to zero magnification".
|
||||
--
|
||||
-- These go THROUGH the shell rather than calling `hyprctl keyword
|
||||
-- cursor:zoom_factor` directly. Setting the compositor option behind Panama's
|
||||
-- back would leave the stored preference and the Magnifier slider claiming a
|
||||
-- magnification that is not the one on screen; the IPC call commits through
|
||||
-- the same verified-preference path the slider uses, so the store, the
|
||||
-- compositor and the settings page can never disagree. It also posts the OSD,
|
||||
-- which is the only way to see what the factor now is with the pointer
|
||||
-- somewhere else entirely.
|
||||
--
|
||||
-- Not `repeating`: the step is multiplicative (×1.25), so a held key repeating
|
||||
-- at the keyboard rate would arrive at the 5.00 × ceiling in about a tenth of
|
||||
-- a second. One press, one step.
|
||||
--
|
||||
-- Written as literal chords rather than `mod .. " + ALT + ..."` (as
|
||||
-- "SUPER + Backspace" already is, above) because these three are the most
|
||||
-- collision-prone binds in the file -- they were placed around one -- and a
|
||||
-- literal is the form both the duplicate-chord check and the settings page's
|
||||
-- chord display can actually read.
|
||||
bind("SUPER + ALT + equal", hl.dsp.exec_cmd(qs("accessibility", "zoom in")),
|
||||
{ description = "Zoom in" })
|
||||
bind("SUPER + ALT + minus", hl.dsp.exec_cmd(qs("accessibility", "zoom out")),
|
||||
{ description = "Zoom out" })
|
||||
bind("SUPER + ALT + 0", hl.dsp.exec_cmd(qs("accessibility", "zoom reset")),
|
||||
{ description = "Reset zoom" })
|
||||
|
||||
-- ── Window management ───────────────────────────────────────────────────────
|
||||
category("Windows")
|
||||
bind(mod .. " + Q", hl.dsp.window.close(), { description = "Close window" })
|
||||
|
||||
Reference in New Issue
Block a user