如何让 xbindkeys 将其修饰符与 xte 的修饰符分开?

如何让 xbindkeys 将其修饰符与 xte 的修饰符分开?

当我这样做时.xbindkeysrc

"xte 'keydown Control_L' 'key W' 'keyup Control_L'"
    Shift + b:9

它执行 ctrl+shift+w 的操作,而不仅仅是我预期的 ctrl+w 。知道如何解决这个问题吗?添加+ Release到第二行没有帮助。

答案1

xte使用 XTest 扩展,只需将您的请求添加到当前修改器状态,而不是尝试从某个基本状态开始。例如,其他工具xdotool提供了一个--clearmodifiers选项,以确保您得到您想要的东西。

由于xbindkeys当修改器状态为“with”Shift_L或“ Shift_Rpressed”时会注意到您的请求,因此这就是状态的xte工作原理。您应该能够xte通过以keyup Shift_L, 或许也可以 开始来模拟升档以取消此操作Shift_R。稍后真正的上移将被忽略,或者您可以将换档状态恢复到操作结束时的状态xte,以避免需要再次按换档键,但这由您选择。

相关内容