私のDell Latitudeにはこのキーボードレイアウトがあります
Home
とEnd
キーが複合キーにマッピングされているのは本当に困ったものです。そこで、これを追加してとを入れ替えることFn
ができました(実際はドイツ版です)PageUp
Home
PageDown
End
/usr/share/X11/xkb/symbols/de
xkb_symbols "basic" {
...
key <HOME> { [ Prior ] };
key <PGUP> { [ Home ] };
key <END> { [ Next ] };
key <PGDN> { [ End ] };
...
}
期待通りに動作しています。ただし、ラップトップをそのまま使用する場合と、ドッキング ステーションと本格的なキーボードを使用して作業デスクで頻繁に切り替える必要があるため、このハックは煩わしいです。
この xkb シンボル ファイルの操作には、再起動 (または少なくともデスクトップ環境の再起動) が必要です。実行時に動作を切り替えることはできますか? USB-C ドックを認識する udev フックのように、自動化することもできますか?
答え1
を使用してレイアウトを切り替えることができますsetxkbmap
。たとえば、私は Dvorak レイアウトを使用していますが、ローカルに変更を適用して
/usr/share/X11/xkb/symbols/de
ドイツ語レイアウトに切り替えました。
setxkbmap de
PGUP が Home として動作するか確認したところ、動作しました。その後、dvorak に戻しました。
setxkbmap dvorak
元のレイアウトとカスタム レイアウトを切り替える場合、質問で示した 4 行を元のde
レイアウト ファイルから削除し、変更を加えた新しいカスタム レイアウト ファイル (たとえば、/usr/share/X11/xkb/symbols/de-modified) を作成するのが最善の方法だと思います。2 つのレイアウトを切り替えるのに、再起動や X の再起動は必要ありません。
setxkbmap de # PGUP wouldn't work as home
setxkbmap de-modified # PGUP would work as home