From 2d70af4ae06e1a528cf3b49e0249ea27fe9c8df2 Mon Sep 17 00:00:00 2001 From: sommerfeld Date: Wed, 13 May 2026 13:43:39 +0100 Subject: refactor(udev): drop hand-rolled ZSA rule, install qmk package instead The qmk Arch package ships /usr/lib/udev/rules.d/50-qmk.rules covering all major mech-keyboard vendors including ZSA's VID 3297, with the same TAG+=uaccess semantics. Prefer that over maintaining our own rules file. - meta/base.txt: + qmk - etc/udev/rules.d/50-zsa.rules: removed - etc deploy script: drop the udevadm reload (only existed to support our custom rule; pacman handles reloads for package-shipped rules). --- etc/udev/rules.d/50-zsa.rules | 13 ------------- meta/base.txt | 5 +++++ run_onchange_after_deploy-etc.sh.tmpl | 5 ----- 3 files changed, 5 insertions(+), 18 deletions(-) delete mode 100644 etc/udev/rules.d/50-zsa.rules diff --git a/etc/udev/rules.d/50-zsa.rules b/etc/udev/rules.d/50-zsa.rules deleted file mode 100644 index 86e443a..0000000 --- a/etc/udev/rules.d/50-zsa.rules +++ /dev/null @@ -1,13 +0,0 @@ -# ZSA keyboards (ErgoDox EZ, Moonlander, Voyager) raw-HID access. -# Required for Wally flashing and VIA / usevia.app key-remapping over WebHID. -# `uaccess` tag delegates permission to the active logind session user, -# so no plugdev/input group membership is needed. -KERNEL=="hidraw*", ATTRS{idVendor}=="3297", MODE="0660", TAG+="uaccess" - -# STM32 DFU bootloader for Moonlander / Voyager (only fires while flashing). -SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", \ - MODE="0660", TAG+="uaccess" - -# Halfkay bootloader (ErgoDox EZ) — used by Wally / Teensy loader. -SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="0478", \ - MODE="0660", TAG+="uaccess" diff --git a/meta/base.txt b/meta/base.txt index 6a4a7f8..0629cf2 100644 --- a/meta/base.txt +++ b/meta/base.txt @@ -180,6 +180,11 @@ inhibridge # secrets under ~/.password-store/secret-service/. pass-secret-service-bin +# Ships /usr/lib/udev/rules.d/50-qmk.rules, which (among many vendors) +# tags ZSA's VID 3297 hidraw nodes with uaccess. Required for VIA / +# usevia.app (WebHID) to talk to the ErgoDox EZ / Moonlander / Voyager. +qmk + # Clipboard wl-clipboard cliphist diff --git a/run_onchange_after_deploy-etc.sh.tmpl b/run_onchange_after_deploy-etc.sh.tmpl index ec53c99..d08f989 100755 --- a/run_onchange_after_deploy-etc.sh.tmpl +++ b/run_onchange_after_deploy-etc.sh.tmpl @@ -31,11 +31,6 @@ sudo ln -sfT sudo /etc/pam.d/sudo-i # (e.g. HandlePowerKey overrides) take effect without dropping sessions. sudo systemctl kill -s HUP systemd-logind -# Reload udev rules and re-trigger so changes in etc/udev/rules.d/ apply -# to already-plugged devices without a reboot or replug. -sudo udevadm control --reload -sudo udevadm trigger - # Make sudo-rs the system-wide sudo via /usr/local/bin precedence. # Targets may not exist yet on first bootstrap (sudo-rs is installed by # the subsequent pkg-apply step); the symlinks resolve once it lands. -- cgit v1.3.1