вторая клавиатура для запуска команд

16

На моем компьютере подключены две USB-клавиатуры. Вместо того, чтобы просто вводить одну и ту же клавишу, можно ли настроить вторую клавиатуру для выполнения команд вместо ввода букв? И если это невозможно, можно ли настроить хотя бы на другой язык, например, русский?

captainandcoke
источник
Вы хотите привязать определенные команды к выбранным клавишам второй клавиатуры, чтобы иметь возможность только запускать что-то, а не печатать буквы?
PBM
И следующий вопрос: хотите ли вы использовать ярлыки для запуска фоновых приложений (или приложения в среде X) или просто набрать имя команды в активном терминале с помощью сочетания клавиш?
PBM
Альтернативный способ отключить отправку ключей в приложения. askubuntu.com/a/178741/554601
Ariunbayar

Ответы:

15

Это мой третий ответ, когда я могу рекомендовать 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ответ.

постоянный репер
источник
1
Я задавал этот вопрос миллион раз на миллиард форумах, и вы единственный, кто действительно это новое. Спасибо триллион.
captainandcoke
0

Я написал небольшую программу на C, которая может просто сделать это. Я написал это «на лету», так что это не очень хорошо, но это работает. Вы можете получить его здесь .

user388315
источник
Здравствуйте и добро пожаловать на сайт Unix и Linux Stack Exchange. Пожалуйста, просмотрите Справочный центр и возьмите Тур, чтобы узнать больше об этом сайте. Хотя ваша ссылка может обеспечить решение проблемы пользователя, не могли бы вы добавить дополнительный контекст в свой пост? В настоящее время это всего лишь предложение загрузить программное обеспечение со стороннего сайта. Вы должны указать, что он делает, как его установить и использовать, и почему он отвечает на поставленный вопрос. Спасибо.
Kemotep