Я намагаюся знайти спосіб перенастроїти клавіші клавіатури.
Я спробував використовувати xmodmap та setxkbmap, але вони не працюють для одного конкретного додатка. Такі команди працюють для інших звичайних вікон / програм на X tho.
Я думаю, що програма може читати необроблені дані на клавіатурі та ігнорувати X-введення?
Отже, як перевпорядкувати ключі без використання xmodmap та setxkbmap? якщо це колись можливо зробити за допомогою певного програмного забезпечення.
Я також спробував xkeycaps, xkbcomp, але не спробував loadkeys, оскільки він працює на X.
Я знайшов тут , що я міг би спробувати setkeycodes
, «тому що після призначення ядра коду ключа кнопка повинна працювати в Xorg» , але я також виявив , що «ви не можете використовувати" setkeycodes "на USB - клавіатурами» , це мій випадок (я зацікавлений в разі хтось змусить це працювати на ps2, як я думаю, я міг би використовувати адаптер).
Це здавалося перспективним "Сканування карти на коди клавіш" , але після декількох тестів нічого не змінилося, ось вони:
я знайшов у vt1 ключ код "36" ("j" ключ), і я знайшов код сканування showkey
"7e" (клавіатура ".") У vt1 сshowkey --scancodes
$cat >/etc/udev/hwdb.d/90-custom-keyboard.hwdb
keyboard:usb:v*p*
keyboard:dmi:bvn*:bvr*:bd*:svn*:pn*:pvr*
KEYBOARD_KEY_7e=36
$udevadm hwdb --update #updates file: /lib/udev/hwdb.bin
$udevadm trigger #should apply the changes but nothing happened
$cat /lib/udev/hwdb.bin |egrep "KEYBOARD_KEY_7e.{10}" -ao
KEYBOARD_KEY_7eleftmeta
$#that cat on hwdb.bin did not change after the commands..
Obs .: не працював ні з: KEYBOARD_KEY_7e=j
Ще кілька альтернативних способів (від @ vinc17) знайти ключі:
evtest /dev/input/by-id/...
або
input-kbd 3
(покладіть індекс, знайдений у ls -l /dev/input/by-id/*
з події event3)
PS .: * Якщо вас цікавить тестування, пов’язана тема для програми: http://forums.thedarkmod.com/topic/14266-keyboard-issue-in-new-version-108/ Проблеми, які я мають одне і те ж: деякі клавіші (KP_Decimal, DownArrow, UpArrow, RightArrow) ігноруються і вважаються всі з однаковим значенням там "0x00"
showkey --scancodes
не дає сканкодів, які очікує udev (значення різні); input-kbd
утиліта дає правильні сканкоди.
evtest
Утиліта має також дати вам правильні сканкоди: після введення ключа, ви повинні отримати 2 рядки і перший один повинен закінчуватися ніж - то форма code 4 (MSC_SCAN), value xxx
, де xxx
є скан. Але драйвер моєї клавіатури баггі, і я не отримую цю MSC_SCAN
лінію для деяких клавіш, які я хотів перезаписати. Ось чому я використав input-kbd
, в якому перераховані всі коди сканування для вибраного пристрою.
/etc/udev/hwdb.bin
, не/lib/udev/hwdb.bin
. Але, хоча цей файл оновлено правильно, це не працює і для мене, навіть після перезавантаження. Можливо, щось не вистачає в документації. Про це: bugs.freedesktop.org/show_bug.cgi?id=82311