A small menu-driven tool to live-preview and save per-device pointer sensitivity on Omarchy / Hyprland — e.g. calming down a ThinkPad's TrackPoint (the red nub) without touching the touchpad, or vice versa.
Hyprland already supports per-device input config via hl.device({ name = ..., sensitivity = ... }) in Lua config, keyed by the exact device name
from hyprctl devices. This tool just wraps that in a menu so you don't
have to hand-edit config files or remember device names: pick a device,
step through sensitivity values with instant live preview, then save.
Omarchy has no built-in settings GUI for this — sensitivity tuning is config-file territory, and Hyprland's own per-device sensitivity has no menu/GUI anywhere in the ecosystem as far as we found. This fills that one gap without pulling in an unrelated settings app (see Alternatives below for what we looked at and why we didn't use it).
- Lists your pointer devices (
hyprctl devices -j), shown with friendly labels ("TrackPoint", "Touchpad", "Mouse") — the real device name is kept underneath and is what actually gets configured. - You pick a device, then step through sensitivity values (-1.0 to 1.0).
Each pick is applied live with
hyprctl evalso you feel the difference immediately, before anything is saved. - Confirm to persist (writes a marked
hl.device({...})block into~/.config/hypr/input.lua, one block per device, safe to re-run and re-edit) — or try another value, or abort and revert to whatever was last saved.
- Omarchy (uses
hyprctl,jq, and Omarchy's ownomarchy menu selectfor the UI) python3(used only for the config-file block update, stdlib only)
git clone https://github.com/Dessection/hypr-input-tune.git ~/hypr-input-tune
mkdir -p ~/.local/bin
ln -sf ~/hypr-input-tune/hypr-input-tune ~/.local/bin/hypr-input-tuneMake sure ~/.local/bin is on your PATH (Omarchy's default shell config
already puts it there).
Add to ~/.config/omarchy/extensions/omarchy-menu.jsonc:
Then omarchy menu refresh. It'll show up searchable from the Omarchy menu.
hypr-input-tuneOr launch "Pointer sensitivity" from the Omarchy menu if you added the entry above.
rm ~/.local/bin/hypr-input-tune
rm -rf ~/hypr-input-tune(and remove the pointer-sensitivity entry from omarchy-menu.jsonc if
you added it). Any sensitivity already saved stays working — it's just
plain hl.device({...}) calls in your input.lua, marked with
-- hypr-input-tune:BEGIN/END <device> comments. Delete those blocks by
hand if you want the values gone too.
/usr/share/omarchy/bin/omarchy-menu-select forwards menu options as bare
argv to perl -M... -e '...' "${options[@]}" with no -- separator. An
option string starting with - (like -0.4) gets parsed by Perl as an
unrecognized switch, and the menu aborts before it's even shown — silently,
with just the plain-text error Unrecognized switch: -0.4 (-h will show valid options). on stderr. This tool works around it by prefixing every
sensitivity value with "Sensitivitet " so the option string never starts
with -. Worth reporting upstream to basecamp/omarchy —
hasn't been filed yet as of this writing.
- hyprsettings — a general Hyprland settings GUI, but mouse sensitivity there is global only, not per-device.
- nwg-shell-config —
does support per-device input config and Hyprland, but it's part of the
separate nwg-shell ecosystem and writes plain Hyprland
.conf, which risks conflicting with Omarchy's own Lua-based config loading. - Omarchist — a real Omarchy GUI app, but scoped to theming, not input devices.
None of these fit "adjust one device's sensitivity, live-preview it, save it" without either being global-only or risking fights with Omarchy's config system — hence this small standalone script instead.
MIT — see LICENSE.
