如何在罗技鼠标中配置额外的按钮

Ric*_*ick 93 mouse button logitech

谁能告诉我如何在 Ubuntu 12.04 下配置Logitech MX 620 鼠标上的所有按钮?

具体来说,我喜欢让其中一个只是Ctrl关键(用于控制点击网页),另一个Ctrl+W来关闭标签。我通常也会在每次点击时向下滚动滚轮页面(否则滚动太多会伤害我的手臂)。我将轮子向左推=翻页,向右推=向前翻页。

我已经搜索了其他答案,并在此处找到了相关内容

但是当我发布了一个后续帖子来解决这个问题时,没有人回应——也许我错误地发布了一个已经“解决”的问题。我不确定我应该如何重新打开一个与我的问题相关但并不能完全解决我的问题的问题。

Set*_*eth 96

为此,您将需要多个应用程序,以安装它们运行

# Ubuntu 14.04 and newer
sudo apt-get install xbindkeys xautomation x11-utils
Run Code Online (Sandbox Code Playgroud)

或者

# Before Ubuntu 14.04
sudo apt-get install xbindkeys xautomation xev
Run Code Online (Sandbox Code Playgroud)

xev从 Ubuntu 14.04 或更高版本开始,已合并到 x11utils 中)

第1步

您需要找到鼠标按钮的按钮编号。运行xev。你会看到一个白色的小窗口出现,把你的鼠标放在里面并按下你的鼠标按钮(最好一次按一个按钮)。您应该为每个按钮获得如下输出:

ButtonRelease event, serial 41, synthetic NO, window 0x4c00001,
root 0x2e9, subw 0x4c00002, time 25804905, (31,28), root:(821,80),
state 0x110, button 1, same_screen YES
Run Code Online (Sandbox Code Playgroud)

(注:xev也捕捉鼠标移动,所以你可能需要通过鼠标移动事件进行筛选找到你的按钮事件;例如:xev -event mouse | grep Button --before-context=1 --after-context=2

这是该输出的重要内容:button 1. 这告诉我们特定的按钮是按钮一。我现在将它存储在一个.txt文件中。

第2步

xbindkeys使用以下命令创建配置文件:

xbindkeys --defaults > $HOME/.xbindkeysrc  
Run Code Online (Sandbox Code Playgroud)

接下来我们需要将键/按钮绑定添加到配置文件中。您可以使用gedit $HOME/.xbindkeysrc. 这就是乐趣的开始。我们将使用xte设置绑定到我们的按钮。

要使按钮像Ctrl我们添加的那样起作用:

"xte 'key Control_L'"
b:1  
Run Code Online (Sandbox Code Playgroud)

这将绑定Ctrl到鼠标按钮一。

如果您告诉我按钮的按钮编号以及您希望每个按钮做什么,我会为您编写脚本。

  • 减少 xev 输出混乱的最简单方法是通过 grep 运行输出:`xev | grep -A2 ButtonPress`; 这将保留所有鼠标移动事件、焦点事件等,只显示“ButtonPress”事件。 (15认同)
  • “xbindkeys -p”应用更改 (13认同)
  • 我的鼠标也是 G300,我无法让它工作。按钮映射不正确,两个按钮映射到同一个 Control_L 按钮,我不知道如何映射它们,因为按下它们时它们无法识别自己。 (2认同)
  • 我已经设法使这个适用于我的罗技 mx518。必须使用 `b:9 + Release` 和 `b:8 + Release`,例如 ctrl+w: `"xte 'usleep 1000' 'keydown Control_L' 'key W' 'keyup Control_L'"` (2认同)
  • 对于那些不想安装不必要的软件包的人: `.xbindkeyrc` 中的每个条目通常采用 `"<shell command>"\n<key spec>` 形式。因此,您不一定必须使用“xte”;您可以使用任何您喜欢的命令。请注意 `xbindkeys --defaults > $HOME/.xbindkeysrc` 设置了一些默认快捷键(例如 `Ctrl+f` 来运行 `xterm`),您可能需要将其注释掉。和往常一样,[ArchWiki](https://wiki.archlinux.org/index.php/Xbindkeys) 非常有帮助。 (2认同)

小智 18

我遵循了@Seth 的说明,但我想要的绑定是拇指按钮和 M705 要做的CTRL + Left-click(用于在 chrome 浏览器的新选项卡中打开链接)。我需要添加的绑定是这样的:

"xte 'keydown Control_L' 'mouseclick 1' 'keyup Control_L'"
    b:10 + Release
Run Code Online (Sandbox Code Playgroud)

它等待拇指按钮被释放,然后按下控制键,执行鼠​​标单击,然后释放控制键。

  • “xbindkeys -p”应用更改。 (3认同)

zwo*_*lin 13

对于想要将复制和粘贴操作绑定到鼠标按钮的任何人:

  1. 按照赛斯的回答(第 1 步、第 2 步和sudo apt-get install xbindkeys xautomation xev
  2. 将以下几行放入您的.xbindkeysrc文件中:

这是用于复制:

"xte 'keydown Control_L' 'key c' 'keyup Control_L'"
b:9
Run Code Online (Sandbox Code Playgroud)

这是用于粘贴:

"xte 'keydown Control_L' 'key v' 'keyup Control_L'"
b:8
Run Code Online (Sandbox Code Playgroud)

*b:9表示鼠标上的按钮 9(检查按钮编号xev

  1. 它不会立即工作,您必须先重新加载.xbindkeysrc或重新启动机器。


pan*_*a82 8

2021 年的最佳答案是 Key Mapper 实用程序:https :
//github.com/sezanzeb/key-mapper

不再需要黑客攻击。

截屏

  • 该屏幕截图来自 Ubuntu 20.04。 (3认同)
  • 谢谢。我在尝试从源代码构建它时遇到了一些错误,但从发布的 deb 包安装没问题。令人惊叹的 GUI 工具。 (2认同)

小智 1

我一直在尝试做类似的事情,并且遇到了这个页面: http://ubuntuforums.org/showthread.php?t =65471

希望它也适用于 mx 620。