我正在运行 Ubuntu 12.04,并且有一个多按钮 Microsoft 鼠标。我想将Ctrl和Alt修饰键分别映射到鼠标的左拇指按钮和右拇指按钮,这样我就可以Ctrl+ 单击和Alt- 单击而无需触摸键盘。我的拇指按钮是按钮8和9。
我尝试过解决方案如何配置鼠标拇指按钮? 解释了如何将双击映射到thumb button- 这对双击有效,但我不知道如何修改解决方案Ctrl和Alt
我也试过如何将 Ctrl/Shift 映射到鼠标拇指按钮? 它使用了 xdotools 和 xbindkeys。我将脚本修改为:
~/.xbindkeysrc
:
"xdotool keydown alt"
b:9
"xdotool keyup alt"
release + alt + b:9
"xdotool keydown ctrl"
b:8
"xdotool keyup ctrl"
release + control + b:8
这几乎是有效的。Ctrl当我单击左拇指按钮时,它会模拟按下 - 键,但我实际上无法同时按住按钮并单击 - 按住thumb button似乎可以防止它在释放之前监听其他输入。
有人知道如何才能让我的鼠标拇指按钮真正充当修饰键,这样我就可以使用thumb button+ 单击而不是Ctrl+ 单击?
答案1
我找到了一个可行的解决方案这里. 它使用 Easystroke ( sudo apt install easystroke
)。向来自 ubuntuforums 的 @stuartr 表示感谢!
虽然有一个问题 - 重新映射的鼠标点击偶尔会触发原始事件(在我的情况下为“返回”) 。为了避免这种情况,可以使用xinput set-button-map
( )将鼠标按钮重新映射到一些未使用的数字。使用以下内容sudo apt install xinput
重新映射我创建的每个登录(可执行) :$HOME/.config/autostart/mouse-buttons.sh
$ cat .config/autostart/mouse-buttons.sh
#!/usr/bin/env bash
mi_mouse_id=$(xinput | grep 'GTech MI wireless mouse.*pointer' | sed 's/.*\tid=\([0-9]*\)\t.*/\1/')
xinput set-button-map $mi_mouse_id 1 2 3 4 5 6 7 20 9 10 11 12 13 14 15 16 17 18 19 20
$
这将鼠标按钮 8 映射到按钮 20。希望按钮 20 没有任何意义。至少对我来说完全没有影响。现在是时候将按钮 20 重新映射到 Ctrl 了:
- “首选项”选项卡:附加按钮 -> 添加 -> 单选按钮“即时手势” -> 单击灰色区域中的鼠标按钮(对我来说,“后退,拇指按钮”变成了“(即时)按钮 20”)
- 首选项选项卡:选择“自动启动 Easystroke”
- 操作选项卡:添加操作
名称:任何你喜欢的名称(例如“鼠标 20 -> Ctrl”)
类型:“忽略”
详细信息:单击一次将“忽略”更改为“组合键...”。然后按 Ctrl + a。“a”无关紧要,将被忽略。“组合键”将被替换为“Ctr” - 选择/突出显示新操作 -> 单击“记录笔划”-> 再次按下要使用的鼠标按钮(这为我在“笔划”列中出现了“20 -> 20”)
- 现在,按住鼠标按钮会在屏幕上显示一个小“Ctr”,并且只要鼠标按钮处于活动状态,就表示一直按住该按钮。
答案2
如果您更喜欢基于 GUI 的功能性解决方案,而不是使用 xdotool,则可以从 Ubuntu 软件中心下载 Easystrokes 应用程序。您可以轻松地将键盘键和快捷键映射到鼠标按钮甚至鼠标手势。