evdev ButtonMapping logs ok, но не имеет эффекта

Команда Ignore работает, но не ButtonMapping.

Я создал файл /usr/share/X11/xorg.conf.d/39-myinput.com:

Section "InputClass" Identifier "Apple MagicKeyboard" MatchIsKeyboard "on" MatchProduct "Magic Keyboard" MatchDevicePath "/dev/input/event*" Driver "evdev" Option "Ignore" "off" Option "ButtonMapping" "1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 0" EndSection

Я просто тестирую ButtonMapping на этом этапе, но он не имеет никакого эффекта. Можете ли вы указать мне в правильном направлении?

Я использовал evtest, чтобы определить, что ключи 16 и 17 являются Q и W:

Event: time 1512268567.675999, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70014 Event: time 1512268567.675999, type 1 (EV_KEY), code 16 (KEY_Q), value 0 Event: time 1512268567.675999, -------------- SYN_REPORT ------------ Event: time 1512268568.531055, type 4 (EV_MSC), code 4 (MSC_SCAN), value 7001a Event: time 1512268568.531055, type 1 (EV_KEY), code 17 (KEY_W), value 1 Event: time 1512268568.531055, -------------- SYN_REPORT ------------

... и у меня есть установите их в 0 в моей строке KeyMapping, чтобы отключить их, но я не считаю их отключенными после перезапуска X. Если изменить директиву Ignore на on вместо off, однако, я нахожу что мой весь MagicKeyboard отключен (в то время как моя другая подключенная клавиатура по-прежнему эффективна).

Каталог xorg.conf.d содержит следующее:

10-amdgpu.conf 10-evdev.conf 10-quirks.conf 10-radeon.conf 11-evdev-quirks.conf 11-evdev-trackpoint.conf 39-myinput.conf 40-libinput.conf 51-synaptics-quirks.conf 70-synaptics.conf 70-wacom.conf

My /var/log/X.log.0 содержит следующее :

[196248.970] (II) config/udev: Adding input device Magic Keyboard (/dev/input/event20) [196248.970] (**) Magic Keyboard: Applying InputClass "Apple MagicKeyboard" [196248.970] (**) Magic Keyboard: Applying InputClass "evdev keyboard catchall" [196248.970] (**) Magic Keyboard: Applying InputClass "libinput keyboard catchall" [196248.970] (**) Magic Keyboard: Applying InputClass "Apple MagicKeyboard" [196248.970] (**) Magic Keyboard: Applying InputClass "Apple MagicKeyboard" [196248.971] (II) Using input driver 'evdev' for 'Magic Keyboard' [196248.971] (**) Magic Keyboard: always reports core events [196248.971] (**) evdev: Magic Keyboard: Device: "/dev/input/event20" [196248.971] (**) evdev: Magic Keyboard: ButtonMapping '1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 0' [196248.971] (--) evdev: Magic Keyboard: Vendor 0x4c Product 0x267 [196248.971] (--) evdev: Magic Keyboard: Found 3 mouse buttons [196248.971] (--) evdev: Magic Keyboard: Found absolute axes [196248.971] (II) evdev: Magic Keyboard: Forcing absolute x/y axes to exist. [196248.971] (--) evdev: Magic Keyboard: Found keys [196248.971] (II) evdev: Magic Keyboard: Forcing relative x/y axes to exist. [196248.971] (II) evdev: Magic Keyboard: Configuring as mouse [196248.971] (II) evdev: Magic Keyboard: Configuring as keyboard [196248.971] (**) evdev: Magic Keyboard: YAxisMapping: buttons 4 and 5 [196248.971] (**) evdev: Magic Keyboard: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200 [196248.971] (II) XINPUT: Adding extended input device "Magic Keyboard" (type: KEYBOARD, id 12) [196248.972] (II) evdev: Magic Keyboard: initialized for absolute axes. [196248.972] (**) Magic Keyboard: (accel) keeping acceleration scheme 1 [196248.972] (**) Magic Keyboard: (accel) acceleration profile 0 [196248.972] (**) Magic Keyboard: (accel) acceleration factor: 2.000 [196248.972] (**) Magic Keyboard: (accel) acceleration threshold: 4

Я запускаю Ubuntu 17.04.

0
задан 6 December 2017 в 22:41

3 ответа

ButtonMapping - это функция указателя (для мышей), но у вас есть набор MatchIsKeyboard, который означает, что вы пытаетесь применить его к клавиатуре. Клавиатуры не имеют кнопок. Вы можете проверить это с помощью:

xinput list

, а затем

xinput get-button-map <id-of-your-device>

Вероятно, вы не хотите использовать функции evdev для этого, вы хотите изменить отображение клавиатуры это звучит.

2
ответ дан 22 May 2018 в 15:36
  • 1
    На клавиатуре нет кнопок. Я этого не осознавал. Принято. – JellicleCat 6 January 2018 в 08:35

ButtonMapping - это функция указателя (для мышей), но у вас есть набор MatchIsKeyboard, который означает, что вы пытаетесь применить его к клавиатуре. Клавиатуры не имеют кнопок. Вы можете проверить это с помощью:

xinput list

, а затем

xinput get-button-map <id-of-your-device>

Вероятно, вы не хотите использовать функции evdev для этого, вы хотите изменить отображение клавиатуры это звучит.

2
ответ дан 18 July 2018 в 01:42

ButtonMapping - это функция указателя (для мышей), но у вас есть набор MatchIsKeyboard, который означает, что вы пытаетесь применить его к клавиатуре. Клавиатуры не имеют кнопок. Вы можете проверить это с помощью:

xinput list

, а затем

xinput get-button-map <id-of-your-device>

Вероятно, вы не хотите использовать функции evdev для этого, вы хотите изменить отображение клавиатуры это звучит.

2
ответ дан 24 July 2018 в 17:26

Другие вопросы по тегам:

Похожие вопросы: