I have a Logitech MX Master. By default, the thumb button (Button 5) acts as a "gesture" button, grabbing all mouse movement events and deciding which action to take upon button release. For whatever reason, under Linux, this results in a press-release sequence of Ctrl+Alt+Tab if the mouse isn't moved before releasing, and no keys if the mouse is moved before releasing.
I ran ratbag-command info /dev/input/event0
initially, which read/wrote the following data (as reported by strace):
strace
open("/dev/hidraw1", O_RDWR) = 3
ioctl(3, HIDIOCGRAWINFO, 0x7ffe6d093480) = 0
ioctl(3, HIDIOCGRDESCSIZE or HIDIOCGVERSION, 0x7ffe6d09240c) = 0
ioctl(3, HIDIOCGRDESC, 0x7ffe6d092410) = 0
ioctl(3, HIDIOCGRDESCSIZE or HIDIOCGVERSION, 0x7ffe6d09240c) = 0
ioctl(3, HIDIOCGRDESC, 0x7ffe6d092410) = 0
write(3, "\21\377\0\30\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\30\4\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\1\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\10\36\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\0\1\0\1\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\0\3\0\2\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\35K\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\6\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\30\6`\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\30\24\0\1\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\t\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\33\4\0\3\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\"\1\0\1\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\v\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30!\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\f\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30!\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\r\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30!!\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30e\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\0\301\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\30\23`\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\21\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\0300`\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\22\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\30\220`\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\23\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\30\221`\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\24\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\30\241`\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\25\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\30\300`\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\26\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\35\363`\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\27\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\36\0@\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\30\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\36\260`\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\31\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\30\3`\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\32\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\30a`\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\33\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\220\0`\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\34\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\222\0`\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\35\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\222@`\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\1\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\0\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\2\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\35K\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\6\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\6\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\6\0102\24\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\30\6\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\7`\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\30\24\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\10\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\33\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\t\0\3\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t\10\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t\30\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t\30\0P\0008\1\0\1\1\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t(\0P\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t(\0P\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t\30\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t\30\0Q\0009\1\0\1\1\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t(\0Q\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t(\0Q\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t\30\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t\30\0R\0:1\0\3\7\1\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t(\0R\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t(\0R\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t\30\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t\30\0S\0<1\0\2\3\1\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t(\0S\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t(\0S\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t\30\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t\30\0V\0>1\0\2\3\1\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t(\0V\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t(\0V\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t\30\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t\30\0\303\0\2511\0\3\7\1\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t(\0\303\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t(\0\303\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t\30\6\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t\30\0\304\0\2351\0\3\7\1\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t(\0\304\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t(\0\304\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t\30\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t\30\0\327\0\264\240\0\4\0\3\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t(\0\327\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t(\0\327\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\"\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\n\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\n\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\n\10\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\n\30\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\n\30\0\1\220\340\310\6@\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\n(\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\n(\0\3\350\3\350\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10!\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\v\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10!\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\f\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10!!\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\r\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10e\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\0\301\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\30\23\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\20`\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\0300\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\21`\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\30\220\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\22`\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\30\221\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\23`\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\30\241\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\24`\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\30\300\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\25`\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\35\363\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\26`\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\36\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\27@\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\36\260\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\30`\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\30\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\31`\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\30a\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\32`\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\220\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\33`\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\222\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\34`\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\222@\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\35`\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\n\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\n\10\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\n\30\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\n\30\0\1\220\340\310\6@\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\n(\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\n(\0\3\350\3\350\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t\10\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t\30\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t\30\0P\0008\1\0\1\1\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t(\0P\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t(\0P\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t\30\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t\30\0Q\0009\1\0\1\1\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t(\0Q\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t(\0Q\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t\30\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t\30\0R\0:1\0\3\7\1\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t(\0R\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t(\0R\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t\30\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t\30\0S\0<1\0\2\3\1\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t(\0S\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t(\0S\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t\30\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t\30\0V\0>1\0\2\3\1\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t(\0V\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t(\0V\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t\30\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t\30\0\303\0\2511\0\3\7\1\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t(\0\303\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t(\0\303\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t\30\6\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t\30\0\304\0\2351\0\3\7\1\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t(\0\304\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t(\0\304\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t\30\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t\30\0\327\0\264\240\0\4\0\3\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t(\0\327\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t(\0\327\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
and gave the output:
Device 'Logitech MX Master'
Capabilities: res btn-key
Number of buttons: 8
Profiles supported: 1
Profile 0 (active)
Resolutions:
0: 1000dpi @ 0Hz (active)
Button: 0 type left is mapped to 'button 1'
Button: 1 type right is mapped to 'button 2'
Button: 2 type middle is mapped to 'button 3'
Button: 3 type side (backward) is mapped to 'button 4'
Button: 4 type extra (forward) is mapped to 'button 5'
Button: 5 type unknown is mapped to 'none'
Button: 6 type wheel ratchet mode switch is mapped to 'UNKNOWN'
Button: 7 type unknown is mapped to 'none'
Then I ran ratbag-command button 5 action set button 1
, which returned 0.
Afterward, the thumb button doesn't do anything at all (neither interferes with mouse movement reporting like previously, nor emits any events as shown by libinput-debug-events
upon press or release). I can't find any configuration that results in the thumb button actually performing user-assigned actions.
The output of running info again shows button 5 as being mapped to 'button 1'; the data from the mouse, as per strace, is below:
strace
open("/dev/hidraw1", O_RDWR) = 3
ioctl(3, HIDIOCGRAWINFO, 0x7ffee833ab60) = 0
ioctl(3, HIDIOCGRDESCSIZE or HIDIOCGVERSION, 0x7ffee8339aec) = 0
ioctl(3, HIDIOCGRDESC, 0x7ffee8339af0) = 0
ioctl(3, HIDIOCGRDESCSIZE or HIDIOCGVERSION, 0x7ffee8339aec) = 0
ioctl(3, HIDIOCGRDESC, 0x7ffee8339af0) = 0
write(3, "\21\377\0\30\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 0 (Timeout)
read(3, "\21\1\0\30\4\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\1\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\10\36\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\0\1\0\1\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\0\3\0\2\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\35K\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\6\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\30\6`\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\30\24\0\1\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\t\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\33\4\0\3\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\"\1\0\1\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\v\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30!\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\f\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30!\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\r\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30!!\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30e\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\0\301\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\30\23`\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\21\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\0300`\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\22\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\30\220`\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\23\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\30\221`\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\24\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\30\241`\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\25\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\30\300`\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\26\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\35\363`\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\27\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\36\0@\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\30\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\36\260`\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\31\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\30\3`\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\32\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\30a`\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\33\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\220\0`\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\34\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\222\0`\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\1\30\35\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\1\30\222@`\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\1\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\0\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\2\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\0\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\35K\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\0 \0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\6\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\6\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\6\0102\24\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\30\6\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\7`\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\30\24\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\10\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\33\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\t\0\3\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t\10\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t\30\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t\30\0P\0008\1\0\1\1\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t(\0P\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t(\0P\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t\30\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t\30\0Q\0009\1\0\1\1\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t(\0Q\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t(\0Q\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t\30\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t\30\0R\0:1\0\3\7\1\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t(\0R\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t(\0R\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t\30\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t\30\0S\0<1\0\2\3\1\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t(\0S\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t(\0S\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t\30\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t\30\0V\0>1\0\2\3\1\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t(\0V\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t(\0V\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t\30\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t\30\0\303\0\2511\0\3\7\1\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t(\0\303\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t(\0\303\1\0P\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t\30\6\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t\30\0\304\0\2351\0\3\7\1\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t(\0\304\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t(\0\304\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t\30\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t\30\0\327\0\264\240\0\4\0\3\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t(\0\327\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t(\0\327\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\"\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\n\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\n\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\n\10\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\n\30\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\n\30\0\1\220\340\310\6@\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\n(\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\n(\0\3\350\3\350\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10!\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\v\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10!\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\f\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10!!\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\r\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10e\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\16\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\0\301\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\17\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\30\23\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\20`\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\0300\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\21`\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\30\220\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\22`\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\30\221\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\23`\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\30\241\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\24`\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\30\300\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\25`\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\35\363\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\26`\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\36\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\27@\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\36\260\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\30`\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\30\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\31`\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\30a\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\32`\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\220\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\33`\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\222\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\34`\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\0\10\222@\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\0\10\35`\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\n\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\n\10\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\n\30\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\n\30\0\1\220\340\310\6@\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\n(\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\n(\0\3\350\3\350\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t\10\10\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t\30\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t\30\0P\0008\1\0\1\1\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t(\0P\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t(\0P\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t\30\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t\30\0Q\0009\1\0\1\1\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t(\0Q\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t(\0Q\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t\30\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t\30\0R\0:1\0\3\7\1\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t(\0R\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t(\0R\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t\30\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\2\0\0\2\300\377\0\0", 20) = 8
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t\30\0S\0<1\0\2\3\1\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t(\0S\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\2\0\0\fp\376\0\0", 20) = 8
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t(\0S\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t\30\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\2\0\0\25`\375\0\0", 20) = 8
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t\30\0V\0>1\0\2\3\1\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t(\0V\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\2\0\0\16\360\375\0\0", 20) = 8
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t(\0V\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t\30\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\2\0\0\4\360\376\0\0", 20) = 8
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t\30\0\303\0\2511\0\3\7\1\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t(\0\303\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\2\0\0\363\37\0\0\0", 20) = 8
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t(\0\303\1\0P\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t\30\6\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\2\0\0\357\177\0\0\0", 20) = 8
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t\30\0\304\0\2351\0\3\7\1\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t(\0\304\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\2\0\0\364/\0\0\0", 20) = 8
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t(\0\304\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t\30\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\2\0\0\374\37\0\0\0", 20) = 8
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t\30\0\327\0\264\240\0\4\0\3\0\0\0\0\0\0\0", 20) = 20
write(3, "\21\377\t(\0\327\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
poll([{fd=3, events=POLLIN}], 1, 1000) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\21\1\t(\0\327\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 20) = 20
I also seem unable to get the output back to what it was originally; is there any way to clear button actions or assign "none"? I don't know whether it's reasonable to expect this to reset the thumb behavior to what it does by default, but it's a reasonable configuration someone might want even if not.
In addition, I have no idea what button 7 as reported by ratbag-command info
might be, and it would be nice to rename the "UNKNOWN" default action of the wheel-ratchet-mode-switch button to something like "toggle ratchet".