添加蓝牙键盘后重新映射键码

添加蓝牙键盘后重新映射键码

我已经使用 xmodmap 重新映射 Ubuntu 14.04 中的蓝牙键盘的按键:

xmodmap ~/.Xmodmap

remove mod1 = Alt_L
remove mod1 = Alt_R
keycode 180 = Alt_L
keycode 225 = Alt_R
add mod1 = Alt_L
add mod1 = Alt_R

但下次蓝牙键盘连接时映射会重置。

如何使映射永久化或在连接设备上重新启用它们?

更新:

我发现终端并返回会话也会破坏 xmodmap 设置,此行可防止在 tty 情况下中断:

gsettings set org.gnome.settings-daemon.plugins.keyboard active false

但它不是一个选项,因为它会破坏切换语言布局,而图标仍能正确显示语言。重新连接键盘也会重置 xmodmap 设置。

答案1

我通过修改键盘布局解决了这个问题。

首先,我检查了当前布局中使用的符号

$setxkbmap -print -v 10

然后修改 /usr/share/X11/xkb/symbols/inet 行

    key <I180> {[XF86HomePage]};
    key <I225> {[XF86Search]};

引用自 /usr/share/X11/xkb/symbols/altwin

    key <I180> {[Alt_L, Meta_L]}; // was XF86HomePage
    key <I225> {[Alt_R,Meta_R]}; // was XF86Search
    modifier_map Mod1 {<I180>, <I225>}; // removes sticky fake alt problem

并使用命令

$sudo dpkg-reconfigure xkb-data

它从 /var/lib/xkb/ 中删除了编译的键盘布局。与

$sudo rm /var/lib/xkb/*.xkm

并导致它们在下次切换时重新编译。

PS:我发现 slm 的答案中的链接很有帮助 https://unix.stackexchange.com/questions/101410/where-do-find-information-about-xkb-symbols-ie-dead-acute-kp-1-delete-down

相关内容