Disable the switch tablet toggle event
Summary
I'm running a HP envy x360 15-bpxxx which is a convertible from HP. I used the convertible function quite heavily for my master's degree. However, don't need it anymore. Since 3-4 weeks or so I had issues with the keyboard on Ubuntu and Windows. I wanted to refurbish the OS anyway and get rid of windows, so I installed Arch a week ago, but the problem persisted.
╰─ xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ MOSART Semi. 2.4G Keyboard Mouse id=11 [slave pointer (2)]
⎜ ↳ MOSART Semi. 2.4G Keyboard Mouse Consumer Control id=12 [slave pointer (2)]
⎜ ↳ SEM USB Keyboard Consumer Control id=15 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=24 [slave pointer (2)]
⎜ ↳ ELAN0732:00 04F3:2538 id=19 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Video Bus id=8 [slave keyboard (3)]
↳ Power Button id=9 [slave keyboard (3)]
↳ MOSART Semi. 2.4G Keyboard Mouse id=10 [slave keyboard (3)]
↳ MOSART Semi. 2.4G Keyboard Mouse System Control id=13 [slave keyboard (3)]
↳ SEM USB Keyboard id=14 [slave keyboard (3)]
↳ SEM USB Keyboard System Control id=16 [slave keyboard (3)]
↳ HP Wide Vision FHD Camera: HP W id=17 [slave keyboard (3)]
↳ Intel Virtual Button driver id=21 [slave keyboard (3)]
↳ Intel Virtual Button driver id=22 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=23 [slave keyboard (3)]
↳ HP Wireless hotkeys id=25 [slave keyboard (3)]
↳ HP WMI hotkeys id=26 [slave keyboard (3)]
↳ MOSART Semi. 2.4G Keyboard Mouse Consumer Control id=27 [slave keyboard (3)]
↳ SEM USB Keyboard Consumer Control id=28 [slave keyboard (3)]
↳ ELAN0732:00 04F3:2538 id=20 [slave keyboard (3)]
↳ HP Wide Vision FHD Camera: HP I id=18 [slave keyboard (3)]
was my old output and I had troubles with id 21 and id 22, because they are sending switch tablet mode events randomly, looked like this:
╰─ sudo libinput debug-events
-event2 DEVICE_ADDED Power Button seat0 default group1 cap:k
-event22 DEVICE_ADDED Video Bus seat0 default group2 cap:k
-event23 DEVICE_ADDED Video Bus seat0 default group2 cap:k
-event1 DEVICE_ADDED Power Button seat0 default group3 cap:k
-event0 DEVICE_ADDED Lid Switch seat0 default group4 cap:S
-event4 DEVICE_ADDED MOSART Semi. 2.4G Keyboard Mouse seat0 default group5 cap:k
-event5 DEVICE_ADDED MOSART Semi. 2.4G Keyboard Mouse seat0 default group5 cap:p left scroll-nat scroll-button
-event6 DEVICE_ADDED MOSART Semi. 2.4G Keyboard Mouse Consumer Control seat0 default group5 cap:kp scroll-nat
-event7 DEVICE_ADDED MOSART Semi. 2.4G Keyboard Mouse System Control seat0 default group5 cap:k
-event9 DEVICE_ADDED SEM USB Keyboard seat0 default group6 cap:k
-event10 DEVICE_ADDED SEM USB Keyboard Consumer Control seat0 default group6 cap:kp scroll-nat
-event11 DEVICE_ADDED SEM USB Keyboard System Control seat0 default group6 cap:k
-event20 DEVICE_ADDED HP Wide Vision FHD Camera: HP W seat0 default group7 cap:k
-event21 DEVICE_ADDED HP Wide Vision FHD Camera: HP I seat0 default group7 cap:k
-event15 DEVICE_ADDED ELAN0732:00 04F3:2538 seat0 default group8 cap:t size 332x188mm ntouches 10 calib
-event18 DEVICE_ADDED ELAN0732:00 04F3:2538 seat0 default group8 cap:T size 341x193mm calib
-event13 DEVICE_ADDED Intel Virtual Button driver seat0 default group9 cap:kS
event13 SWITCH_TOGGLE +0.000s switch tablet-mode state 1
-event25 DEVICE_ADDED HDA Intel PCH Mic seat0 default group10 cap:
-event26 DEVICE_ADDED HDA Intel PCH Headphone seat0 default group10 cap:
-event27 DEVICE_ADDED HDA Intel PCH HDMI/DP,pcm=3 seat0 default group10 cap:
-event28 DEVICE_ADDED HDA Intel PCH HDMI/DP,pcm=7 seat0 default group10 cap:
-event29 DEVICE_ADDED HDA Intel PCH HDMI/DP,pcm=8 seat0 default group10 cap:
-event30 DEVICE_ADDED HDA Intel PCH HDMI/DP,pcm=9 seat0 default group10 cap:
-event31 DEVICE_ADDED HDA Intel PCH HDMI/DP,pcm=10 seat0 default group10 cap:
-event14 DEVICE_ADDED Intel Virtual Button driver seat0 default group11 cap:kS
-event3 DEVICE_ADDED AT Translated Set 2 keyboard seat0 default group12 cap:k
-event24 DEVICE_ADDED SynPS/2 Synaptics TouchPad seat0 default group13 cap:pg size 117x57mm tap(dl off) left scroll-nat scroll-2fg-edge click-buttonareas-clickfinger dwt-on
-event12 DEVICE_ADDED HP Wireless hotkeys seat0 default group14 cap:k
-event256 DEVICE_ADDED HP WMI hotkeys seat0 default group15 cap:k
-event13 SWITCH_TOGGLE +1.927s switch tablet-mode state 0
event13 SWITCH_TOGGLE +2.727s switch tablet-mode state 1
event13 SWITCH_TOGGLE +4.027s switch tablet-mode state 0
event13 SWITCH_TOGGLE +5.424s switch tablet-mode state 1
event13 SWITCH_TOGGLE +6.541s switch tablet-mode state 0
event13 SWITCH_TOGGLE +7.791s switch tablet-mode state 1
The toggles occur almost randomly and turn off my keyboard. I'm aware that this isn't the fault of libinput. However I don't get why libinput is still sending events when I disable those devices in xinput. Anyway, the next thing I tried is to write udev and xorg.conf rules, which look like this
KERNEL=="event13", SUBSYSTEM=="input", ENV{LIBINPUT_IGNORE_DEVICE}=="1"
KERNEL=="event14", SUBSYSTEM=="input", ENV{LIBINPUT_IGNORE_DEVICE}=="1"
and
Section "InputClass"
Identifier "no need for tablet switch"
MatchProduct "Intel Virtual Button driver"
Option "Ignore" "on"
EndSection
Feature details
All I want to do is, to disable those switch tablet mode events. I'm okay if the sensors/hinges whatever are broken, but I just want to use the keyboard normally. The keyboard can't be the error, since in the BIOS everything works as it should and I can tilt the machine as I wish.
I'm not sure what of the above rules works, or if even something works. However, xinput and libinput are not listing the devices anymore:
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ MOSART Semi. 2.4G Keyboard Mouse id=11 [slave pointer (2)]
⎜ ↳ MOSART Semi. 2.4G Keyboard Mouse Consumer Control id=12 [slave pointer (2)]
⎜ ↳ ELAN0732:00 04F3:2538 id=16 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=19 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Video Bus id=8 [slave keyboard (3)]
↳ Power Button id=9 [slave keyboard (3)]
↳ MOSART Semi. 2.4G Keyboard Mouse id=10 [slave keyboard (3)]
↳ MOSART Semi. 2.4G Keyboard Mouse System Control id=13 [slave keyboard (3)]
↳ HP Wide Vision FHD Camera: HP W id=14 [slave keyboard (3)]
↳ HP Wide Vision FHD Camera: HP I id=15 [slave keyboard (3)]
↳ ELAN0732:00 04F3:2538 id=17 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=18 [slave keyboard (3)]
↳ HP Wireless hotkeys id=20 [slave keyboard (3)]
↳ HP WMI hotkeys id=21 [slave keyboard (3)]
↳ MOSART Semi. 2.4G Keyboard Mouse Consumer Control id=22 [slave keyboard (3)]
╰─ sudo libinput debug-events
-event2 DEVICE_ADDED Power Button seat0 default group1 cap:k
-event19 DEVICE_ADDED Video Bus seat0 default group2 cap:k
-event20 DEVICE_ADDED Video Bus seat0 default group2 cap:k
-event1 DEVICE_ADDED Power Button seat0 default group3 cap:k
-event0 DEVICE_ADDED Lid Switch seat0 default group4 cap:S
-event4 DEVICE_ADDED MOSART Semi. 2.4G Keyboard Mouse seat0 default group5 cap:k
-event5 DEVICE_ADDED MOSART Semi. 2.4G Keyboard Mouse seat0 default group5 cap:p left scroll-nat scroll-button
-event6 DEVICE_ADDED MOSART Semi. 2.4G Keyboard Mouse Consumer Control seat0 default group5 cap:kp scroll-nat
-event7 DEVICE_ADDED MOSART Semi. 2.4G Keyboard Mouse System Control seat0 default group5 cap:k
-event17 DEVICE_ADDED HP Wide Vision FHD Camera: HP W seat0 default group6 cap:k
-event12 DEVICE_ADDED HP Wide Vision FHD Camera: HP I seat0 default group6 cap:k
-event13 DEVICE_ADDED ELAN0732:00 04F3:2538 seat0 default group7 cap:t size 332x188mm ntouches 10 calib
-event18 DEVICE_ADDED ELAN0732:00 04F3:2538 seat0 default group7 cap:T size 341x193mm calib
-event22 DEVICE_ADDED HDA Intel PCH Mic seat0 default group8 cap:
-event23 DEVICE_ADDED HDA Intel PCH Headphone seat0 default group8 cap:
-event24 DEVICE_ADDED HDA Intel PCH HDMI/DP,pcm=3 seat0 default group8 cap:
-event25 DEVICE_ADDED HDA Intel PCH HDMI/DP,pcm=7 seat0 default group8 cap:
-event26 DEVICE_ADDED HDA Intel PCH HDMI/DP,pcm=8 seat0 default group8 cap:
-event27 DEVICE_ADDED HDA Intel PCH HDMI/DP,pcm=9 seat0 default group8 cap:
-event28 DEVICE_ADDED HDA Intel PCH HDMI/DP,pcm=10 seat0 default group8 cap:
-event3 DEVICE_ADDED AT Translated Set 2 keyboard seat0 default group9 cap:k
-event21 DEVICE_ADDED SynPS/2 Synaptics TouchPad seat0 default group10 cap:pg size 117x57mm tap(dl off) left scroll-nat scroll-2fg-edge click-buttonareas-clickfinger dwt-on
-event9 DEVICE_ADDED HP Wireless hotkeys seat0 default group11 cap:k
-event29 DEVICE_ADDED HP WMI hotkeys seat0 default group12 cap:k
Libinput doesn't show now the switch toggles anymore, but my keyboard still turns off randomly. I'm a true newbie to writing rules whatsoever in linux. So, I'm very sorry if I don't see something obvious, but I'm at my wit's end and just want to use my laptop to finish my thesis.
Affected Hardware
Convertible Laptops from any crap vendor that's out there
If someone read this thread, then: thank you in advance for spending time reading this