在 X 中将 XF86_Back/Forward 重新映射到 Control/Alt

在 X 中将 XF86_Back/Forward 重新映射到 Control/Alt

我想将 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”键,情况类似,它应该从 变为0x100x18同样假设 NumLock 处于活动状态 - 这是0x10部分)。

相关内容