如何在Logitech Mouse中配置额外的按钮


64

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

具体来说,我想将其中一个仅用作Ctrl键(用于控制单击网页),而将另一个Ctrl+ 用作W关闭标签。通常,每次单击时,我也会使滚轮页面向下滚动(否则,滚动太多会伤害我的手臂)。我将轮子推向左侧=向后翻页,向右推=向后翻页。

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

但是,当我发布后续帖子以解决该问题时,没有人回应-也许我在发布已“解决”的问题时犯了错误。我不确定如何重新提出一个与我的问题有关的问题,但还不能完全解决我的问题。


1
我认为这是使鼠标具有全部功能的最简单方法:ralf-oechsner.de/opensource/page/logitech_performance_mx
Edward Kennedy

Answers:


70

您将需要几个应用程序来运行它们

sudo apt-get install xbindkeys xautomation xev

要么

sudo apt-get install xbindkeys xautomation x11-utils

编辑:从Ubuntu 14.04或更高版本开始,xev已合并到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

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

这是从输出中得出的重要信息:button 1。这告诉我们特定的按钮是按钮一。我现在将其存储在.txt文件中。

第2步

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

xbindkeys --defaults > $HOME/.xbindkeysrc  

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

为了使按钮起作用,Ctrl我们将添加:

"xte 'key Control_L'"
b:1  

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

如果您要告诉我按钮的按钮编号以及每个按钮的功能,我将为您编写脚本。


@seth:我想将按钮8和9分别配置为“后退”和“前进”。更好的是,如果我能确定在哪里可以找到可以使用xbindkeys配置的命令,那将很棒。谢谢你,丹
dbbd

11
以减少xev的输出的精神错乱的最简单的方法是通过运行通过grep的输出:xev | grep -A2 ButtonPress; 这将保留所有鼠标移动事件,焦点事件等,仅显示ButtonPress事件。
Lambart 2014年

@dbbd显然我以某种方式错过了您的消息。我会调查一下,然后回覆您。
赛斯2014年

2
我的鼠标也是G300,我无法使用它。这些按钮被错误地映射,并且两个按钮被映射到同一个Control_L按钮,我不知道如何映射它们,因为按下时它们无法识别自己。
Inoki

6
“ xbindkeys -p”以应用更改
Alex Fedulov

12

我按照@Seth的说明进行操作,但我想绑定的是M705要做的拇指按钮CTRL + Left-click(用于在chrome浏览器的新标签页中打开链接)。我需要添加的绑定是这样的:

"xte 'keydown Control_L' 'mouseclick 1' 'keyup Control_L'"
    b:10 + Release

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


此解决方案(不是上述解决方案)在使用Logitech M705鼠标的Ubuntu Mate 16.04上像魅惑一样工作。我已使用它为侧面按钮分配复制和粘贴,因此我的设置如下所示:“ xte'keydown Control_L''key c''keyup Control_L'” b:9“ xte'keydown Control_L''key v''keyup Control_L'“ b:8
Draco

2
“ xbindkeys -p”以应用更改。
user3616725

8

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

  1. 按照Seth的回答(具有步骤1,步骤2和的答案sudo apt-get install xbindkeys xautomation xev
  2. .xbindkeysrc文件中添加以下行:

这是用于复制:

"xte 'keydown Control_L' 'key c' 'keyup Control_L'"
b:9

这是用于粘贴:

"xte 'keydown Control_L' 'key v' 'keyup Control_L'"
b:8

* b:9表示鼠标上的按钮9(使用确认按钮编号xev

  1. 它不会立即生效,您必须先重新加载.xbindkeysrc或重新启动计算机。

哦,哇,这对我很有效。试图在过去的4年中设置这些密钥,直到现在才能够这样做。谢谢!顺便说一句这是超级重要的是知道这些是什么按钮,对我来说,他们对我的鼠标分别为16和17 ..
氧化钛TROM

注意:b:9等必须在配置文件中换行。我把它们放在同一行,无法弄清为什么它不起作用。
user3616725

这对于GUI来说对我有用,但是对Bash终端不起作用。有没有什么方法可以使GUI和Shell的复制/粘贴具有相同的按钮?
JoeMjr2

@ JoeMjr2在Bash终端中,您很可能会使用Ctrl + Shift + V粘贴并通过按Ctrl + Shift + C进行复制。因此,您将需要某种方式来使用特定于应用程序的映射。我不确定如何。也许您可以使用某些终端模拟器并设置热键以标准方式复制粘贴-然后复制粘贴鼠标按钮应该可以使用。
zwolin

5

您应该安装Solaar,这是一个Linux工具,可让您管理Logitech Unifying Receiver鼠标和键盘,它同时具有GUI和命令行界面。为此,添加以下存储库并通过执行以下命令进行安装:

sudo add-apt-repository ppa:daniel.pavel/solaar

sudo apt-get update

sudo apt-get install solaar

这将允许您增加和最大化鼠标的DPI,监视电池,启用平滑滚动和侧面滚动。要使多窗口和缩放按钮正常工作,您可以访问此站点,该站点将引导您完成一些简单的步骤,以获取所需的功能:

http://www.ralf-oechsner.de/opensource/page/logitech_performance_mx


我是在C720 / Crouton上做到的。当我大吃一惊时,它崩溃了回到开始屏幕。我不得不重新启动(并找出命令是sudo startxfce4)并删除了。
马蒂·科恩(Marty Cohen)2014年

Solaar在14.04上对我来说是非常大的越野车,最终根本无法运行。我意识到最初的问题是关于12.04,但认为值得一提。也许可以节省一些时间。
moss

12
-1。该答案不能回答问题。solaar不会对鼠标按钮进行任何映射。
2015年

也没有为我工作。
Woeitg '16

3

您应该已经拥有了它们,因为它们应该随Ubuntu一起提供,但是为了以防万一,请运行它。

sudo apt-get install libdaemon-dev libglade2-dev libgtk2.0-dev 

现在,下载并安装

  1. btnx配置
  2. btnx按此顺序。

安装:

解压缩,并cd进入每个文件夹。

在每个运行:

./configure
make
sudo make install

两者都安装后,运行

sudo btnx-config

在“配置”选项卡中,单击“检测鼠标和按钮”

在此处输入图片说明

在“按钮”选项卡中,为鼠标按钮分配一个键或功能。确保☑复选标记已启用

在此处输入图片说明

最后,在“配置”选项卡中,单击“重新启动btx”按钮,以使您的更改生效。

在此处输入图片说明


在ubuntu迪斯科上运行良好。一种更正:应该是公正的./configure,而不是./configure make。另外,您不需要使用make的sudo。
panta82

@ panta82我直接从README.md文件中获取了这些文件
No Sssweat

我知道。自述文件中有一个错误:)
panta82

2

我也有g700s游戏鼠标。好消息是,它非常昂贵(对于鼠标而言),制造商实际上将其构建为高标准。鼠标的功能存储在鼠标中。坏消息是正确配置它,您需要使用仅在Windows中运行的Logitech软件。

所以... 基本上,您需要将鼠标插入Windows框中,并按照需要进行完全配置。我建议使用开关配置文件功能,以便可以将其设置为正常使用,例如:运行linux桌面,compiz函数(切换应用程序,切换工作区,切换最大化等),然后制作另一个游戏配置文件( (可能具有不同的刷新率)和游戏按钮。至于compiz,请考虑将4个侧面的拇指按钮设置为alt,ctl,shift,超键,因为这将使滚轮的切换更加容易。alt +向上滚轮变成拇指按钮1 +向上滚轮。

我的计划:

拇指按钮1(向前下移)= alt

拇指按钮2(向前上移)=移位

拇指按钮3(后下方)= ctrl

拇指按钮4(后上方)=超级键(Windows键)

食指中键= Ctrl + Alt +数字键5

食指离您更近=选项卡

食指离您更远= alt-f4(compiz / linux / winX关闭应用程序)

compiz默认值:

切换工作空间= alt + ctl +鼠标拖动=一起放下2个拇指按钮+鼠标单击并拖动;键入时听起来很复杂,但使用起来非常有效。

切换应用程序= alt +制表符=下拇指前进按钮+食指合拢按钮(请记住,要使其正常工作,您需要按住拇指按钮,以便可以切换过去的1个应用程序)

淡入窗口(透明度)= alt +滚轮=拇指下移按钮+滚轮

然后将其拖回您的Linux机器,它可以完美工作。

上面描述的键绑定效果很好,但是考虑到《战地4》在识别鼠标为具有10个按钮的鼠标方面也经历了很长的时间,因此我不得不将4个拇指按钮映射到=,\和;。但是显然在linux中这很愚蠢,将=键重新绑定到“ next app”是徒劳的,特别是在编码hahahaha时。

如果使用VIRTUALBOX运行WINDOWS 7,则需要链接:

https://stackoverflow.com/questions/20021300/usb-devices-are-not-recognized-in-virtualbox-linux-host

https://www.youtube.com/watch?v=-0OyrvbZNwo



1

我有一台Logitech MX 500,并且想要使用“复制”和“粘贴”操作来映射横向键(这非常有用)。

我使用指南来了解如何配置xbindkeysrc文件并能够映射键。


2
您知道将鼠标指针移至要复制的文本的开头/结尾,然后按下鼠标左键并保持不放,直到到达要复制的文本的结尾/开头。当您要粘贴时,请按中间按钮(如果只有两个按钮的鼠标,请同时按左右两个按钮),然后粘贴文本。无需进行任何配置,这在带有XWindows系统的所有Unix和Linux计算机上都是开箱即用的。请记住,我们不是使用无功能的Microsoft产品,而是使用GNU / Linux

@ user350566这种复制+粘贴有一些限制。有时您想要另一个剪贴板,也就是Ctrl + C / + V。只是说。
donquixote

1

我提出了与Wayland一起使用的解决方案。

它在这里https://github.com/mathportillo/wayland-mouse-mapper

它使用evemu将设备事件通知发送到内核,因此不受Wayland的限制

下面显示了一个摘要的bash脚本,以显示其工作原理(大多数命令需要root特权)

找到您的设备:

libinput list-devices

要直接找到您的指针设备名称,请使用:

libinput list-devices | grep pointer -B3 | grep -o '/dev/input/event[1-9]*'

列出您使用的设备事件(将event5更改为指针设备名称):

libinput debug-events --device /dev/input/event5

要将命令绑定到设备事件,请使用:

while read line; do
    echo ${line} # line represents a command
    # your code goes here
done < <(stdbuf -oL libinput debug-events --device /dev/input/event5 & )

触发鼠标事件使用:

evemu-event /dev/input/event5 --sync --type EV_KEY --code KEY_PAGEUP --value 1

type可以是击键以外的类型,代码可以是PageUp以外的类型,按下时的值为1,释放时的值为0,是的,您的鼠标可以触发击键,系统将其解释为与键盘相同,所有事件仅来自事件设备。

可以在上面的git repo中找到一个脚本,该脚本将所有上述概念合并到一个工作的映射器上,该映射器可以在Wayland上运行,并且可以配置为在系统启动时启动的服务。


0

在Debian中,您有一个xbindkeys-config软件包,可以帮助您配置按键/按钮绑定。这样:

sudo apt-get install xbindkeys-config

2
每当我尝试对G300进行任何操作时,该程序都会崩溃。
Inoki


0

因此,我已经在ubuntu机器上使用Performance MX大约6个月了。我将大多数按钮设置为默认值,但我确实将拇指按钮设置为“超级”键,这比在gnome中转到屏幕的左上角更方便。我将缩放按钮设为控制按钮。但是,可以将其设置为打开CTRL和关闭CTRL,并分别单击。这确实有帮助,因为我有一个4K显示屏和一个1080,所以我可以单击一次缩放按钮,滚动滚轮以放大和缩小网页,然后在缩放网页时按一下。再次。这是我的xbindkeysrc设置:

"/usr/bin/xte 'keydown Control_L' &"
b:13
"/usr/bin/xte 'keyup Control_L' &"
Control + b:13
"/usr/bin/xte 'key Super_L'"
b:10 + release

这似乎无法回答所提出的问题。
TheWanderer 2015年


0

使用鼠标的前进和后退按钮上下滚动

首先,安装所需的软件包:

$ sudo apt install x11-utils xbindkeys xautomation

接下来,使用xev提供的x11-utils来检测鼠标的后退和前进按钮的确切按钮号。

$ xev |grep -A2 ButtonPress

对于我的有线垂直Anker鼠标,后退和前进分别是按钮8和9。

ButtonPress event, serial 37, synthetic NO, window 0x3600001,
    root 0x1da, subw 0x0, time 1708382, (68,54), root:(939,498),
    state 0x10, button 8, same_screen YES
--
ButtonPress event, serial 37, synthetic NO, window 0x3600001,
    root 0x1da, subw 0x0, time 1711030, (69,48), root:(940,492),
    state 0x10, button 9, same_screen YES

有线垂直Anker鼠标

通过.xbindkeysrc在主目录中创建一个包含以下内容的隐藏文件来继续:

"xte 'keydown Down'"
b:8

"xte 'keyup Down'"
b:8 + Release

"xte 'keydown Up'"
b:9

"xte 'keyup Up'"
b:9 + Release

xte命令由xautomation软件包提供。

最后,从桌面注销并再次登录,以使这些更改生效。现在,您可以通过按住鼠标的后退和前进按钮在浏览器和其他程序中上下滚动。

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.