左を交換することは可能ですか Shift そして左 CTRLsetxkbmap
の代わりにxmodmap
を使用するキー
[〜#〜]編集[〜#〜]
私は Fcitx に切り替えました。これは、すべての点でIBusよりもキーボードレイアウトとカスタマイズされたキーマップではるかにうまく機能します。私はそれを強くお勧めします。
xmodmap
は廃止されました。そのため、実際にはxkb
ツールを使用して行う必要があります。
必要なスワップは、デフォルトではX11ファイルに含まれていないようです。自分で書く必要があります。
ページ https://web.archive.org/web/20170825051821/http://madduck.net/docs/extending-xkb/ は、それを理解し、それを行う方法を見つけるのに役立ちました。
setxkbmap
の出力を配置するファイル~/.xkb/keymap/mykbd
を作成します。これはベースキーボードの定義になります。例えば:
setxkbmap -print > ~/.xkb/keymap/mykbd
次に、シンボルスワッピングを作成してキースワッピングを定義し、たとえば~/.xkb/symbols/myswap
に入れます。
そこに、次の行を入れます:
partial modifier_keys
xkb_symbols "swap_l_shift_ctrl" {
replace key <LCTL> { [ Shift_L ] };
replace key <LFSH> { [ Control_L ] };
};
次に、~/.xkb/keymap/mykbd
ファイルを編集し、xkb_symbols
行を変更して追加します
+myswap(swap_l_shift_ctrl)
最後に、xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykbd $DISPLAY
を使用してロードできます(-I
パラメータに "〜"を使用することはできません)。
それはおそらくいくつかのまれなキーの未定義のシンボルに関する多くの警告を吐きますが、それらを無視することができます(例えば、エラーをdave:2> /dev/null
にリダイレクトします)。
通常と反転したctrl/shiftを簡単に交換できるようにしたい場合;追加の「myswap」オプションなしで、~/.xkb/keymap/
の下に別のファイルを作成し、xkbcomp
を使用してロードするだけです。 2つの小さなスクリプトを作成して、それらをロードできます。
Pabloのソリューション を使用してLALT
をControl_L
にマッピングする際にいくつかの問題が発生しました。modifier_map
オプションも設定する必要があるようです。
/usr/share/X11/xkb/symbols/altwin
からテンプレートをコピーし、xkb_symbols "ctrl_alt_win"
を探して、次の変更を行うように変更しました。
最終的な~/.xkb/symbols/myswap
ファイルは次のとおりです。
partial modifier_keys
xkb_symbols "swap" {
key <MENU> { [ Super_L ] };
key <LALT> { [ Control_L, Control_L ] };
key <RALT> { type[Group1] = "TWO_LEVEL",
symbols[Group1] = [ Alt_R, Meta_R ] };
key <LWIN> { [ Alt_L, Meta_L ] };
key <LCTL> { [ Control_L ] };
key <RCTL> { [ Control_R ] };
modifier_map Control { <LALT>, <LCTL>, <RCTL> };
modifier_map Mod1 { <LWIN>, <RALT> };
modifier_map Mod4 { <MENU> };
};
また、xkbcomp
コマンドに-w0
を追加して、新しいシェルを開くときに警告が出力されないようにしました。
xkbcomp -w0 -I$HOME/.xkb $HOME/.xkb/keymap/mykbd $DISPLAY
** MacとLinuxの間で頻繁に切り替えて、マッスルメモリー用にMacキーボードを概算するために、Linuxに2つのコントロールキーを用意するのが好きです。