キーボードのレイアウトを調整するためにxmodmap
(場合によってはxkbcomp
)を使用しています(たとえば、Caps LockをMod3修飾子にマッピングしています)。
USBキーボードをラップトップに接続するか、 YubiKey (キーボードのように機能します)を挿入すると、ラップトップキーボードの設定がすぐに失われ、Mod3が機能しなくなり、使用できない状況になります。私のウィンドウマネージャーはもう。
xmodmap
/xkbcomp
設定を永続的または少なくともにするにはどうすればよいですか?内部キーボードのXセッションごとに永続的であるため、他のキーボードを接続してもレイアウトが維持されますか?
Xサーバーに接続してXInputイベントをリッスンするデーモン inputplug を試してみてください。キーマップをリロードするスクリプトを実行できます。
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
最後のビットはSunType 6キーボードを検出し、さまざまな設定を適用します。
Xではないようですが、gnome-settings-daemon
新しいキーボードを接続すると、レイアウトがリセットされます。
これは役に立ちました: sbキーボードが接続されているときにキーボードレイアウトを自動ロードするudevルール
dconf write /org/gnome/settings-daemon/plugins/keyboard/active false
それを無効にします。