如何保留每个键盘的布局设置?

如何保留每个键盘的布局设置?

我正在使用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

以禁止其这样做。

相关内容