我正在使用 ubuntu 19.04。在 Windows 中,我使用 autohotkey 使键盘右 alt 和 ctrl 表现为鼠标左键和右键单击。但我无法在 ubuntu 中做到这一点。我尝试使用文本编辑器编辑 /usr/share/X11/xkb/symbols/pc。我成功地使 ctrl 表现得像菜单键,但无法使其表现得像鼠标按钮。我这样做是因为我的笔记本电脑鼠标按钮不起作用。
答案1
为了使其正常工作,您需要安装终端工具xdotool
和xcape
。
1) 首先创建模拟鼠标按钮的“普通”热键。您可以在“设置”-“设备”-“键盘快捷键”中执行此操作。您可以使用以前永远不会使用的疯狂组合键。
在窗格底部,按“+”按钮。提供一个名称,提供以下命令:
xdotool keyup ctrl+alt+shift+z click 1
并指定快捷键Shift+ Ctrl+ Alt+ z。该keyup
部分模拟触发命令的热键释放,因此请确保它与您使用的热键相匹配。
继续以类似的方式单击右键。这次,命令是
xdotool keyup ctrl+alt+shift+x click 3
将其分配给Shift+ Ctrl+ Alt+ x。
2)现在使用xcape
将按下和释放修饰键重定向到这些命令之一。
xcape -e 'ISO_Level3_Shift=Shift_L|Control_L|Alt_L|z;Control_R=Shift_L|Control_L|Alt_L|x'"
选项后面跟着的-e
是重新映射。在此示例中,右键Alt被重新映射到我们为左键单击设置的热键。分号后面的;
右键Ctrl被重新映射到右键单击的热键。
xev | grep keysym
使用(默认安装)找出修饰键的名称。在终端中启动此工具。按下或释放某个键时,会生成一行,其中包含该键的名称。
3)如果运行良好,你将需要命令登录时自动执行. 在您的文件中,在行上.desktop
插入命令。sh -c "sleep 0.3 ; xcape -e 'ISO_Level3_Shift=Shift_L|Control_L|Alt_L|z;Control_R=Shift_L|Control_L|Alt_L|x'"
Exec=
答案2
我之前使用 xbindkeys 和 xmacro 都做过这个
这基本上与 Linux 的 AHK 设置相同。
创建这三个文件
〜/rightclick.macro
ButtonPress 2 Delay 100 ButtonRelease 2
〜/ leftclick.macro
ButtonPress 1 Delay 100 ButtonRelease 1
~/.xbindkeysrc
#right control mouse click "cat ~/rightclick.macro|xmacroplay :0" Control_R
#right alt mouse click "cat ~/leftclick.macro |xmacroplay :0" Alt_R
现在运行xbindkeys
如果你希望每次登录后立即启动,请将xbindkeys
命令添加到~/.xinitrc
如果还没有安装的话,你可能需要安装 xbindkeys 和 xmacro 包:)
答案3
如果你仍然遇到这个问题,可以使用一个名为键盘映射器. 它是一个 GUI 工具,可以轻松地重新映射从键盘到操纵杆甚至触摸板按钮的任何内容。