我有一个蓝牙“相机快门”适配器。它可以模拟蓝牙键盘。我已成功配对,但我想更改按钮的行为方式。
目前,它们被映射到123
(音量调高)和36
(输入)。
我想改变他们的映射 - 但仅限于这蓝牙键盘。我希望我的笔记本电脑的键盘不受影响。
我的最终目标是当按下某个键时运行一个 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 中的特定快捷操作。