Как включить специальный ключ
У меня есть планшет / экран Wacom Cintiq 24HD с несколькими наборами кнопок. Большинство из них работают нормально [edit: и настраиваются с помощью xsetwacom], но есть один набор кнопок (на самом деле сенсорные кнопки) в верхней части экрана, который не будет полностью регистрироваться в стеке Ubuntu GUI.
Изображение рассматриваемых кнопок
Возьмите крайнюю левую из трех кнопок, одна из которых обозначена I
, Если я просто нажму, ничего не произойдет. Если я использую xev
, кнопка не запускает никакого выхода (в отличие от рабочих кнопок), но обе sudo showkey
а также sudo evtest
действительно показывает, что кнопка регистрируется в ядре (я полагаю). Я определил код клавиши как 202
:
% sudo evtest /dev/input/event4
Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x56a product 0xf4 version 0x110
Input device name: "Wacom Cintiq 24HD Pad"
Supported events:
Event type 0 (EV_SYN)
Event type 1 (EV_KEY)
Event code 148 (KEY_PROG1)
Event code 149 (KEY_PROG2)
Event code 202 (KEY_PROG3)
Event code 256 (BTN_0)
Event code 257 (BTN_1)
Event code 258 (BTN_2)
Event code 259 (BTN_3)
Event code 260 (BTN_4)
Event code 261 (BTN_5)
Event code 262 (BTN_6)
Event code 263 (BTN_7)
Event code 264 (BTN_8)
(output trimmed)
Event: time 1477672672.059563, type 1 (EV_KEY), code 202 (KEY_PROG3), value 1
Event: time 1477672672.059563, type 3 (EV_ABS), code 40 (ABS_MISC), value 15
Event: time 1477672672.059563, -------------- SYN_REPORT ------------
Event: time 1477672672.291614, type 1 (EV_KEY), code 202 (KEY_PROG3), value 0
Event: time 1477672672.291614, type 3 (EV_ABS), code 40 (ABS_MISC), value 0
Event: time 1477672672.291614, -------------- SYN_REPORT ------------
showkey
согласен с evtest
что код ключа 202
:
% sudo showkey -k
kb mode was ?UNKNOWN?
[ if you are trying this under X, it might not work
since the X server is also reading /dev/console ]
press any key (program terminates 10s after last keypress)...
keycode 28 release
keycode 202 press
keycode 202 release
Однако я действительно хочу использовать кнопку для чего-то, поэтому, если я попытаюсь временно назначить кнопку клавише "а" для целей тестирования, она, похоже, не будет работать.
xmodmap -e "keycode 202 = a"
"А" не выводится, если я нажимаю кнопку, например, в эмуляторе терминала.
Я делаю что-то не так с xmodmap или есть какой-то другой инструмент, который я могу использовать, чтобы что-то происходило, когда я нажимаю эту кнопку? В конечном счете, я хочу, чтобы кнопка запускала скрипт, но если я могу сделать это косвенно, переназначив кнопку на какой-то другой ключ с модификаторами, это тоже здорово. Прямо сейчас я не знаю, что попробовать дальше.
1 ответ
Используйте xsetwacom:
http://linuxwacom.sourceforge.net/wiki/index.php/Tablet_Configuration
(см. "man xsetwacom" тоже)
Найдите свое устройство с
xsetwacom list
Пример вывода:
Wacom DTK2241 Pad pad id: 12 type: PAD
Wacom DTK2241 Pen stylus id: 13 type: STYLUS
Wacom DTK2241 Pen eraser id: 14 type: ERASER
Мое устройство было DTK2241, поэтому я буду использовать этот пример ниже:
xsetwacom -s get "Wacom DTK2241 Pad pad" all
Затем для устройства пэда перечислите ваши доступные кнопки с:
xsetwacom -s get "Wacom DTK2241 Pad pad" all
Пример вывода:
xsetwacom set "Wacom DTK2241 Pad pad" "Button" "1" "button +1 "
xsetwacom set "Wacom DTK2241 Pad pad" "Button" "2" "+2 "
xsetwacom set "Wacom DTK2241 Pad pad" "Button" "3" "+3 "
xsetwacom set "Wacom DTK2241 Pad pad" "Button" "8" "+8 "
xsetwacom set "Wacom DTK2241 Pad pad" "Button" "9" "+9 "
xsetwacom set "Wacom DTK2241 Pad pad" "Button" "10" "+10 "
....
Затем установите кнопку, например:
xsetwacom set "Wacom DTK2241 Pad pad" "Button" "1" "key a"