在Awesome WM中更改Mod键


9

我试图将mod键从Windows键更改为Pause,Scroll Lock和Escape。

对于所有键,我试图更改rc.lua配置文件中的条目。我试图用xmodmap清除锁和add mod4 = ...

但是,看来无论我做什么,按键都会变得“发粘”(有时以一种奇怪的不一致的方式),即一旦我按下它们,计算机就好像不断按下它们一样。

有合理的方法来改变这种行为吗?

Answers:


2

我家里有一个包含这两行的文件:

clear lock 
keysym Caps_Lock = Super_L

从我的rc.lua调用它是这样的:

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

我不想将capslock用作modkey。该clear lock命令清除了移位锁定,并且在我的问题的第一行中提到的任何一个键都不应有任何移位锁定。
Archie 2012年

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用于许多键映射。我建议改用“滚动锁定”或“暂停”,因为它不太可能产生广泛的冲突。实际上,AwesomeWM似乎假定保留了Esc来取消当前操作。

Scroll Lock似乎被神奇地视为锁定键,就像Caps Lock一样。区别在于,禁用Caps Lock的锁定行为相对来说微不足道,而据我所知,Scroll Lock不能禁用此行为。

我建议您使用Numpad 0键之类的键或通常不设计为状态锁定键的键进行尝试,确认其有效,然后尝试切换至所需的键。


0

我知道我迟到了3年,但是如果这可以帮助任何人,请切换

modkey = "Mod4"

modkey = "Mod1"

这是基本概念,但是他列出的特定键不能与rc.lua这样的简单修改一起使用。rc.lua中的modkey设置显然只能设置为xmodmap视为修饰键的键(例如shift或ctrl),而不能设置为'x'。
mtalexan '18年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.