1

I am trying to reassign the functions on the buttons of my Logitech G700 mouse. Using xinput --list, I see that this counts as two devices (four if you include the wired/wireless differences).

48 will@will-laptop ~]$xinput --list
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Microsoft Natural® Ergonomic Keyboard 4000        id=10   [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=15   [slave  pointer  (2)]
⎜   ↳ Logitech USB Receiver                     id=17   [slave  pointer  (2)]
⎜   ↳ Logitech USB Receiver                     id=18   [slave  pointer  (2)]

The problem is that there are non-default assignments to the buttons, so xev doesn't show things like "button 12" or whatever, it just shows the keystrokes assigned to the button (i.e. KeyPress Ctrl_L, KeyPress "w", KeyRelease Ctrl_L, KeyRelease "w"). It doesn't show the device and so I'm not sure how to reassign what the key should do. Also, as near as I can tell, there is no way to do a hardware reset of the on-board memory profiles, so I can't reset the mouse to actually give me a "button 7" or whatever.

I am using Ubuntu 13.10.

Here is what I get from xev when I try the "tilt wheel to left" button.

KeyPress event, serial 40, synthetic NO, window 0x4a00001,
root 0x90, subw 0x0, time 13142771, (115,109), root:(2844,1831),
state 0x10, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
XLookupString gives 0 bytes: 
XmbLookupString gives 0 bytes: 
XFilterEvent returns: False

KeyPress event, serial 40, synthetic NO, window 0x4a00001,
root 0x90, subw 0x0, time 13142771, (115,109), root:(2844,1831),
state 0x14, keycode 25 (keysym 0x77, w), same_screen YES,
XLookupString gives 1 bytes: (17) ""
XmbLookupString gives 1 bytes: (17) ""
XFilterEvent returns: False

KeyRelease event, serial 40, synthetic NO, window 0x4a00001,
root 0x90, subw 0x0, time 13142935, (115,109), root:(2844,1831),
state 0x14, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
XLookupString gives 0 bytes: 
XFilterEvent returns: False

KeyRelease event, serial 40, synthetic NO, window 0x4a00001,
root 0x90, subw 0x0, time 13142935, (115,109), root:(2844,1831),
state 0x10, keycode 25 (keysym 0x77, w), same_screen YES,
XLookupString gives 1 bytes: (77) "w"
XFilterEvent returns: False`
1

After playing with this for a while and reading about it, I discovered that the G700 actually stores the button profile on the mouse, so clicking button 12 actually, literally sent the Ctrl+W shortcut. I used a Windows machine and Logitechs Gaming software to restore the buttons to their default status and then they started reporting "button 12" or whatever in xev.

0

There is also an application solaar which programs Logitech devices using Logitech's "universal" USB wireless plug. It has similar capabilities, and programs the plug to pair with devices, and to run some of the device configuration. On my 14.04 setup, it supports 2-way communication --- For example it announces how much battery power remains in each paired device.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.