将 Ctrl 和 Alt 映射到鼠标拇指按钮

rco*_*rre 13 mouse xbindkeys

我正在运行 Ubuntu 12.04 并且有一个多按钮 Microsoft 鼠标。我想分别将CtrlAlt修饰键映射到鼠标的左右拇指按钮,这样我就可以在不触摸键盘的情况下Ctrl单击和Alt单击。我的拇指按钮是按钮89

我尝试了如何配置鼠标拇指按钮中的解决方案 这解释了如何将双击映射到 a thumb button- 这适用于双击,但我无法弄清楚如何修改解决方案CtrlAlt

我也试过如何将 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
Run Code Online (Sandbox Code Playgroud)

这几乎有效。Ctrl当我单击左拇指按钮时,它模拟了一个-key 按下,但我实际上无法同时按住按钮并单击 - 按住thumb button似乎可以防止它在释放之前听其他输入。

有谁知道如何让我的鼠标拇指按钮实际用作修饰键,以便我可以使用thumb button+ 单击而不是Ctrl+ 单击?

att*_*tti 2

在这里找到了一个可行的解决方案。它使用 EasyStrike ( 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
$
Run Code Online (Sandbox Code Playgroud)

这将鼠标按钮 8 映射到按钮 20。希望按钮 20 没有任何意义。至少对我来说完全没有影响。现在是时候将按钮 20 重新映射到 Ctrl 了:

  1. 首选项选项卡:其他按钮 -> 添加 -> 单选按钮“即时手势” -> 单击灰色区域中选择的鼠标按钮(对我来说,“后退、拇指按钮”变成了“(即时)按钮 20”)
  2. “首选项”选项卡:选择“自动启动 Easyrinkle”
  3. “操作”选项卡: 添加操作
     名称:任何您喜欢的名称(例如“鼠标 20 -> Ctrl”)
     类型:“忽略”
     详细信息:单击一次将“忽略”更改为“组合键...”。然后按 Ctrl + a。'a' 无关紧要并且会被忽略。“组合键”将替换为“Ctr”
  4. 选择/突出显示新操作后 -> 单击“记录笔画” -> 按下您想要再次使用的鼠标按钮(这为我在“笔画”列中提供了“20 -> 20”)
  5. 现在,按住鼠标按钮会在屏幕上显示一个很小的“Ctr”,并且只要鼠标按钮按下,就好像按住该按钮一样


小智 -1

如果您更喜欢基于 GUI 的功能解决方案,则可以从 Ubuntu 软件中心下载 Easytrips 应用程序,而不是使用 xdotool。您可以轻松地将键盘按键和快捷键映射到鼠标按钮甚至鼠标手势。

  • 我尝试过 Easylines,但据我所知,它也不允许我将修饰键映射到鼠标按钮。它允许我映射修饰符+组合键,例如 SHIFT+A,但它不允许我将修饰符单独映射到鼠标按钮。我希望按住鼠标拇指按钮具有与按住 CTRL 按钮相同的功能。 (6认同)