Кто-либо знает о Поверхностном Наборе на Linux? Могут эти функции, работающие над Ubuntu?
Интересная тема! Я не знаю ни о какой поддержке ядра этого устройства, но это может просто быть вопрос времени. Однако реализация в другом программном обеспечении и в некоторых случаях аппаратных средствах является другой проблемой.
Это могло также быть возможностью запустить аппаратный проект С открытым исходным кодом создать инструмент углового кодера для любой ОС. Набор и кнопки, полностью настраивающиеся через стандартизированное программное обеспечение.
В ядре 4.19 была добавлена поддержка Surface Dial https://kernelnewbies.org/Linux_4.19 .
Surface Dial теперь распознается в Linux с ядром 4.19.
evtest
теперь выдает следующий вывод:
...
/dev/input/event6: Surface Dial System Multi Axis
/dev/input/event7: Surface Dial System Control
...
Результаты тестирования следующие:
Select the device event number [0-7]: 6
Input driver version is 1.0.1
Input device ID: bus 0x5 vendor 0x45e product 0x91b version 0x108
Input device name: "Surface Dial System Multi Axis"
Supported events:
Event type 0 (EV_SYN)
Event type 1 (EV_KEY)
Event code 256 (BTN_0)
Event type 2 (EV_REL)
Event code 7 (REL_DIAL)
Event type 4 (EV_MSC)
Event code 4 (MSC_SCAN)
Вращение вправо:
Event: time 1576958667.062349, -------------- SYN_REPORT ------------
Event: time 1576958667.100180, type 2 (EV_REL), code 7 (REL_DIAL), value 1
Event: time 1576958667.100180, -------------- SYN_REPORT ------------
Вращение влево:
Eent: time 1576958712.249904, -------------- SYN_REPORT ------------
Event: time 1576958712.274887, type 2 (EV_REL), code 7 (REL_DIAL), value -1
Event: time 1576958712.274887, -------------- SYN_REPORT ------------
Нажатие и отпускание кнопки
Event: time 1576958828.106521, -------------- SYN_REPORT ------------
Event: time 1576958829.500202, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90001
Event: time 1576958829.500202, type 1 (EV_KEY), code 256 (BTN_0), value 1
Event: time 1576958829.500202, -------------- SYN_REPORT ------------
Event: time 1576958829.687451, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90001
Event: time 1576958829.687451, type 1 (EV_KEY), code 256 (BTN_0), value 0
Event: time 1576958829.687451, -------------- SYN_REPORT ------------
Как могут быть эти события используется в WM KDE? Моя цель - использовать его для прокрутки текста \ веб-страниц.
Я пытаюсь поэкспериментировать с правилами udev, чтобы классифицировать Dial как устройство ввода - клавиатуру, а затем мышь. Ни помогите, в xev ничего не выдаст.
Xorg.0.log показывает что-то вроде этого:
[31.536] (II) config/udev: Adding input device Surface Dial System Multi Axis (/dev/input/event6)
[31.536] (**) Surface Dial System Multi Axis: Applying InputClass "evdev pointer catchall"
[31.536] (**) Surface Dial System Multi Axis: Applying InputClass "libinput pointer catchall"
[31.537] (II) Using input driver 'libinput' for 'Surface Dial System Multi Axis'
[31.537] (**) Surface Dial System Multi Axis: always reports core events
[31.537] (**) Option "Device" "/dev/input/event6"
[31.537] (**) Option "_source" "server/udev"
[31.539] (II) event6 - Surface Dial System Multi Axis: is tagged by udev as: Mouse
[31.539] (II) event6 - Surface Dial System Multi Axis: device is a pointer
[31.540] (II) event6 - Surface Dial System Multi Axis: device removed
[31.575] (**) Option "config_info" "udev:/sys/devices/virtual/misc/uhid/0005:045E:091B.0002/input/input12/event6"
[31.575] (II) XINPUT: Adding extended input device "Surface Dial System Multi Axis" (type: MOUSE, id 12)
[31.577] (**) Option "AccelerationScheme" "none"
[31.579] (**) Surface Dial System Multi Axis: (accel) selected scheme none/0
[31.579] (**) Surface Dial System Multi Axis: (accel) acceleration factor: 2.000
[31.579] (**) Surface Dial System Multi Axis: (accel) acceleration threshold: 4
[31.582] (II) event6 - Surface Dial System Multi Axis: is tagged by udev as: Mouse
[31.583] (II) event6 - Surface Dial System Multi Axis: device is a pointer
[59.464] (II) config/udev: removing device Surface Dial System Multi Axis
Как теперь можно использовать эти события, чтобы, скажем, управлять прокруткой вверх / вниз, увеличением / уменьшением масштаба и т. Д.? К сожалению, теперь я знаю, как это сделать.