Переназначить ключ для педального переключателя

Я купил простой ножной переключатель и пытался переназначить ключ на что-то другое. В настоящее время педальный переключатель связан с кодом 56 (буква b). xev возвращает следующее, когда я нажимаю педальный переключатель:

KeyPress event, serial 36, synthetic NO, window 0x1000001,
    root 0x81, subw 0x0, time 29926629, (-485,502), root:(713,618),
    state 0x10, keycode 56 (keysym 0x62, b), same_screen YES,
    XLookupString gives 1 bytes: (62) "b"
    XmbLookupString gives 1 bytes: (62) "b"
    XFilterEvent returns: False

KeyRelease event, serial 36, synthetic NO, window 0x1000001,
    root 0x81, subw 0x0, time 29927029, (-485,502), root:(713,618),
    state 0x10, keycode 56 (keysym 0x62, b), same_screen YES,
    XLookupString gives 1 bytes: (62) "b"
    XFilterEvent returns: False

Я не хочу переназначать свою клавишу "b" для всех моих клавиатур, поэтому я пытался заставить xkbcomp работать.
я пробовал xkbcomp -i 14 ~/Documents/footswitchlayout.xkb $DISPLAY и вручную редактировать макет и активировать его с помощью xkbcomp -i 1 $DISPLAY ~/Documents/footswitchlayout.xkb но отмечая изменения. Он по-прежнему печатает клавишу "b".

Xinput возвращает

⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ A4Tech PS/2+USB Mouse                     id=13   [slave  pointer  (2)]
⎜   ↳ RDing FootSwitch1F1.                      id=14   [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=16   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Video Bus                                 id=8    [slave  keyboard (3)]
    ↳ Power Button                              id=9    [slave  keyboard (3)]
    ↳ Sleep Button                              id=10   [slave  keyboard (3)]
    ↳ Laptop_Integrated_Webcam_2HDM             id=11   [slave  keyboard (3)]
    ↳ DELL Dell QuietKey Keyboard               id=12   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=15   [slave  keyboard (3)]
    ↳ Dell WMI hotkeys                          id=17   [slave  keyboard (3)]

Что я делаю неправильно? Кто-нибудь может указать мне правильное направление?

1 ответ

Решение

После многих хлопот и повторных привязок клавиш, не работающих с xkbcomp (даже если он работал с любой другой клавиатурой. Возможно, потому что педальный переключатель рассматривается как мышь), я нашел небольшую терминальную программу, которая полностью решает проблему и проста в использовании.
Программа называется footswitch Радослав Герганов.

Вы можете установить его, выполнив следующие команды:

sudo apt-get install libhidapi-dev
git clone https://github.com/rgerganov/footswitch.git
cd footswitch
make
sudo make install

После того, как вы установили его, вы можете прочитать ваши клавиши sudo footswitch -r и перепрограммировать их sudo footswitch -k <key>, Все предварительно запрограммированные ключи можно найти в common.c,

Изменить: Это переназначение по сути перепрограммирования ножной переключатель, и он повлияет на ножной переключатель на ПК. Так что, если вы используете это и вам нужен другой ключ в окнах, вам придется переназначать его для окон каждый раз, когда вы меняете ключ ножного переключателя в Linux или Mac.

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