=Description=
Touchscreen enabled devices (tablets and 2-in-1 notebooks) are becoming ever more prevalent in use cases that previously were occupied by traditional notebooks and desktop PCs. Currently no Linux DE (not even Gnome contrary to popular belief) works really well on tablets and 2-in-1s.
Every action a user might do in KDE Plasma should not be any harder than with a keyboard and mouse. The aim should be to reach Windows 10 level of UX on a touchscreen (if not even iOS on an iPad).
=What it will take=
* Properly detect touchscreen devices and offer configuration options in System Settings
* Make touch input a first class citizen in KWin (not just a simulated mouse click).
* React to tablet and convertible specific events like switching rotation or entering tablet mode when the keyboard is flipped (Dell XPS 2-in-1) or disconnected (Surface Book)
* Implement touch navigation (tapping, tap-and-holding, swiping, pinch-zooming, right-click) in all core KDE apps
* Implement a dedicated tablet mode which deactivates the keyboard (if flipped on a 2-in-1) and makes UI elements bigger where necessary
=How we know we succeeded=
Entirely via touchscreen the user should be able to:
* Boot into Plasma and log in
* Customize the Plasma panels and plasmoids
* Download Firefox from Discover
* Suspend their session
* Enter the session again
* Download a PDF file from Firefox
* Preview the file in Okular
* Compose an email in KMail and attach the PDF file via finger drag-and-drop
* Add a calendar event
These steps should be a doable on recent models of:
* Dell XPS 2-in-1
* Microsoft Surface and Surface Book
* Lenovo Yoga
* HP Spectre x360
=Relevant links=
* Right-click on touch: T10783
* [Wayland] Zoom adjustment with a touch screen is slower than with the slider in staus bar: https://bugs.kde.org/show_bug.cgi?id=405945
* There is no possibility to configure my touchscreen: https://bugs.kde.org/show_bug.cgi?id=349631
* Touch screen gestures change takes effect only after restart plasma session: https://bugs.kde.org/show_bug.cgi?id=390713
* [Wayland] When I tap the icon in window decoration using a touch screen, menu opens at the cursor position: https://bugs.kde.org/show_bug.cgi?id=393163
* Input devices (touch screen and keyboard) does not work as expected in sddm if an external monitor is connected to hdmi port during boot: https://bugs.kde.org/show_bug.cgi?id=398678
* Two-finger touchscreen zoom gesture needs final refresh: https://bugs.kde.org/show_bug.cgi?id=390706
* Plasma crashed after trying to resize Kicker submenu on touch screen in Wayland: https://bugs.kde.org/show_bug.cgi?id=398232
* Impossible to log in with virtual keyboard on touch-screen-only machines - wrong keys?: https://bugs.kde.org/show_bug.cgi?id=404992
* Touch Screen kcm: configuration is not saved when you set "Present windows - All desktops" action: https://bugs.kde.org/show_bug.cgi?id=405573
* Hide mouse pointer when using touchscreen on X11: https://bugs.kde.org/show_bug.cgi?id=330006
* Touch activation on touchscreen for Folder View items almost never works (does work for Desktop view and for Folder View with touchpad ) https://bugs.kde.org/show_bug.cgi?id=408049
* Can't access the plasmoids' context menu with a touch screen https://bugs.kde.org/show_bug.cgi?id=368772
* Favorites in Kickoff menu cannot be dragged with touch screen in Wayland https://bugs.kde.org/show_bug.cgi?id=398234
* [Wayland] hamburger menu opens in wrong position when a touchscreen is used https://bugs.kde.org/show_bug.cgi?id=406025
* Two-finger touchscreen zoom gesture should respect finger position https://bugs.kde.org/show_bug.cgi?id=390707
* Hide Touchscreen Settings by default if the display is not touch enabled https://bugs.kde.org/show_bug.cgi?id=397870
* No way to trigger actions on a touchscreen https://bugs.kde.org/show_bug.cgi?id=406435
* Touchscreen integration https://bugs.kde.org/show_bug.cgi?id=399658
* [QT] support right-click https://bugreports.qt.io/browse/QTBUG-73949
=I am willing to put work into this=
* Martin Sotirov (@martinsotirov) – submitting patches, testing on a touchscreen
* Nate Graham (@ngraham) – submitting patches, testing on a touchscreen
* Niccolo Venerandi (@niccolove) – submitting patches, testing on a touchscreen
* @fabianr - improving HIG for touch UI and UX
* David Strobach (@strobach) – submitting patches, testing on a touchscreen
* Aleix Pol (@apol) - patches, testing, etc
=I am interested=