aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/etc/udev
Commit message (Collapse)AuthorAgeFilesLines
* feat(udev,flatpak): allow ungoogled-chromium to talk to ZSA keyboardsLibravatar sommerfeld2026-05-131-0/+13
| | | | | | | | | | | | | | | | | | | usevia.app uses WebHID to talk to /dev/hidraw* directly. Two layers were blocking it: 1. Host: no udev rule existed for ZSA boards, so /dev/hidraw nodes were root-only. Add etc/udev/rules.d/50-zsa.rules covering the ZSA VID 3297 (ErgoDox EZ / Moonlander / Voyager) with TAG+=uaccess so logind grants the active session user access. Also include the two bootloader VIDs used during firmware flashing for completeness. 2. Sandbox: the chromium flatpak only sees /dev/dri by default. Add a --device=all override (flatpak has no finer-grained device knob). The host udev rule still gates which hidraw nodes the user can actually open, so this isn't a meaningful escalation. Also wire `udevadm control --reload && udevadm trigger` into the etc deploy script so rule changes apply without a reboot or replug.
* fix(logind): ignore KEY_POWER short-press to stop Shokz dongle shutdownsLibravatar sommerfeld2026-05-131-7/+0
| | | | | | | | | | | | | | | | | | | | The Shokz OpenMeet dongle (3511:2EF2) emits KEY_POWER on USB enumeration and on headset power transitions, which logind handles with HandlePowerKey=poweroff and immediately shuts the host down. The previous attempt — an hwdb scancode remap of c0030 to reserved — sets the udev property correctly but the kernel does not honor EVIOCSKEYCODE for this device's HID consumer-page mapping (verified: KEY_POWER 116 still appears in the evdev keymap after udevadm trigger and libinput still reports it). Drop the hwdb file and the systemd-hwdb hooks from the etc deploy script. Replace with a logind drop-in that sets HandlePowerKey=ignore and HandlePowerKeyLongPress=poweroff. Single-tap power events from any source become no-ops; a 5s hold still shuts the machine down, so the real hardware-power-button safety net is preserved. Add a HUP to systemd-logind in the deploy script so the change takes effect without restarting the daemon.
* feat(udev): replace shokz blacklist with hwdb keycode overrideLibravatar sommerfeld2026-05-132-1/+7
| | | | | | | | | | | | | | | The previous /etc/udev/rules.d/80-shokz-blacklist.rules deauthorized the entire usbhid interface for the Shokz OpenMeet dongle (3511:2EF2) to stop the host from powering off when the headset is turned off. That also killed mic-mute, volume, and media keys on the same HID Consumer Control node. Replace it with a narrow hwdb override that remaps just the offending scancode (Consumer page Power, c0030 -> KEY_POWER) to reserved on that specific vendor/product. KEY_MUTE / volume / media keys keep working. Add 'systemd-hwdb update' + an input-subsystem udevadm trigger to the etc deploy hook so new hwdb files take effect immediately.
* feat(etc): track drifted host configsLibravatar sommerfeld2026-04-211-0/+1
Adopted via 'just etc-add' after 'just etc-drift' surfaced them: locale.conf, locale.gen, mkinitcpio.conf, mkinitcpio.d/linux.preset, pacman.conf, resolved.conf, systemd/network/30-bond*, and the shokz udev blacklist rule.