Это мой третий ответ, когда я могу рекомендовать actkbd
... :)
Так что если вы хотите настроить все клавиши второй клавиатуры для запуска команд, а не для ввода букв, вы можете использовать actkbd
... :)
После установки actkbd
нам нужно выяснить, какой файл устройства используется для получения событий с клавиатуры:
pbm@tauri ~ $ cat /proc/bus/input/devices
[cut]
I: Bus=0003 Vendor=046d Product=c31c Version=0110
N: Name="Logitech USB Keyboard"
P: Phys=usb-0000:00:1a.0-1.1/input0
S: Sysfs=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.1/1-1.1:1.0/input/input7
U: Uniq=
H: Handlers=sysrq kbd event5
B: PROP=0
B: EV=120013
B: KEY=1000000000007 ff9f207ac14057ff febeffdfffefffff fffffffffffffffe
B: MSC=10
B: LED=1f
I: Bus=0003 Vendor=046d Product=c31c Version=0110
N: Name="Logitech USB Keyboard"
P: Phys=usb-0000:00:1a.0-1.1/input1
S: Sysfs=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.1/1-1.1:1.1/input/input8
U: Uniq=
H: Handlers=kbd event6
B: PROP=0
B: EV=1b
B: KEY=2010000 397ad801d001 1e000000000000 0
B: ABS=100000000
B: MSC=10
[cut]
В этом списке вы должны найти клавиатуру и проверить ее обработчики. Используйте, sudo actkbd -s -d /dev/input/HANDLER_NAME
чтобы проверить, отправляет ли этот обработчик события. Если вы запустите эту команду и нажмете клавишу на клавиатуре (проверьте клавиши, которые вы хотите связать с командами), вы должны получить что-то вроде этого:
pbm@tauri ~ $ sudo actkbd -s -d /dev/input/event5
Keys: 57
Keys: 35
Если у вас есть коды клавиш, мы можем создать actkbd
файл конфигурации:
pbm@tauri ~ $ sudo nano /etc/actkbd.conf
30:::sudo -u pbm DISPLAY=:0 amarok
//30 is keycode for letter a
Когда вы сохраните этот файл, мы должны проверить, работает ли конфигурация:
pbm@tauri ~ $ sudo actkbd -d /dev/input/event5 -D
При нажатии клавиши, которая есть в вашем файле конфигурации, будет запущена команда из последнего столбца файла конфигурации.
Я думаю, что есть способ отключить отправку ключей в приложения, но я не смог его найти - проверить файл README .
Вместо того, чтобы пытаться отключить его, actkbd
вы можете отключить клавиатуру в X.
pbm@tauri ~ $ xinput list
[cut]
↳ Logitech USB Keyboard id=12 [slave keyboard (3)]
↳ Logitech USB Keyboard id=11 [slave keyboard (3)]
pbm@tauri ~ $ xinput set-prop 11 "Device Enabled" 0
pbm@tauri ~ $ xinput set-prop 12 "Device Enabled" 0
Это должно сделать работу ... :) Для получения дополнительной информации о actkbd
проверке этого ответа .
Используя actkbd
(и, возможно, несколько скриптов), вы также можете настроить клавиатуру для переключения режимов из командного режима в режим ввода с русскими буквами. Для этого прочитайте Ulrich Schwarz's
ответ.