![X11:用鼠标按钮交换键盘键](https://linux22.com/image/170408/X11%EF%BC%9A%E7%94%A8%E9%BC%A0%E6%A0%87%E6%8C%89%E9%92%AE%E4%BA%A4%E6%8D%A2%E9%94%AE%E7%9B%98%E9%94%AE.png)
我希望键盘上的菜单键(键码 135)与鼠标右键具有相同的功能。
https://superuser.com/questions/336674/emulated-mouse-click-with-a-keyboard这样做,但它牺牲了我键盘上的小键盘区域,因此这些键不再具有正常功能。因为我使用键盘,所以我不想牺牲它。
所以我正在寻找一个解决方案仅有的触摸菜单按钮(键码 135)。
答案1
[注意:显然,这是故意的,这并不“交换”带有鼠标按钮的键盘键;它只是让键盘按键像鼠标按钮一样工作;但鼠标按钮不会依次开始像键盘键一样发挥作用]
xkbset m
xkbset exp =m # keep the state unchanged after the AccessX timeout
xkbcomp "$DISPLAY" - |
sed -e 's/ Menu / Pointer_Button3 /' -e '/interpret KP_/,/};/d' |
xkbcomp - "$DISPLAY"
您还可以绑定另一个组合键来切换MouseKeys
控件。例如。和Shift-Menu
:
xkbcomp "$DISPLAY" - |
sed -e 's/ Menu \| Pointer_Button3 / Pointer_Button3, MouseKeys_Enable /' -e '/interpret KP_/,/};/d' |
xkbcomp - "$DISPLAY"
这假设Menu
密钥尚未反弹到其他东西。
您可以轻松地编写一个小程序来代替xbkset
和xkbcomp
来完成同样的事情(它们所做的所有操作都可以由任何常规 X11 客户端完成)。
如何将其与烦人的“桌面环境”(根据自己的规则更改 xkb 设置)集成起来,作为练习留给读者。