Изменить раскладку клавиатуры ТОЛЬКО для клавиатуры Bluetooth
У меня есть ключ Bluetooth "Camera Shutter". Он эмулирует клавиатуру Bluetooth. Я успешно выполнил сопряжение, но хочу изменить поведение кнопок.
В настоящее время они сопоставлены с 123
(Увеличение громкости) и 36
(Войти).
Я хотел бы изменить их сопоставления - но только для этой клавиатуры Bluetooth. Я хочу, чтобы клавиатура моего ноутбука не пострадала.
Моя конечная цель - запустить программу на Python при нажатии одной из клавиш.
Некоторые вещи, которые я нашел, которые не работали:
- Я не хочу менять язык внешней клавиатуры с помощью
setxkbmap
, - С помощью
xkb
Кажется, переназначить клавиши на всех клавиатурах. xinput
может переназначать кнопки мыши, но не клавиши клавиатуры.
Я хочу нажать "Увеличение громкости" на моей внешней клавиатуре и выполнить команду - не мешая клавише "Увеличение громкости" на внутренней клавиатуре.
Есть идеи? Ubuntu 14.04.4 LTS. Благодарю.
1 ответ
Согласно https://superuser.com/a/869064/140864 - возможно использовать xkbcomp
изменить назначение конкретных клавиш.
remote_id=$(
xinput list |
sed -n 's/.*AB Shutter 3.*id=\([0-9]*\).*keyboard.*/\1/p'
)
[ "$remote_id" ] || exit
mkdir -p /tmp/xkb/symbols
cat >/tmp/xkb/symbols/custom <<\EOF
xkb_symbols "remote" {
key <VOL+> { [ XF86Launch1 ] };
key <RTRN> { [ XF86Launch2 ] };
};
EOF
setxkbmap -device $remote_id -print | sed 's/\(xkb_symbols.*\)"/\1+custom(remote)"/' | xkbcomp -I/tmp/xkb -i $remote_id -synch - $DISPLAY 2>/dev/null
Это должно выполняться каждый раз, когда устройство подключено. Затем ключи можно назначить определенному ярлыку в Gnome.