* feat: add touchpad toggle keybinding and script
Binds XF86TouchpadToggle/On/Off to a new leenium-toggle-touchpad script
that enables/disables the touchpad via hyprctl and shows OSD feedback.
* fix: make XF86TouchpadOn/Off enforce state instead of toggling
Add on/off/toggle argument support to omarchy-toggle-touchpad.
XF86TouchpadOn now always enables and XF86TouchpadOff always disables,
so firmware that emits separate On/Off keysyms behaves correctly regardless
of current state. XF86TouchpadToggle retains the invert behavior.
* feat: add touchpad toggle to menu and persist state as hyprland config
- Show touchpad option in toggle menu only when a touchpad/trackpad device is detected
- Replace /tmp state file with a persistent hyprland device config at
~/.local/state/omarchy/toggles/hypr/touchpad-disabled.conf
* fix: avoid unsafe && || toggle logic for Touchpad state
Replace `[[ -f $STATE_CONF ]] && enable || disable` with an explicit if/else.
The previous logic was not a true ternary: if `enable` failed (e.g. OSD command error),
`disable` would run unintentionally, causing unreliable toggle behavior.
* Clean up orphaned voxtype status processes on exit
Waybar's custom/voxtype module runs omarchy-voxtype-status, which spawns
a long-lived `voxtype status --follow` child. When Waybar reloads (config
change, display hotplug, Hyprland reload), it kills the wrapper but the
child survives as an orphan. Over time dozens accumulate.
`trap 'kill 0' EXIT` signals the entire process group when the wrapper
exits, ensuring the voxtype child is cleaned up.
* Explain purpose of trap
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Add keybindings to cycle through monitors
* Unified language around focus
* Group focus keybindings
* More natural sounding
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
Redirect stderr to /dev/null alongside stdout when refreshing
browser platform policy, preventing shared_memory_switch errors
from cluttering the terminal.
* If on XPS, enable XPS mute mic key with LED and fallback to original mic mute flow
* fix hardcode of alsa card 0 to resolved id
* Extract omarchy-hyprland-monitor-focused
* Extract dedicated xps mute script
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Create pictures dir if non existent
* Simplify
Don't need to guard against mkdir failing
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>