omarchy-shell: a per-device input panel for scroll direction, scroll speed and pointer tuning #7574
martin-irwin
started this conversation in
Suggestions
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
The gap
Scroll direction, scroll speed and pointer tuning are all configurable per input device today — but only by hand-editing
~/.config/hypr/input.lua. There's no UI for any of it, which makes them invisible to most users. Inverting scroll on one external mouse currently means knowing thathl.deviceexists, knowing the device's Hyprland name, and knowing not to reach for the globalinput.natural_scroll(which would drag the touchpad and trackpoint along with it).An input section in the shell — pick a device, flip scroll direction, drag a scroll-speed slider — would surface settings that already work.
It's all already supported per-device
Probing the
hl.devicefield validator (Omarchy 4.0.0-1, Hyprland Lua parser):natural_scrollscroll_factorsensitivityaccel_profileleft_handedmiddle_button_emulationSo this is a UI over an existing, validated config surface — not new compositor plumbing. Device names come straight from
hyprctl devices(logitech-mx-master-3s,elan-touchpad,elan-trackpoint), which also gives the panel its device list for free.Persistence: the mechanism already exists
The obvious objection is that a widget would have to write to
~/.config/hypr/input.lua, a hand-edited, comment-bearing user file — and thathyprctl keywordis no longer available under the Lua parser (keyword can't work with non-legacy parsers. Use eval.), whilehyprctl evaldoesn't survive a reload.But Omarchy already has a generated-Lua-state channel for exactly this:
~/.local/state/omarchy/toggles/hypr/already holds machine-writtenflags.luaandinternal-monitor-clamshell.lua, andbootstrap.luaputs~/.local/stateonpackage.pathahead of~/.configfor precisely this reason. A settings panel could writeinput-devices.luathere and have it applied on reload, with the user's owninput.luanever touched and hand-written overrides still winning if they want them.Sketch
hyprctl devices, grouped mice / touchpads / keyboards~/.local/state/omarchy/toggles/hypr/input-devices.lua, then reloadsExplicitly out of scope
Button remapping.
button_mapis not a validhl.devicefield, and remapping an MX Master's thumb buttons is HID++ work —solaar/libratbag+piper(repos) orlogiops(AUR), not the compositor. Worth its own thread; folding it in here would turn a small UI addition into a device-daemon integration.Prior art
#7033 proposes folding NetworkManager VPN profiles into the Quattro Network panel — same shape of idea: surface existing capability in a panel that's already there.
All reactions