
setxkbmapを使用して左シフトと左コントロールを入れ替えるでは、xkbcomp を使用して一部の修飾キーを交換する方法について説明します。ただし、完全なレイアウト定義を持つ xkbcomp を使用する代わりに、カスタム setxkbmap オプションを追加したいと思います。 と同様にsetxkbmap -option local:swap_lwin_lctrl
、/usr/share/X11/xkb 内の既存のファイルを変更せずに (パッケージのアップグレード時に上書きされる)、右の win と右の control を交換したいと思います。
答え1
私も同じ問題を抱えています。ドキュメントから、正しい構文は次のようになると推測できます。
$ setxkbmap -I$HOME/.config/xkb -option mine:accent
注:オプション~
では動作しません-I
と
~/.config/xkb/シンボル/azerty_altgr
partial default
xkb_symbols "accent" {
include "level3(ralt_switch)"
key <AE02> { [ NoSymbol, NoSymbol, eacute, NoSymbol ] };
key <AE07> { [ NoSymbol, NoSymbol, egrave, NoSymbol ] };
key <AE09> { [ NoSymbol, NoSymbol, asciicircum, NoSymbol ] };
key <AE10> { [ NoSymbol, NoSymbol, agrave, NoSymbol ] };
};
または、お持ちのシンボルファイルと
~/.config/xkb/ルール/evdev
! option = symbols
mine:accent = +azerty_altgr(accent)
残念ながら、それは機能しません。
私が見つけた唯一の解決策は次のとおりです。上記と同じファイルを使用します。 を使用してすべてのネイティブ オプションを設定しますsetxkbmap -option caps:swapescape,whatever
。次に、次の操作を実行します。
$ setxkbmap -print > tempfile.txt
tempfile.txt
次の行にカスタム オプションを追加するには編集しますxkb_symbols
。
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete" };
xkb_symbols { include "pc+us+fr:2+inet(evdev)+capslock(swapescape)+azerty_altgr(accent)" };
xkb_geometry { include "pc(pc104)" };
};
そして最後に:
xkbcomp -I$HOME/.config/xkb tempfile.txt $DISPLAY
これは、任意の数のオプションに一般化できます。このソリューションは、ArchLinux ウィキ。