Как оказалось, ядро все-таки подобрало его, но продолжало жаловаться, что оно не распознано.
Для тех, кто имеет эту проблему, или хочет сопоставить ключ, который не читается ОС, читайте дальше.
Откройте терминал и запустите dmesg | grep -A 1 -i setkeycodes
. Это даст вам несколько записей, как это:
[ 9.307463] atkbd serio0: Unknown key pressed (translated set 2, code 0xbe on isa0060/serio0).
[ 9.307476] atkbd serio0: Use 'setkeycodes e03e <keycode>' to make it known.
Нас интересует шестнадцатеричное значение после «setkeycodes», в данном случае это так e03e
. Если у вас есть несколько из них, вы можете запустить tail -f /var/log/kern.log
. Как только вы это сделаете, вы можете нажать на кнопку, которую вы ищете, и это даст вам ту же строку, что и выше, и опять же, нам нужно только шестнадцатеричное значение. Запишите это.
Теперь запустите xmodmap -pke | less
и найдите соответствующее отображение. В моем случае мне нужно было сопоставить это с переключением моей сенсорной панели, а это значит, что меня заинтересовала следующая строка:
keycode 199 = XF86TouchpadToggle NoSymbol XF86TouchpadToggle
Если вы не можете найти то, что вас интересует, прочитайте также ответ @Gilles, так как вы можете также определить собственные отображения, а затем читать (если ядро читает это, вам не нужно добавлять его в xorg.conf. г)
Теперь я побежал следующую команду: sudo setkeycodes [hexadecimal] [keycode]
, так что в моем случае , который стал: setkeycodes e03e 199
.
Теперь вы можете использовать следующую строку для проверки работоспособности и / или правильного отображения:
xev | grep -A2 --line-buffered '^KeyRelease' | sed -n '/keycode /s/^.*keycode \([0-9]*\).* (.*, \(.*\)).*$/\1 \2/p'
Когда вы запускаете эту команду, вам нужно сосредоточиться на открывшемся окне ( xev
) и проверить вывод консоли. В моем случае это звучит так:
207 NoSymbol
Это было явно неправильно, так как я запросил код ключа 199
, поэтому он сопоставлен с XF86TouchpadToggle
. Я проверил еще xmodmap -pke
раз и заметил, что keycode 207
на самом деле он сопоставлен NoSymbol
, и я заметил, что разница смещений setkeycodes
равна 8, поэтому я попробовал команду еще раз, но ключ сопоставлен keycode 191
.
sudo setkeycodes e03e 191
Это сработало отлично.
РЕДАКТИРОВАТЬ - решение, которое я предоставил для работы при запуске, не имеет. Я выясню это завтра и обновлю этот ответ. На данный момент я полагаю, вы можете запустить это при запуске вручную.
Судя по всему, это клавиатура (распознаваемая программно как отдельная от «основной» клавиатуры), но X-сервер ее не слушает.
Попробуйте добавить раздел ввода под
/etc/X11/xorg.conf.d
. То есть создайте каталог,/etc/X11/xorg.conf.d
если он еще не существует, и создайте файлextra-keyboard-buttons
в этом каталоге, содержащийЯ не уверен насчет этой
MatchProduct
линии; если это не работает, попробуйте поиграться сMatchXXX
директивами .Как только этот файл настроен правильно, при запуске X-сервера он должен обрабатывать события с этой клавиатуры, и вы должны видеть события в
xev
и в других местах. Запишите код ключа (я не уверен, будет ли в этом случае код ключа X11 идентичным коду оборудования) и сопоставьте ему ключ-симулятор. Вы можете сделать это через файл, называемый.Xmodmap
в вашем домашнем каталоге, содержащийТеперь вы можете определить сочетания клавиш с помощью этих клавиш.
Чтобы переключить тачпад, используйте команду
xinput
. Запустите,xinput list
чтобы увидеть, какие устройства ввода доступны, и запишите имя вашей сенсорной панели (я назову ееTouchpad
ниже). Запустите,xinput list-props Touchpad
чтобы перечислить его свойства; один из них должен называться «Device Enabled» с номером рядом с ним (например, 135). Следующий скрипт переключит сенсорную панель:Сохраните это в файле
~/bin/toggle-touchpad
и сделайте его исполняемым (chmod +x ~/bin/toggle-touchpad
). Чтобы связать его с ключом, установите xbindkeys и настройте его для запуска скрипта , добавив следующие строки~/.xbindkeysrc
:источник