我在这里遇到了一个问题,我的Openbox键盘操作的快捷方式定义。 我想使用大写锁定键作为前缀来执行快捷方式。
我以为我会将大写密钥重新映射到超密钥,完成
setxkbmap -option caps:hyper
xev 输出交换上限和超级:
KeyRelease event, serial 48, synthetic NO, window 0x3400001,
root 0xf6, subw 0x0, time 2262248, (-560,518), root:(585,681),
state 0x2, keycode 66 (keysym 0xffe5, Caps_Lock), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
在交换上限和超级:
之后从xev 输出KeyRelease event, serial 48, synthetic NO, window 0x3400001,
root 0xf6, subw 0x0, time 2364568, (-112,127), root:(1033,290),
state 0x40, keycode 66 (keysym 0xffed, Hyper_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
好吧,到目前为止,这么好。使用RC.xml中的Hyper Key定义操作,如:
</keybind>
<keybind key="H-x">
<action name="Execute">
<command>gmrun</command>
</action>
</keybind>
实际上有效!
但是,当我使用超级键并推送x gmrun时也会被执行。在某种程度上,超级密钥也可以用作超级密钥。嗯,这是正确的假设还是我在这里错过了什么?
顺便说一下,这里是Super的xev输出,所以它显然是一个不同的键。
KeyRelease event, serial 48, synthetic NO, window 0x3400001,
root 0xf6, subw 0x0, time 2657169, (-294,402), root:(851,565),
state 0x40, keycode 133 (keysym 0xffeb, Super_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
好吧,我注意到使用setxkbmap命令后大写锁定的键码没有改变。在两种情况下它的键码66(甚至在setxkbmap -option caps:none
之后)。
依靠http://openbox.org/wiki/Help:Bindings#Keys实际上可以使用密钥代码,我将RC.xml示例更改为:
</keybind>
<keybind key="0x42-x">
<action name="Execute">
<command>gmrun</command>
</action>
</keybind>
但这根本不起作用。很高兴使用键码所以没有处理setxkbmap,但无论哪种方式都不知道我错过了哪一部分,我很感激每个提示家伙! 干杯
编辑: 输出'xmodmap with setxkbmap -option caps:hyper' xmodmap:每个修饰符最多5个键,(括号中的键码):
shift Shift_L (0x32), Shift_R (0x3e)
lock
control Control_L (0x25), Control_R (0x69)
mod1 Alt_L (0x40), Alt_R (0x6c), Meta_L (0xcd)
mod2 Num_Lock (0x4d)
mod3
mod4 Hyper_L (0x42), Super_L (0x85), Super_R (0x86), Super_L (0xce), Hyper_L (0xcf)
mod5 ISO_Level3_Shift (0x5c), Mode_switch (0xcb)
答案 0 :(得分:1)
搞定了工作:)
我已经通过
创建了一个关键的地图文件xmodmap -pke > ~/.Xmodmap
然后我在〜/ .Xmodmap:
的末尾添加了clear lock
clear mod1
clear mod2
clear mod3
clear mod4
clear mod5
keycode 66 = Hyper_L
add control = Control_L Control_R
add mod1 = Alt_L Alt_R Meta_L
add mod2 = Num_Lock
add mod3 = Hyper_L
add mod4 = Super_L Super_R
add mod5 = Mode_switch ISO_Level3_Shift
我执行了以下命令:
setxkbmap -option caps:hyper && xmodmap ~/.Xmodmap
并且有效
xmodmap的新输出是,
shift Shift_L (0x32), Shift_R (0x3e)
lock
control Control_L (0x25), Control_R (0x69)
mod1 Alt_L (0x40), Alt_R (0x6c), Alt_L (0xcc), Meta_L (0xcd)
mod2 Num_Lock (0x4d)
mod3 Hyper_L (0x42), Hyper_L (0xcf)
mod4 Super_L (0x85), Super_R (0x86), Super_L (0xce)
mod5 ISO_Level3_Shift (0x5c), Mode_switch (0xcb)
唯一奇怪的是openbox需要大约10~15秒来执行“xmodmap~ / .Xmodmap”命令。 CPU运行起来就像我正在用每百个标签开始三个firefox会话:o 如果我把命令放到〜/ .config / openbox / autostart中,它会弄乱我的conky面板,看起来像是一个图形问题。