如何使用 NixOS 配置 USB 踏板

如何使用 NixOS 配置 USB 踏板

我有一组 USB 踏板,我希望(需要!)使用 NixOS 配置,因为坦白说,我的手快要死了。

踏板在 lsusb 中标识:

Bus 001 Device 006: ID 413d:2107

evtest 显示以下默认键分配:

sudo evtest /dev/input/event6
...
Input device ID: bus 0x3 vendor 0x413d product 0x2107 version 0x111
Input device name: "HID 413d:2107 Keyboard"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_Key)
    Event code 1 (KEY_ESC)
...
    Event code 240 (KEY_UNKNOWN)
  Event type 4 (EV_MSC)
    Event code 3 (MSC SCAN)
...
Event: time 1593452123.539558, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70004
Event: time 1593452123.539558, type 1 (EV_KEY), code 30 (KEY_A), value 1
Event: time 1593452123.539558, -------------- SYN_REPORT ------------
...

所以以下技术欺骗网yulistic.gitlab.io,与相关的NixOS 选项,我已将行添加到我的 extraHwdb 规则中:

services.udev.extraHwdb = ''
  evdev:input:b*v413Dp2107e*-*
    KEYBOARD_KEY_70004=f13
'';

我尝试了设备系列的一些变体,特别是keyboard:usb:v413Dp2107*evdev:input:b*v413Dp2107e*

将其添加到我的configuration.nix中,重建(并切换!),然后......什么也没有。踏板继续发出“a”键。

我确信更改正在被接受(如果我故意删除文件中的“;”,它将不会构建)。但用 udevadm 测试:

sudo udevadm info /dev/input/event6

P: /devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/0003:413D:2107.0004/input/input25/event6
N: input/event6
L: 0
S: input/by-path/pci-0000:00:14.0-usb-0:2:1.0-event-kbd
S: input/by-id/usb-413d_2107-event-kbd
E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/0003:413D:2107.0004/input/input25/event6
E: DEVNAME=/dev/input/event6
E: MAJOR=13
E: MINOR=70
E: SUBSYSTEM=input
E: USEC_INITIALIZED=1296521621
E: PATH=/nix/store/k3hi6q6y10zrrgli0xa54zbvzs6pwdl1-udev-path/bin:/nix/store/k3hi6q6y10zrrgli0xa54zbvzs6pwdl1-udev-path/sbin
E: ID_INPUT=1
E: ID_INPUT_KEY=1
E: ID_INPUT_KEYBOARD=1
E: ID_VENDOR=413d
E: ID_VENDOR_ENC=413d
E: ID_VENDOR_ID=413d
E: ID_MODEL=2107
E: ID_MODEL_ENC=2107
E: ID_MODEL_ID=2107
E: ID_REVISION=0000
E: ID_SERIAL=413d_2107
E: ID_TYPE=hid
E: ID_BUS=usb
E: ID_USB_INTERFACES=:030101:030102:
E: ID_USB_INTERFACE_NUM=00
E: ID_USB_DRIVER=usbhid
E: ID_PATH=pci-0000:00:14.0-usb-0:2:1.0
E: ID_PATH_TAG=pci-0000_00_14_0-usb-0_2_1_0
E: LIBINPUT_DEVICE_GROUP=3/413d/2107:usb-0000:00:14.0-2
E: DEVLINKS=/dev/input/by-path/pci-0000:00:14.0-usb-0:2:1.0-event-kbd /dev/input/by-id/usb-413d_2107-event-kbd
E: TAGS=:power-switch:

没有证据表明配置符合要求。所以想必我正在做一些愚蠢的事情,但无论我如何凝视,我都看不到它。

我怀疑键盘代码 (70004) 超出了 evtest 在标头 [0..240] 中报告的范围;但我不知道这是否相关。

任何指示将不胜感激。

答案1

你可以尝试脚踏开关,它支持您的模型并允许您对事件进行编程。

用于对 PCsensor 和 Scythe 脚踏开关进行编程的命令行实用程序。支持单踏板设备和三踏板设备。

footswitch [-123] [-r] [-s <string>] [-S <raw_string>] [-ak <key>] [-m <modifier>] [-b <button>] [-xyw <XYW>]
   -r          - read all pedals
   -1          - program the first pedal
   -2          - program the second pedal (default)
   -3          - program the third pedal
   -s string   - append the specified string
   -S rstring  - append the specified raw string (hex numbers delimited with spaces)
   -a key      - append the specified key
   -k key      - write the specified key
   -m modifier - ctrl|shift|alt|win
   -b button   - mouse_left|mouse_middle|mouse_right
   -x X        - move the mouse cursor horizontally by X pixels
   -y Y        - move the mouse cursor vertically by Y pixels
   -w W        - move the mouse wheel by W

相关内容