web-dev-qa-db-ja.com

AwesomeWMのModキーを変更する

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

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

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

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

9
Archie

かなり遅いですが、他の人の参考のために:

問題は、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を使用すると、実行中に押したキーの名前を確認できます。ScrollLockの場合、次のように表示されます。

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による多くのキーマッピングに使用されます。広範囲にわたる競合が発生する可能性が低いため、代わりにScrollLockまたはPauseを試すことをお勧めします。実際、AwesomeWMは、Escが現在の操作をキャンセルするために予約されていると想定しているようです。

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

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

2
mtalexan

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

clear lock 
keysym Caps_Lock = Super_L

私のrc.luaから次のように呼び出されます:

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

私は3年遅れていることを知っていますが、これが誰かを助けるなら、切り替えてください

modkey = "Mod4"

modkey = "Mod1"
0
TuxForLife