如何将鼠标按键绑定到按键?


19

我有一台Logitech MX400激光鼠标,其中有5个按钮+ 4个用于垂直/水平滚动。我想它设置了这样而不是横向滚动的按右上的滚轮会发出Ctrl+ Tab左将派Ctrl+ Shift+ Tab,这将使我通过循环在浏览器中的标签。

另外,如果我可以将中间按钮重新映射到侧面的按钮之一,那就太好了,因为确实很难按下。

另一个好处是,如果我可以编写一个脚本来允许我定义哪个按钮做什么,则取决于当前处于活动状态的窗口。

我已经尝试过使用,xmodmap但是我只能看到如何重新排列按钮,而不能让它们发送按键信号。

提前致谢。


按钮图(使用xev):

Left        1
Middle      2
Right       3
ScrollUp    4
ScrollDown  5
ScrollLeft  6
ScrollRight 7
Backward    8
Forward     9

Answers:


18

xbindkeysXTE可以帮助你。

例如,我的.xbindkeysrc文件如下所示:

# close the window under the mouse cursor
"xte 'mouseclick 1' && xte 'keydown Alt_L' 'key F4' 'keyup Alt_L'"
  b:8+Release

# double click
"xte 'mouseclick 1' 'mouseclick 1'"
  b:9

这是梦幻般的,可扩展的,很多很多的感谢
卡勒姆·罗杰斯

1
要获得XTE在Ubuntu 16.x,你必须安装xautomation贴切
1111161171159459134

效果不如我想的好,因为如果按住按钮,效果会不一样。我的旧鼠标有一个按钮,它可使滚轮自由旋转,如果我只想启动它,使其真正快速移动并滚动很长的距离,那会很棒。但是我的新按钮没有此功能,因此我在侧面将两个按钮(我认为它们被设计为Web浏览的后退/前进按钮)绑定到PgUp / PgDn键。但是如果我想继续滚动,就必须反复按它们;我不能只是压低它们。只要按住按钮,如何使它按住键?
flarn2006

5

感谢大家的解决方案。这是一个更加简单/综合的指南(在Xubuntu 18.04上完成)。

  1. 打开一个终端(例如xterm / terminal / terminator),成为root(sudo su -)或在命令前面使用sudo:

    apt install xbindkeys xautomation
  2. 使用检查按钮映射xev,因为您不需要root权限,所以请退出root会话(使用exit)或以用户身份打开另一个终端。

    xev | grep button
  3. 将会出现一个小窗口。您必须将鼠标移到该窗口中,然后按要重新映射的按钮。终端中的示例输出将是:

    state 0x0, button 8, same_screen YES

    这是我的鼠标第二个侧面按钮,我想用作PAGE_DOWN。

    state 0x0, button 9, same_screen YES

    这是我要用作PAGE_UP的第一个侧面按钮(是的,顺序相反)。

  4. 当您具有所有要重新映射的按钮时,可以关闭xev小窗口。打开您喜欢的编辑器(例如,gedit / vi / nano)并编辑配置文件。

    vi .xbindkeysrc
  5. 如果文件中已经包含一些内容,请查看是否已存在类似的绑定(不太可能,默认情况下不是这样),然后在末尾添加。

    #Pagedown press
    "xte 'keydown Next'"
    b:8
    
    #Pagedown release
    "xte 'keyup Next'"
    b:8 + Release
    
    #Pagedup press
    "xte 'keydown Prior'"
    b:9
    
    #Pageup release
    "xte 'keyup Prior'"
    b:9 + Release

    注意:您需要输入两个,一个用于按下按钮,另一个用于释放。

  6. 按钮8 + 9将映射到键“下一步”(PAGE_DOWN)和“优先级”(PAGE_UP)。如果要映射不同的键,则可以使用xev找到键符号。

    xev | grep keysym
  7. 像以前一样,在终端中启动它,将鼠标移到小窗口中,然后按想要的键。

    state 0x0, keycode 117 (keysym 0xff56, Next), same_screen YES,
  8. 保存并杀死xbindings。

    killall xbindkeys ; xbindkeys

现在,您可以使用鼠标上的其他侧面按钮。该设置将在下次重启/登录时自动加载。killall [...]如果更改设置,则仅需要上面的命令。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.