LINUX.ORG.RU

Как переназначить клавиши?

 ,


1

1

Требуется изменить таблицу кодов клавиш для конкретной клавиатуры. Упоровшийся производитель решил, что потребителю медиаклавиши важнее, чем F1-F12 и, чтобы их послать, нужно зажимать Fn.

Xmodmap не предлагать т.к с переключением раскладки и подключением устройств сбрасывается. Сейчас поменял таблицы иксов и консоли, но теперь не работают другие клавиатуры (даже на виртуальной кнопки исчезли).

Нужно переназначение в ядре (как setkeycodes), чтобы везде работало и ниего не ломало.

Напоминаю, что setkeycodes несмотря на рекоммендации в ядре работает только на PS/2, а у меня такого нет вообще, клавиатура через hidp работает.

★★★★★
Ответ на: комментарий от Medar

Не работает он с bluetooth hidp, пробовал.

mittorn ★★★★★
() автор топика

Нужно переназначение в ядре (как setkeycodes), чтобы везде работало и ниего не ломало.

ir-keytable

inoremap ★★
()

Я делаю так:

/lib/udev/keymap input/event15 /lib/udev/keymaps/apple_keyboard

Подробнее. Получаем сканкоды клавиш, функции которых хотим изменить.

/lib/udev/keymap -i /dev/input/event15
scan code: 0x700E7   key code: ejectcd
scan code: 0xC00B8   key code: rightmeta
Event0 - стандартная клавиатура, event15 - Apple Keyboard.

Создаем файл /lib/udev/keymaps/apple_keyboard с полями сканкод - функция.

0x700E7 rightctrl
0xC00B8 delete

QIQuJIunn ★★
()
Последнее исправление: QIQuJIunn (всего исправлений: 1)
Ответ на: комментарий от QIQuJIunn

Такого бинарника не оказалось, однако обнаружил отключенный use-флаг keymap у eudev, видимо, оно и есть.

mittorn ★★★★★
() автор топика
15 февраля 2016 г.
Ответ на: комментарий от BattleCoder

Да, у udev есть утилита для этого.

mittorn ★★★★★
() автор топика

Упоровшийся производитель решил, что потребителю медиаклавиши важнее, чем F1-F12 и, чтобы их послать, нужно зажимать Fn.

На ноутбуке? Это отключается в BIOSе.

dnf83
()
Ответ на: комментарий от BattleCoder

Нашёл утилиту? Дело было давно и я не помню, как называется. Под неё ещё use флаг был у udev в gentoo.

mittorn ★★★★★
() автор топика
Ответ на: комментарий от mittorn
[ebuild   R    ] sys-fs/udev-225::gentoo  USE="acl kmod (-selinux) -static-libs" ABI_X86="(64) -32 (-x32)" 3 788 KiB

Не похоже, что какой-то из них. Впрочем, всё равно спасибо - буду копать в сторону udev, а то с xmodmap какие-то глюки появлялись.

BattleCoder ★★★★★
()
Ответ на: комментарий от arson

hwdb не работает, поеттеринг нагадил как всегда. Вроде в eudev остался keymap, если нет - подтянуть из сырцов

mittorn ★★★★★
() автор топика
Ответ на: комментарий от mittorn

Ядро ничего не говорит, systemd-udevd в ответ на это:

keyboard:usb:v0A81p0101*
 KEYBOARD_KEY_3b=up
 KEYBOARD_KEY_3c=down
говорит:
[11230.748290] systemd-udevd[2362]: keyboard: mapping scan code 59 (0x3b) to key code 103 (0x67)
[11230.748310] systemd-udevd[2362]: Error calling EVIOCSKEYCODE on device node '/dev/input/event6' (scan code 0x3b, key code 103): Invalid argument
[11230.748425] systemd-udevd[2362]: keyboard: mapping scan code 60 (0x3c) to key code 108 (0x6c)
[11230.748438] systemd-udevd[2362]: Error calling EVIOCSKEYCODE on device node '/dev/input/event6' (scan code 0x3c, key code 108): Invalid argument

hwdb не работает, поеттеринг нагадил как всегда.
Дело в его скудной функциональности

Так не работает (пруф?) или тебе не нравится функциональность (какая еще нужна функциональность от утилиты присваювающей key-коды scan-кодам?)

arson ★★★★★
()
Ответ на: комментарий от arson

Ну у тебя же не работает?
Я когда пытался настроить hwdb, был фейл. Вроде бы такой же. По этому у меня там был keymap.

mittorn ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.