
Xubuntu 14.04を実行しているAsus X551Mで、次のキーボード設定を設定したいと思います。
スペースバーのすぐ隣の修飾子キーペアはコントロールにマップされます。次に、最も近いペアがにマッピングされますAlt。
つまり、私のキーボードの一番下の行は次のようになります。
[ctrl] [fn] [win] [alt] [ space ] [alt] [menu] [ctrl]
そして私はそのロジックが次のように動作したいと思います:
[ctrl] [fn] [alt] [ctrl] [ space ] [ctrl] [alt] [ctrl]
(私は最も外側のCtrlキーペアを使用しないので、マッピングはランダムです。)
過去にxmodmap
ファイルを手動で編集してこれを実行しましたが、最初の試みでは機能しませんでした。また、xmodmap
ロード時に構成ファイルがロックされる現象が既知の問題です。このトピックについて私が読んだすべてのコンテンツには廃止xmodmap
され、使用する必要があることが示されていますsetxbdmap
。
だから最初に次のことを試してみてください。
setxbdmap -option altwin:ctrl_alt_win
これはほぼ完璧に動作します。今私のキーボードロジックは次のようになります。
[ctrl] [fn] [alt] [ctrl] [ space ] [ctrl] [menu] [ctrl]
Menuつまり、キーをにマッピングするだけですAlt。を使用してこれを行う方法はありますかsetxbdmap
?
/usr/share/X11/xbd/rules/evdev.lst
次に、次の行が見つかるまで見てください。
altwin:menu Add the standard behavior to Menu key
そして試してみましたが、何の違いもないようです。オプションがあります:
ctrl:menu_rctrl Menu as Right Ctrl
もちろん、これが代わりにマッピングされることを除いて、これは私が望むものですMenu。CtrlそれではAltこれを行う方法はありますかsetxbdmap
?
答え1
次の内容でファイルを作成できます~/.xkb/symbols/local
。
xkb_symbols "local" {
key <LWIN> {
type= "ONE_LEVEL",
symbols[Group1]= [ ISO_Level3_Shift ]
};
key <MENU> {
type= "ONE_LEVEL",
symbols[Group1]= [ ISO_Level3_Shift ]
};
key <LALT> { [ Control_L ] };
key <RALT> { [ Control_R ] };
};
または
xkb_symbols "local" {
key <LWIN> {
type= "ONE_LEVEL",
symbols[Group1]= [ Alt_L ]
};
key <MENU> {
type= "ONE_LEVEL",
symbols[Group1]= [ Alt_R ]
};
key <LALT> { [ Control_L ] };
key <RALT> { [ Control_R ] };
};
(またはその間のもの)、あなたが望むAltの種類によって異なります。 Xを起動するたびに、次の手順を実行します(たとえば、ファイルが~/.xsession
ある場合はファイル内)。
mkdir -p .xkb/keymap
setxkbmap -print | sed -e '/xkb_symbols/s/"[[:space:]]/+local&/' > $HOME/.xkb/keymap/custom
xkbcomp -w0 -I$HOME/.xkb -R$HOME/.xkb keymap/custom $DISPLAY
2行目は、when(3行目)がこのオプションで使用される~/.xkb/keymap
場合をxkb_symbols { include "...+local" };
含むファイルを生成します。このファイルを実行する前に確認できます。~/.xkb/symbols/local
xkbcomp
-I$HOME/.xkb
xkbcomp
まだ完全に試していませんが、これは私がやっていることに基づいています。https://www.vinc17.net/unix/xkb.html(types
目次なし)。