Awesome WM の Mod キーを変更する

Awesome WM の Mod キーを変更する

awesome の mod キーを Windows キーから Pause、Scroll Lock、Escape のいずれかに変更しようとしました。

すべてのキーについて、設定ファイルのエントリを変更しようとしましたrc.lua。xmodmapを使用してロックを解除しようとしました。add mod4 = ...

しかし、何をしてもキーが「粘着性」を持つ (奇妙な一貫性のない方法で時々) ようで、つまり、キーを一度押すと、コンピューターはキーが常に押されているかのように動作します。

この動作を変更する合理的な方法はありますか?

答え1

私の家には、次の 2 行を含むファイルがあります。

clear lock 
keysym Caps_Lock = Super_L

私のrc.luaこのような:

awful.util.spawn("xmodmap /home/username/your_xmodmap.file")

答え2

かなり遅くなりましたが、他の人の参考のために:

問題は、xmodmap が修飾キーとしてリストしたキーを識別していないことのようです。したがって、AwesomeWM では、修飾キーとして使用できません。

使用したいキーを Mod3 として追加してみてください (これは、私が見たほとんどのシステムでは何も使用されていないようです)。すると、rc.lua は modkey を「Mod3」としてリストできます。

修飾キーとして追加

修飾キーは で確認できます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),  Alt_R (0x6c),  Meta_L (0xcd)
mod2        Num_Lock (0x4d)
mod3      
mod4        Super_L (0x85),  Super_R (0x86),  Super_L (0xce),  Hyper_L (0xcf)
mod5        ISO_Level3_Shift (0x5c),  Mode_switch (0xcb)

xevを使用すると、実行中に押したキーの名前を確認できます。Scroll Lock の場合は次のように表示されます。

KeyPress event, serial 36, synthetic NO, window 0x2200001,
    root 0x225, subw 0x0, time 23086947, (433,729), root:(470,783),
    state 0x0, keycode 78 (keysym 0xff14, Scroll_Lock), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 36, synthetic NO, window 0x2200001,
    root 0x225, subw 0x0, time 23087091, (433,729), root:(470,783),
    state 0x0, keycode 78 (keysym 0xff14, Scroll_Lock), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

キーシムの名前が であることに気づくでしょうScroll_Lock。Mod3

に追加するには、 を作成するか、 に追加する必要があります~/.Xmodmap。この行を追加すると、Mod3 が Scroll_Lock キーのみに設定されます。

add Mod3 = Scroll_Lock

変更をテストし、.Xmodmapファイル内のエラーを確認するには、次のコマンドを実行します。

xmodmap ~/.Xmodmap

rc.lua の更新

すでにお分かりのとおり、rc.lua ファイル (通常は~/.config/awesome/rc.lua) の上部に という行がありますmodkey = "Mod4"。これを に変更しますmodkey = "Mod3"

警告

Esc キーは、AwesomeWM によっていくつかのキー マッピングに使用されます。競合があまり発生しない可能性が高いため、代わりに Scroll Lock または Pause を試すことをお勧めします。実際、AwesomeWM は、Esc が現在の操作をキャンセルするために予約されていると想定しているようです。Scroll

Lock は、Caps Lock と同様に、魔法のようにロック キーとして扱われているようです。違いは、Caps Lock のロック動作を無効にするのは比較的簡単ですが、Scroll Lock では、私が知る限り、この動作を無効にすることはできないことです。Numpad

の 0 キーなど、通常は状態ロック キーとして設計されていないキーでこれを試し、機能することを確認してから、必要なキーに切り替えてみることをお勧めします。

答え3

3年遅れているのは分かっていますが、これが誰かの役に立つなら、

modkey = "Mod4"

modkey = "Mod1"

関連情報