From 62954a67b5fb9bd3516d97143b212e78858b390a Mon Sep 17 00:00:00 2001 From: aaron Date: Sun, 9 Aug 2026 13:49:46 +0200 Subject: [PATCH] feature(udev): add support for vial.rocks configurable devices and add the native app as well --- hosts/argon/configuration.nix | 1 + hosts/neon/configuration.nix | 1 + modules/nixos/packages.nix | 1 + modules/nixos/vial.nix | 13 +++++++++++++ 4 files changed, 16 insertions(+) create mode 100644 modules/nixos/vial.nix diff --git a/hosts/argon/configuration.nix b/hosts/argon/configuration.nix index 69e2064..3d20f26 100644 --- a/hosts/argon/configuration.nix +++ b/hosts/argon/configuration.nix @@ -25,6 +25,7 @@ ../../modules/nixos/steam.nix ../../modules/nixos/thunar.nix ../../modules/nixos/users.nix + ../../modules/nixos/vial.nix ]; # set hostname diff --git a/hosts/neon/configuration.nix b/hosts/neon/configuration.nix index 472ac6f..d49bc60 100644 --- a/hosts/neon/configuration.nix +++ b/hosts/neon/configuration.nix @@ -21,6 +21,7 @@ ../../modules/nixos/settings.nix ../../modules/nixos/steam.nix ../../modules/nixos/users.nix + ../../modules/nixos/vial.nix ]; # set hostname diff --git a/modules/nixos/packages.nix b/modules/nixos/packages.nix index 372f24f..2268645 100644 --- a/modules/nixos/packages.nix +++ b/modules/nixos/packages.nix @@ -35,6 +35,7 @@ tree unzip usbutils + vial vim wget which diff --git a/modules/nixos/vial.nix b/modules/nixos/vial.nix new file mode 100644 index 0000000..35f9793 --- /dev/null +++ b/modules/nixos/vial.nix @@ -0,0 +1,13 @@ +{ config, lib, pkgs, ... }: + +{ + # Vial-capable keyboards (lily58 pro r2g) expose a second, non-keyboard raw + # HID interface that vial.rocks drives over WebHID. Its /dev/hidraw* node is + # root-only by default, so chromium cannot open the device without this rule. + services.udev.extraRules = '' + # Vial firmware advertises itself through a magic USB serial, so this + # matches any vial board rather than just the lily58. uaccess hands the + # device to whoever owns the active seat, no group membership needed. + KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{serial}=="*vial:f64c2b3c*", TAG+="uaccess" + ''; +}