タイリングウィンドウマネージャ(現在のxMonad)を使用するため、ウィンドウ管理のための「コントロールキー」として機能するキーが必要です。 Windows/Super/Mod4 キーを持つキーボードを使用するたびに、左側の Windows キーをそのキーとして使用し、右側の Windows キーを Compose/Multi_key として使用します。
ただし、Windowsキーがない(つまりウィンキーがない)複数の([非常に]古い)キーボードもあり、「WMコントロール」として(快適に)使用できるキーもありません。キー". 以前はxMonadで許可していたのでControl+Altを"WMコントロールキー(組合せ)"として使用していましたが、後で見るとこれが(特定)Emacs(移動コマンド)に邪魔にならないようではありません.もっと長いオプションですだから、私は次のようにEscキーを使うことができると思いました。
- Ecsを保持すると、Mod4のように動作します。
- Esc を押すと Esc と同じです。
AFAIK、Escapeを持っていれば通常何も起こらないのでこうするのがいいと思いました。その後、次のようにしてこれを達成しようとしましたxmodmap
。
clear Mod4
add Mod4 = Super_L Escape
私の期待は次のとおりです。 Super_Lはまだスーパーとして機能し、Escapeは今やスーパーです。次のステップは、をxcape
使用して古いEscキーの動作(一部)を復元することです。
私が得るもの(の結果xmodmap
):
xmodmap: up to 4 keys per modifier, (keycodes in parentheses):
shift Shift_L (0x32), Shift_R (0x3e)
lock Caps_Lock (0x42)
control Control_L (0x25), Control_R (0x69)
mod1 Alt_L (0x40), Meta_L (0xcd)
mod2 Num_Lock (0x4d), Hyper_L (0xcf)
mod3 Scroll_Lock (0x4e), Mode_switch (0xcb)
mod4 Escape (0x9), y (0x34), Super_L (0x85), Super_L (0xce)
mod5 ISO_Level3_Shift (0x5c)
私が理解していないものは次のとおりです。
y
突然、Mod4に設定されるのはなぜですか?- EscapeがまだEscapeとして機能する理由(一度押すと)そしてSuper(押している間、変更をテストしようとしたときにこれを見つけました)。今は使用していませんが
xcape
。
これはバグですかxmodmap
、それとも間違って使用していますかxmodmap
?私は後者のようですが、私がやろうとしていることを達成するのに役立つ人はいますか?
追加情報(関連性がないことを願っています):
- 現在のオペレーティングシステムはArch Linuxです。
- などの他のソフトウェアを使用するソリューションで開いています
xkb
。xdotool
- 私は現在ドイツのQWERTZレイアウト(ANSI以外のISOなど)を使用しています。ネオ(私の知る限り、
de
キーマップ/レイアウトの別のバリエーションとして実装されました。以下の出力を参照してくださいlocalectl
。) - 私の解決策がうまくいくことを願っています。鍵盤/ハードウェア独立:キーボードを変更してもプロファイルは変更したくありません。
- 誰かがこの問題を提起する前に:Capslockを3番目のレイヤモディファイヤの1つとして使用し、5番目と6番目のレイヤにも使用されるNeoレイアウトを時折使用するため、SuperをCapslockにマッピングすることはオプションではありません。これはまた、私が解決策を望んでいることを意味します。キーボードレイアウト独立、NeoとQWERTZの間で簡単に切り替えることができます。
- 私はまだ別の提案で開いています。私の唯一の要件:他のプログラム(EmacsやVimなど)との干渉がないか最小限に抑えられ、「WMコントロールキー」として使用されるキー(組み合わせ)がキーボードの左側にある必要があります。私が使用する他のほとんどのプログラムは、WMを制御するキーのキーボードの右側にあります(例:h、j、k、l ...)。
現在のケースである変更を実行する前に、出力は次のxmodmap
ようになります。
xmodmap: up to 2 keys per modifier, (keycodes in parentheses):
shift Shift_L (0x32), Shift_R (0x3e)
lock Caps_Lock (0x42)
control Control_L (0x25), Control_R (0x69)
mod1 Alt_L (0x40), Meta_L (0xcd)
mod2 Num_Lock (0x4d), Hyper_L (0xcf)
mod3 Scroll_Lock (0x4e), Mode_switch (0xcb)
mod4 Super_L (0x85), Super_L (0xce)
mod5 ISO_Level3_Shift (0x5c)
私.Xmodmap
の現在は次のとおりです。
add Mod3 = Scroll_Lock
そしてlocalectl
言った:
System Locale: LANG=de_DE.UTF-8
LC_COLLATE=C
VC Keymap: de-latin1-nodeadkeys
X11 Layout: de,de
X11 Model: pc105
X11 Variant: nodeadkeys,neo
X11 Options: compose:rwin,grp:ctrls_toggle
ベストアンサー1
私は使うX角度このために。キーをSuper_L
Xmodmapにマップし、xcape -e 'Super_L=Escape'
XMonadの起動時に実行します。