我正在使用xmodmap
(有时xkbcomp
代替)调整我的键盘布局(例如将 Caps Lock 映射到 Mod3 修饰符)。
当我将 USB 键盘插入笔记本电脑或插入YubiKey(其作用类似于键盘),我的笔记本电脑键盘的设置立即丢失,导致 Mod3 停止工作并且我无法再使用窗口管理器。
我如何进行xmodmap
/xkbcomp
设置执着的或者至少每个 X 会话持久对于我的内置键盘,这样它就能保留布局,无论我是否连接其他键盘?
答案1
你可以尝试输入插头,一个连接到 X 服务器并监听 XInput 事件的守护进程。它可以运行重新加载键盘映射的脚本:
inputplug -c ~/.xkb_load_hook
就~/.xkb_load_hook
我而言:
#!/bin/sh
xkbcomp -I$HOME/.xkb ~/.xkb_keymap :0 2>/dev/null 1>/dev/null
xmodmap ~/.xmodmaprc
sun_id=$(xinput list | grep "HID 0430:0005" | grep -o 'id=[0-9]*' | cut -d = -f 2)
if [ -n "$sun_id" ]
then
xkbcomp -i "$sun_id" -I$HOME/.xkb ~/.xkb_keymap_sun :0 2>/dev/null 1>/dev/null
fi
最后一位检测 Sun Type 6 键盘并为其应用不同的设置。
答案2
它看起来不是 X,但是gnome-settings-daemon
当我连接新键盘时它会重置我的布局。
这有帮助:udev 规则用于在插入 USB 键盘时自动加载键盘布局
dconf write /org/gnome/settings-daemon/plugins/keyboard/active false
以禁止其这样做。