How To Configure Extra Buttons in Logitech Mouse 1

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 13

Ask Ubuntu sign up log in

Questions Tags Users Badges Ask

71 How to configure extra buttons in Logitech Mouse


mouse logitech button

Can anyone tell me how to configure all the buttons on a Logitech MX 620
mouse under Ubuntu 12.04?

Specifically, I like to make one of them just the CCttrrll key (for control clicking
webpages) and another one CCttrrll + WW to close tabs. I also normally make the
scroll wheel page down for each click (otherwise it hurts my arms to be
scrolling so much). I make pushing the wheel to the left = pageback and
pushing to the right = page forward.

I've searched for other answers to this and found something related here

But when I posted a followup post to solve the issue, no one responded
--perhaps I made the mistake of posting to a question that had been "solved."
I'm not sure how I'm supposed to reopen a question that is pertinent to my
question but doesn't quite solve mine.

share improve this question

Rick asked
1,121 ● 2 ● 11 ● 14 Jun 17 '12 at 23:38

Kulfy edited
10.5k ● 12 ● 38 ● 66 Aug 31 '19 at 10:30

1 I think this is the easiest way to get the mouse working with full functionality: ralf-
oechsner.de/opensource/page/logitech_performance_mx – Edward Kennedy Feb 28
'14 at 22:20

youtube.com/watch?v=seDYxGhrc4A – William Oct 15 '18 at 0:57

add a comment

14 Answers order by votes


You're going to need several applications for this, to install them run
79
sudo apt-get install xbindkeys xautomation xev

or

sudo apt-get install xbindkeys xautomation x11-utils

edit: xev was merged into x11utils, as of Ubuntu 14.04 or greater.

Step 1
You need to find the button numbers for the buttons on your mouse.
Run xev. You will see a litle white windows appear, put your mouse in
it and press your mouse buttons (it's best to do this one button at a
time). You should get output like this for each button:

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

(note: xev also capture mouse movement so you might need to sift
through mouse movement events to find your button events; e.g.: xev
-event mouse | grep Button --before-context=1 --after-
context=2)

This is what is important from that output: button 1. That tells us


that particular button is button one. I would store this in a .txt file for
now.

Step 2
Create the xbindkeys config file using:

xbindkeys --defaults > $HOME/.xbindkeysrc

Next we need to add the key/button bindings to the config file. You
can open this file with gedit $HOME/.xbindkeysrc. This is where the
fun begins. We are going to use xte to set bindings to our buttons.

To make a button act as CCttrrll we would add:

"xte 'key Control_L'"


b:1

This would bind CCttrrll to mouse button one.

If you will tell me the button numbers of your buttons and what you
want each to do, I will write the script for you.

share improve this answer


Seth answered
44.5k ● 29 ● 130 ● 186 Jan 24 '13 at 0:23

kevinf edited
710 ● 6 ● 13 Jul 29 '16 at 21:17

@seth: I would like to configure buttons 8 & 9 to be "back" and "forward" respectively.
Better yet, if I could figure out where to fint the commands that I can configure with
xbindkeys, that would be great. Thanks, Dan – dbbd Jun 26 '14 at 9:46

13 The easiest way to reduce the insanity of the xev output is by running the output
through grep: xev | grep -A2 ButtonPress ; this will leave all the mouse motion
events, focus events, etc. and just show the ButtonPress events. – Lambart Sep
19 '14 at 18:46

@dbbd Apparently I missed your message somehow. I will look into it and get back
to you. – Seth Sep 19 '14 at 21:54

2 My mouse is also a G300 and I can't get this to work. The buttons are incorrectly
mapped and two buttons are mapped to the same Control_L button and I have no
idea how to map them since when pressed they don't identify themselves. – Patrik
Sep 7 '15 at 17:17

11 "xbindkeys -p" to apply the changes – Alex Fedulov Nov 28 '16 at 10:46

show 6 more comments

I followed the @Seth's instructions, but the binding I wanted was to


13 for the thumb button an the M705 to do CTRL + Left-click (for
opening links in a new tab in chrome browser). The binding I needed
to add was this:

"xte 'keydown Control_L' 'mouseclick 1' 'keyup Control_L'"


b:10 + Release

It waits for the thumb button to be released, and then presses control
key, performs the mouse click, then releases the control key.

share improve this answer

CoatedMoose answered
233 ● 2 ● 7 Jun 3 '14 at 20:42

Community ♦♦ edited
1 Apr 13 '17 at 12:24

This solution, not the above, worked like a charm on Ubuntu Mate 16.04 with
Logitech M705 mouse. I've used it to assign copy and paste to side buttons so my
settings looked like this: "xte 'keydown Control_L' 'key c' 'keyup Control_L'" b:9 "xte
'keydown Control_L' 'key v' 'keyup Control_L'" b:8 – Draco Dec 9 '16 at 11:36
2 "xbindkeys -p" to apply the changes. – user3616725 Jan 17 '18 at 11:11

add a comment

For anyone who wants to bind copy and paste actions to mouse
9 buttons:

1. Follow Seth answer (the one with Step 1, Step 2 and sudo apt-
get install xbindkeys xautomation xev)
2. Put following lines in your .xbindkeysrc file:

This is for copying:

"xte 'keydown Control_L' 'key c' 'keyup Control_L'"


b:9

This is for pasting:

"xte 'keydown Control_L' 'key v' 'keyup Control_L'"


b:8

*b:9 means button 9 on the mouse (check button numbers with xev)

3. It won't work right away, you must reload .xbindkeysrc first or


restart your machine.

share improve this answer

zwolin answered
193 ● 1 ● 5 May 30 '16 at 13:02

oh wow this worked for me perfectly. trying to set up those keys for the past 4 years
and only now able to do this. thank you! btw it is super important to know what
buttons those are, for me they were 16 and 17 on my mouse.. – Tio TROM May 6 '17
at 14:56

NOTE: the b:9 etc HAVE TO be on a new line in the config file. I put them on the same
line and couldn't work out why it wasn't working. – user3616725 Jan 17 '18 at 11:12

This worked for me for the GUI, but it doesn't work for the Bash terminal. Is there any
way to make copy/paste work for BOTH the GUI and the shell with the same buttons?
– JoeMjr2 Nov 27 '18 at 3:58

@JoeMjr2 In Bash terminal you most probably would paste using Ctrl+Shift+V and
copy by pressing Ctrl+Shift+C. So you would need some way to use application-
specific mapping. I am not sure how though. Maybe you could use some terminal
emulator and set up hotkeys to copy paste the standard way - then your copy paste
mouse buttons should work. – zwolin Nov 27 '18 at 7:12

one can get example of xbindkeys configuration by running: $ xbindkeys --defaults


– Alexander Glulkhovtsev Feb 19 at 17:14
show 1 more comment

You should install Solaar, a Linux tool that allows you to manage
5 Logitech Unifying Receiver mice and keyboards, that comes with both
a GUI and command line interface. To do that add the following
repository and install by executing the following commands:

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

sudo apt-get update

sudo apt-get install solaar

This will allow you to increase and maximize you mouse's DPI,
monitor battery, enable smooth scrolling and side scrolling. To get the
multi window and zoom button working you can visit this site which
walks you through the easy steps to get the functionality you are
looking for:
http://www.ralf-oechsner.de/opensource
/page/logitech_performance_mx

share improve this answer

Edward Kennedy answered


75 ● 1 ● 3 Mar 1 '14 at 16:13

I did this on my C720/crouton. When I ran solaar, it crashed back to the start screen. I
had to restart (and figure out the command was sudo startxfce4) and removed
solaar. – marty cohen May 15 '14 at 22:44

Solaar was very buggy for me on 14.04 and eventually just wouldn't run at all. I
realize the original question was about 12.04, but thought it was worth mentioning.
Maybe save someone some time. – moss Jan 24 '15 at 0:49

13 -1. This answer does not answer the question. solaar does not do any mapping of
the mouse buttons. – Twifty Apr 19 '15 at 4:43

didnt work for me either. – Woeitg Feb 12 '16 at 7:24

add a comment
You should already have these as they should come with Ubuntu, but
4 run this just in case.

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

Now, download & install

1. btnx-config
2. btnx In this order.

To install:

Unzip, and cd into each of these folders.

In each of them run:

./configure
make
sudo make install

Once both of them are installed, run

sudo btnx-config

In Configurations tab, click Detect Mouse & Buttons

In Buttons tab, assign your mouse button a key or functionality. Make


sure you ☑ check mark enabled.

Lastly, in Configurations tab, click on Restart btx button so your


changes take effect.
share improve this answer

No Sssweat answered
161 ● 4 May 31 '19 at 22:24

Kevin Bowen edited


16.8k ● 15 ● 63 ● 74 Jul 24 '19 at 12:08

Worked well on ubuntu disco. One correction: It should be just ./configure , not
./configure make . Also you don't need sudo with make. – panta82 Jun 15 '19 at
21:27

@panta82 I took those directly from the README.md file – No Sssweat Jun 20 '19 at
8:03

I know. There is a mistake in the README file :) – panta82 Jun 20 '19 at 9:10

add a comment
I too have the g700s gaming mouse. The good news is that it was
3 expensive (for a mouse) and the manufacture actually built it to a
high standard. The functions for the mouse are stored in the mouse.
The bad news is to configure it correctly you need to use the logitech
software that only runs in windows.

So...basically you need to plug the mouse into a windows box, and
configure it exactly how you want it. I'd recommend utilizing the
switch profiles function so you can set it up good for normal usage,
ie: running your linux desktop, compiz functions (switching apps,
switching workspaces, toggling maximize, etc), and then make
another profile for gaming (possibly with a different refresh rate) and
the gaming buttons. As for compiz consider setting the 4 side thumbs
buttons to alt, ctl, shift, superkey, as this will make using switching
easier with the scroll wheel. alt + scroll wheel up becomes thumb
button 1 + scroll wheel up.

My scheme:

thumb button 1 (forward lower) = alt

thumb button 2 (forward upper) = shift

thumb button 3 (rear lower) = ctrl

thumb button 4 (rear upper) = superkey (windows key)

index finger middle button = ctrl + alt + numpad 5

index finger closer to you = tab

index finger farther away from you = alt-f4 (compiz/linux/winX close


app)

compiz defaults:

switch workspace = alt + ctl + mouse drag = lower 2 thumb buttons


together + mouse click and drag; sounds complicated when typed it
out but it's very efficient to use.

switch apps = alt + tab = lower thumb forward button + index finger
closer button (remember for this to work well you need to keep
holding down thumb button, so you can switch past 1 app)

fading a window (transparency) = alt + scroll wheel = thumb lower


forward button + scroll wheel

Then go haul it back over to your linux box and it works perfectly.

The key bindings described above works great, but consider


battlefield 4 also has a terrible time recognizing the mouse as a
mouse with 10 buttons so for that I had to map my 4 thumb buttons
to = , \ and ;. But obviously in linux this is silly, and to re-bind the = key
to "next app" is a lesson in futility, especially when coding hahahaha.

MUCH NEEDED LINKS IF USING VIRTUALBOX TO RUN WINDOWS 7:

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

user681010 answered
31 ● 1 Apr 21 '17 at 20:40

Community ♦♦ edited
1 May 23 '17 at 12:39

I've been trying to do something similar, and I've come across this
1 page: http://ubuntuforums.org/showthread.php?t=65471

Hopefully it works for mx 620 as well.

share improve this answer

sodiumnitrate answered
267 ● 3 ● 12 Sep 11 '12 at 12:25

I have a Logitech MX 500 and wanted to map the lateral keys with
1 Copy and Paste actions (it is very useful).

I used this guide to understand how to configure the xbindkeysrc file


and be able to map the keys.

share improve this answer

German answered
11 ● 2 Mar 12 '13 at 4:43

2 You know that moving the mouse pointer to the start/end of the text you want to
copy and then press down the left button and keep holding it till you get to the
end/start of what you want to copy and it's copied. When you want to paste you
press the middle button (if you just have a two button mouse, press both left and
right button at the same time) and you paste the text. No need to configure anything,
this is out of the box on all Unix and Linux machines with a XWindows System.
Please keep in mind we ain't using a featureless microsoft product but GNU/Linux
– user350566 Nov 20 '14 at 14:29

@user350566 This kind of copy+paste has some limitations. Sometimes you want
the other clipboard aka Ctrl+C / +V. Just saying. – donquixote Jan 27 '16 at 20:09

add a comment
I made a solution that works with Wayland.
1
Its here https://github.com/mathportillo/wayland-mouse-mapper

It uses evemu to send a device event notice to the kernel, so it's not
restricted by Wayland

A summarized bash script that show how it works is below (most of


the commands require root privileges)

find your device:

libinput list-devices

to directly find your pointer device name use:

libinput list-devices | grep pointer -B3 | grep -o '/dev/input/eve

to list your device events use (change event5 to your pointer device
name):

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

to bind commands to your device events use:

while read line; do


echo ${line} # line represents a command
# your code goes here
done < <(stdbuf -oL libinput debug-events --device /dev/input/even

to trigger a mouse event use:

evemu-event /dev/input/event5 --sync --type EV_KEY --code KEY_PAGE

type can be other than keystroke, and code can be other than PageUp,
value is 1 for pressed and 0 for released yes, your mouse can trigger
keystrokes, the system will interpret it the same as keyboards, its all
just events from event devices.

A script that merge all the above concepts on a working mapper, that
works on Wayland and can be configured as a service to start on
system startup, can be found in the git repo above.

share improve this answer

Matheus Portillo answered


11 ● 2 Aug 10 '18 at 14:50
1
Scroll up and down with mouse forward and
back buttons
First, install the required packages:

$ sudo apt install x11-utils xbindkeys xautomation

Next, use xev provided by x11-utils to detect the exact button


numbers of the back and forward buttons of the mouse.

$ xev |grep -A2 ButtonPress

For my wired vertical Anker mouse, back and forward are respectively
buttons 8 and 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

Continue by creating a hidden file named .xbindkeysrc in your home


directory with the following contents:

"xte 'keydown Down'"


b:8

"xte 'keyup Down'"


b:8 + Release

"xte 'keydown Up'"


b:9

"xte 'keyup Up'"


b:9 + Release
share improve this answer

Serge Stroobandt answered


2,935 ● 29 ● 38 Jul 5 '19 at 8:05

edited
Jul 5 '19 at 9:31

in Debian you have a xbindkeys-config package which will help you


0 configure your key/button bindings. So do:

sudo apt-get install xbindkeys-config

share improve this answer

hrv answered
1 Oct 24 '14 at 9:28

muru edited
153k ● 24 ● 359 ● 581 Oct 24 '14 at 9:53

2 That program just crashes whenever I try to do anything with my G300. – Patrik Sep
7 '15 at 17:02

add a comment

Lomoco is included in Ubuntu Software Center and specifically is


0 designed to deal with Logitech Mouse vendor-specific
customizations. It can possibly accomplish some of the things you
are trying to do.

http://manpages.ubuntu.com/manpages/trusty/man1/lomoco.1.html

share improve this answer

Invention1 answered
168 ● 1 ● 11 Jan 16 '16 at 19:42

doesn't work for the G700 – m4l490n Nov 18 '16 at 7:04

add a comment
So I have been using my performance MX on my ubuntu machine for
0 about 6 months. I left most buttons default, but I did go ahead and
make the thumb button the Super key which is handier than going to
the top left corner of the screen in gnome. And I made the zoom
button a control button. But it is set to turn on CTRL and turn off CTRL
with separate clicks. This really helps since I have one 4K display and
one 1080, so I can click the zoom button once, scroll the wheel to
zoom in and out fo web pages, and when I have the web page scaled
how I want, I click the zoom again. Here is my xbindkeysrc settings:

"/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

share improve this answer

JDAIII answered
1 Nov 12 '15 at 0:50

Byte Commander ♦♦ edited


83.3k ● 32 ● 210 ● 352 Mar 19 '16 at 14:47

This doesn't seem to answer the question asked. – TheWanderer Nov 12 '15 at 2:27

add a comment

btnx might be a simple solution for button remapping with Logitech


0 mouses as it should be working with all brands. It has an easy
graphical interface and can learn about available buttons. btnx was
part of the standard repositories years ago, but has been removed. It
is currently available here: https://launchpad.net/~oliverstar/+archive
/ubuntu/ppa

share improve this answer

w-sky answered
189 ● 2 ● 12 Oct 10 '18 at 0:09

Highly active question. Earn 10 reputation in order to answer this question. The
reputation requirement helps protect this question from spam and non-answer
activity.

meta chat tour help blog privacy policy legal contact us full site
2020 Stack Exchange, Inc. user contributions under cc by-sa 4.0.

You might also like