我想将 X 中的 XF86_Back 和 Forward 键分别重新绑定到 Control 和 Alt。
然而,似乎运行
xmodmap -e “键码 167 =Alt_L”
xmodmap -e “键码 166 =Control_L”
没有给我期望的行为-BACK + a
例如,我无法在终端中键入以到达行首,即使xev
显示它们被正确重新绑定。
编辑:
xev 的输出(带有我的评论作为//comments)-alt 有效,control 无效
// BACk KeyPress 事件,序列 29,合成 NO,窗口 0x2600001,根 0x2bd,subw 0x0,时间 3547970265,(983,501),根:(984,516),状态 0x10,键码 166(keysym 0xffe3,Control_L),same_screen YES,XKeysymToKeycode 返回键码:37 XLookupString 给出 0 个字节:XmbLookupString 给出 0 个字节:XFilterEvent 返回:False
KeyRelease 事件,序列 32,合成 NO,窗口 0x2600001,根 0x2bd,subw 0x0,时间 3547970385,(983,501),根:(984,516),状态 0x10,键码 166(keysym 0xffe3,Control_L),same_screen YES,XKeysymToKeycode 返回键码:37 XLookupString 给出 0 个字节:XFilterEvent 返回:False
// 转发 KeyPress 事件,序列 32,合成 NO,窗口 0x2600001,根 0x2bd,subw 0x0,时间 3547974553,(983,501),根:(984,516),状态 0x10,键码 167(keysym 0xffe9,Alt_L),same_screen YES,XKeysymToKeycode 返回键码:64 XLookupString 给出 0 个字节:XmbLookupString 给出 0 个字节:XFilterEvent 返回:False
KeyRelease 事件,序列 32,合成 NO,窗口 0x2600001,根 0x2bd,subw 0x0,时间 3547974713,(983,501),根:(984,516),状态 0x18,键码 167(keysym 0xffe9,Alt_L),same_screen YES,XKeysymToKeycode 返回键码:64 XLookupString 给出 0 个字节:XFilterEvent 返回:False
答案1
确保 Control_L 键符已绑定到“Control”修饰符:
keycode 166 = Control_L
add Control = Control_L
要在 中验证xev
,当您释放该键时,报告state
需要设置位 0x4 - 即,如果您启用了 NumLock,则当您按下新的“Control”键时,您应该得到state 0x10
,而当您释放它时,您应该得到state 0x14
。对于新的“Alt”键,情况类似,它应该从 变为0x10
(0x18
同样假设 NumLock 处于活动状态 - 这是0x10
部分)。