SUMMARY When set to enable it automatically, plasma requires that no pointers are detected by libinput to turn on the tablet mode. In other words, `libinput list-devices` must not show any pointers at all. This is problematic, because it is not possible to remove all pointers in some hardware. For instance, I'm running Arch Linux (upstream, not SteamOS) on a Steam Deck, and one of the pointers detected by `libinput` is a "Valve Software Steam Controller", which is a non-removable part of the hardware. I could work around the issue by creating the following udev rule: ``` # from https://wiki.archlinux.org/title/libinput#Disable_device # FTS3528:00 2808:1015 UNKNOWN (tablet device) ACTION=="add|change", KERNEL=="event[0-9]*", \ ATTRS{id/vendor}=="2808", \ ATTRS{id/product}=="1015", \ ATTRS{name}=="FTS3528:00 2808:1015 UNKNOWN", \ ENV{LIBINPUT_IGNORE_DEVICE}="1" # Valve Software Steam Controller (pointer device) ACTION=="add|change", KERNEL=="event[0-9]*", \ ATTRS{id/vendor}=="28de", \ ATTRS{id/product}=="1205", \ ATTRS{name}=="Valve Software Steam Controller", \ ENV{LIBINPUT_IGNORE_DEVICE}="1" ``` But this workaround is applied system-wide, not only for KDE, meaning if I use the deck on "game mode" (which does not run KDE), the input device will also be disabled. It is already possible to disable pointers using system-settings, but, unfortunately, disabled pointers still prevent plasma to enable tablet mode. The easier fix to this bug is probably to not consider disabled pointers when checking if tablet mode should be enabled. SOFTWARE/OS VERSIONS Linux/KDE Plasma: Arch Linux KDE Plasma Version: 5.27.1 KDE Frameworks Version: 5.103.0 Qt Version: 5.15.8 ADDITIONAL INFORMATION Running on a Steam Deck with upstream Arch Linux
I just was told on the Plasma Matrix channel, there's a TAG that can be used in the udev rule so only Plasma will ignore a pointer device: ``` # FTS3528:00 2808:1015 UNKNOWN (tablet device) ACTION=="add|change", KERNEL=="event[0-9]*", \ ATTRS{id/vendor}=="2808", \ ATTRS{id/product}=="1015", \ ATTRS{name}=="FTS3528:00 2808:1015 UNKNOWN", \ TAG+="kwin-ignore-tablet-mode" # Valve Software Steam Controller (pointer device) ACTION=="add|change", KERNEL=="event[0-9]*", \ ATTRS{id/vendor}=="28de", \ ATTRS{id/product}=="1205", \ ATTRS{name}=="Valve Software Steam Controller", \ TAG+="kwin-ignore-tablet-mode" ``` This is a much better workaround, but still not a fix.