1

The thumb button of the MX Master is not a button but a simulated keystroke. The issue being that I can't figure out which one it is since xev doesn't recognize it. The shortcuts panel tells me it's "CTR + ALT + TAB" but it's not doing what "CTR + ALT + TAB" should do, namely "switch between panels". Instead what the thumb button does is going back and forth from the window I'm on to the last one displays, ad infinitum. Does anyone know what this function is?


Edit (result from pressing two times the thumb button):

Event: time 1486843409.135360, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e0
Event: time 1486843409.135360, type 1 (EV_KEY), code 29 (KEY_LEFTCTRL), value 1
Event: time 1486843409.135360, -------------- SYN_REPORT ------------
Event: time 1486843409.143358, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e2
Event: time 1486843409.143358, type 1 (EV_KEY), code 56 (KEY_LEFTALT), value 1
Event: time 1486843409.143358, -------------- SYN_REPORT ------------
Event: time 1486843409.151354, type 4 (EV_MSC), code 4 (MSC_SCAN), value 7002b
Event: time 1486843409.151354, type 1 (EV_KEY), code 15 (KEY_TAB), value 1
Event: time 1486843409.151354, -------------- SYN_REPORT ------------
Event: time 1486843409.159360, type 4 (EV_MSC), code 4 (MSC_SCAN), value 7002b
Event: time 1486843409.159360, type 1 (EV_KEY), code 15 (KEY_TAB), value 0
Event: time 1486843409.159360, -------------- SYN_REPORT ------------
Event: time 1486843409.167356, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e2
Event: time 1486843409.167356, type 1 (EV_KEY), code 56 (KEY_LEFTALT), value 0
Event: time 1486843409.167356, -------------- SYN_REPORT ------------
Event: time 1486843409.175354, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e0
Event: time 1486843409.175354, type 1 (EV_KEY), code 29 (KEY_LEFTCTRL), value 0
Event: time 1486843409.175354, -------------- SYN_REPORT ------------
Event: time 1486843410.633371, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e0
Event: time 1486843410.633371, type 1 (EV_KEY), code 29 (KEY_LEFTCTRL), value 1
Event: time 1486843410.633371, -------------- SYN_REPORT ------------
Event: time 1486843410.641373, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e2
Event: time 1486843410.641373, type 1 (EV_KEY), code 56 (KEY_LEFTALT), value 1
Event: time 1486843410.641373, -------------- SYN_REPORT ------------
Event: time 1486843410.649370, type 4 (EV_MSC), code 4 (MSC_SCAN), value 7002b
Event: time 1486843410.649370, type 1 (EV_KEY), code 15 (KEY_TAB), value 1
Event: time 1486843410.649370, -------------- SYN_REPORT ------------
Event: time 1486843410.657362, type 4 (EV_MSC), code 4 (MSC_SCAN), value 7002b
Event: time 1486843410.657362, type 1 (EV_KEY), code 15 (KEY_TAB), value 0
Event: time 1486843410.657362, -------------- SYN_REPORT ------------
Event: time 1486843410.665363, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e2
Event: time 1486843410.665363, type 1 (EV_KEY), code 56 (KEY_LEFTALT), value 0
Event: time 1486843410.665363, -------------- SYN_REPORT ------------
Event: time 1486843410.673364, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e0
Event: time 1486843410.673364, type 1 (EV_KEY), code 29 (KEY_LEFTCTRL), value 0 

Edit II I managed to get the result from xev. Also from pressing two times:

KeyPress event, serial 37, synthetic NO, window 0x6400001, root 0xf5, subw 0x0, time 20443872, (-455,-283), root:(1367,722), 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 37, synthetic NO, window 0x6400001, root 0xf5, subw 0x0, time 20443880, (-455,-283), root:(1367,722), state 0x14, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False

FocusOut event, serial 37, synthetic NO, window 0x6400001, mode NotifyGrab, detail NotifyAncestor

FocusOut event, serial 37, synthetic NO, window 0x6400001, mode NotifyWhileGrabbed, detail NotifyNonlinear

PropertyNotify event, serial 37, synthetic NO, window 0x6400001, atom 0x16b (_NET_WM_STATE), time 20443950, state PropertyNewValue

FocusIn event, serial 37, synthetic NO, window 0x6400001, mode NotifyWhileGrabbed, detail NotifyNonlinear

KeymapNotify event, serial 37, synthetic NO, window 0x0, keys: 0 0 0 0 32 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

FocusIn event, serial 37, synthetic NO, window 0x6400001, mode NotifyUngrab, detail NotifyNonlinear

KeymapNotify event, serial 37, synthetic NO, window 0x0, keys: 3 0 0 0 32 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

KeyRelease event, serial 37, synthetic NO, window 0x6400001, root 0xf5, subw 0x0, time 20445256, (-455,-283), root:(1367,722), state 0x14, keycode 37 (keysym 0xffe3, Control_L), same_screen YES, XLookupString gives 0 bytes: XFilterEvent returns: False

PropertyNotify event, serial 37, synthetic NO, window 0x6400001, atom 0x16b (_NET_WM_STATE), time 20445283, state PropertyNewValue

jfk
  • 45
  • Run evtest as root, pick the device for the mouse MX Master, press thumb button, edit your question with the output you get. If you don't get any output, try other devices. – dirkt Feb 11 '17 at 10:30
  • Do you have any idea? – jfk Feb 14 '17 at 10:51
  • And if you do that in xev while it has keyboard focus, you see nothing? You should see something, it's plainly a CTRL ALT TAB sequence. Did you change the xinput configuration, or something in xorg.conf? Does Xorg.log say it recognizes that device properly? – dirkt Feb 14 '17 at 11:00
  • I didn't change the xinput configuration. Note that the device is recognized through solaar. But see Edit II perhaps... – jfk Feb 14 '17 at 16:34

1 Answers1

0

Using evtest to check the Kernel input evdev devices, and xev to check what events X receives, you can see that it indeed is a Ctrl Alt Tab sequence (the first three events are keypresses, the last three events keyreleases in reverse order).

One can also from the xev log that some application, possibly your window manager, recognizes the sequence: It suppresses the Tab event, and instead starts acting on its own (which is why xev receives a FocusOut). The following PropertyNotify and KeymapNotify events indicate that it's indeed very likely the window manager, and that possibly it is trying to change to a different keyboard layout, or something similar.

This means everything works as intended: Your mouse MX master sends the sequence, the sequence is understood by X, and some program reacts to the sequence.

If the reaction is not what you want, you need to identify the program that reacts to it (close all applications, try again with xev, if the same happens, it's another indication that it's the window manager), find the configuration files of that program, find out where the sequence appears in the configuration files, and change it to whatever you like to happen instead. In any case, reading throughly through the documentation for your window manager will be a good idea, because that's where reactions to sequences should be configured, even if it turns out some other program (xbindkeys etc.) swallows this one.

dirkt
  • 32,309
  • Thanks it's getting clearer. There is an issue between CTR + ALT + TAB and xbindkeys. If I open dconf-editor I have those command and shortcuts (under: org/cinnamon/desktop/keybindings/wm):
    • switch-panel: CTR + ALT + TAB
    • switch-windows: ALT + TAB

    For a reason that I don't understand, and that you probably does, my modification in dconf didn't have any impact on the system. I tried to remove the value of "switch-panel", but it didn't change anything. As soon as I remove this, I'll be free to use the combination in xbindkeys.

    Any idea on how to do that?

    – jfk Feb 15 '17 at 22:58
  • I've fought with Gnome dconf in the past, and lost. :-) (Why can't they just make text files for config, like everyone else? ...) There's some weird issue about what's needed to make changes there, but I've forgotten details. I guess that's a new question, maybe somebody else knows. Also, somebody may know how gwm handles keyboard shortcuts. – dirkt Feb 16 '17 at 08:07