We care about your Input
Open, Needs TriagePublic

Subscribers
Tokens
"Love" token, awarded by kamathraghavendra."Like" token, awarded by aakarshmj."Baby Tequila" token, awarded by aronkvh."Love" token, awarded by lianqun."Like" token, awarded by rokejulianlockhart."Love" token, awarded by muelsyse."Love" token, awarded by Septatrix."Love" token, awarded by ngraham."Love" token, awarded by akselmo."Love" token, awarded by alexde.
Assigned To
Authored By
jpetso, Jun 26 2024

Description

This proposal was elected by the community as one of the KDE Goals from 2024-2026. Coordinate further progress on our wiki page and join the discussion in #kde-input:kde.org (our Matrix room).

Description

KDE has a large and diverse user base. The input stack affects every user, each with different requirements. For example, the artist community relies on support for drawing tablets. Users from many different countries, speaking many different languages, use writing systems that require input method (IME) support. Users with accessibility needs rely on the input stack to be a11y friendly. Users with different devices - desktop PC, laptops, 2-in-1s, tablets - all have unique requirements.

Plasma and the KDE/Qt ecosystem already provide robust support for input devices and customization. Recent improvements include support for remote control and Input Leap on Wayland, modifier-only shortcuts and key bindings, and keyboard RGB backlights syncing with Plasma’s accent color. This goal aims to identify and close the last significant gaps, taking the input experience from decent to universally delightful. From developers with fancy shortcuts to gamers with fancy mice, every voice should be heard because we care about your INPUT!

What it will take

General approach

  1. Organize missing features, bugs, wishlist items, GitLab issues and ongoing work in a Wiki page, similar to the Wayland showstopper page was done.
  2. Research topics that might not have been fully explored. Blog about the findings to educate users and developers, spur discussions, and inspire contributions from the wider community.
  3. Reach out to people with special hardware (like tablets, gaming mice etc…) so patches can be tested on a variety of hardware.
  4. Reach out to interested developers to coordinate work commitments. Stay on top of submitted MRs to make sure they get reviewed in a timely fashion. Get improvements merged.

Listed below are some areas that will need special attention. More may be identified over time. In addition to new functionality, this goal also encompasses continuous work on related UX improvements and bug fixes.

Drawing tablet

Learn about and implement the features that artists need in order for the Wayland tablet stack to catch up to the X11 stack and surpass it. We have some excellent starting points:

Mouse and Touchpad

  1. Implement missing features exposed by libinput, like custom acceleration profiles and disabling the touchpad when a mouse is plugged in.
  2. Allow customization of 3-finger and 4-finger touchpad gestures, including pinch and rotate gestures.
  3. Implement relevant touchpad gestures into apps that could benefit from them but currently lack them.
  4. Implement stroke actions a.k.a. mouse gestures for Wayland, providing a full replacement for mouse gesture support in KHotKeys which was only available for X11 and discontinued in Plasma 6.
  5. Allow setting per-device key bindings for mouse devices, as the placement of extra buttons can differ between models.

Keyboard

  1. Make it easy to re-bind keyboard keys globally (e.g "Ugh my laptop has this dumb Copilot key, how do I make it a Ctrl key?").
  2. Make keyboard-only navigation work well across apps and desktop. Also relevant: navigation with game controller inputs (see below).
  3. Unify standard shortcuts across Qt Widgets and Qt Quick apps. See Felix Ernst's blog post on F10 menu access for an example and why this is important.

Virtual Keyboard

In recent years, KDE has relied heavily on the Maliit virtual keyboard. It's time to reevaluate. Some discussion has already started here: https://mail.kde.org/pipermail/plasma-devel/2024-June/123435.html

  1. Bring this proof of concept to production readiness and include it with Plasma by default.
  2. Make sure that it is fully accessible also by mouse input, by changing the virtual keyboard applet from being a toggle to switching between three states (disabled/touch only/always enabled).

Better IME support

David Edmundson in 2023 published a blog post about the state of input methods on Wayland, as well as ideas for new input methods such as:

  • Speech to text
  • Selecting diacritic variations of a given letter
  • Quick emoji input
  • Language translation
  • Convenient access to clipboard contents

Other promising ideas:

  • AI assistants are available nowadays for spelling and phrasing improvements, as well as auto-completion of texts
  • Instant handwriting digitization when writing with a stylus on a 2-in-1 laptop
  • Use mouse or touchpad to draw non-alphabetic characters (perhaps sharing stroke recognition code from above)
  • Expand configurable strings into pre-defined snippets

The sky's the limit. In order to bring this to end users, we want to:

  1. Support running multiple IMEs at the same time.
  2. Work on packaging, integration and general polish of some of these IMEs.
  3. Participate in relevant Wayland protocol discussions.
  4. Ensure that KDE provides all infrastructure that allows CJK input methods to work flawlessly on KWin/Wayland and Plasma.

Game Controllers as primary input device

Plasma ships as "Desktop Mode" of SteamOS. However, navigating the desktop and KDE's apps without the Steam Deck's trackpads is not currently a pleasant experience. Improving support for game controller input will strengthen KDE's position as the leading free desktop environment for gaming. Related KDE software such as Plasma Bigscreen or apps for mobile devices can also benefit from improvements in this area.

  1. Handle game controllers in KWin directly, implementing mouse emulation and preventing sleep when controller input is recognized. Implement and contribute to related Wayland protocols.
  2. Work with Plasma and app developers on navigation with a limited set of inputs. Users should be able to navigate the desktop and most consumer-facing software with arrow keys, a Back button, an A (enter/select) button and a menu button. Components and the Breeze theme should offer clear visual cues about focus and possible actions.
  3. Ensure that users can authenticate with controller input to KDE's preferred login manager (currently SDDM) and lock screen (KScreenLocker).

Modern games switch from keyboard/mouse to "controller mode" as soon as controller input is detected. We can take a similar approach if required.

a11y

Some of the above focus areas are directly relevant to accessibility concerns, including keyboard-only navigation and input methods, in particular speech to text.

Matt Campbell through GNOME and STF has been pushing for a new Wayland-native accessibility stack. While not purely input-related, KDE needs to stay on top of these developments and ensure that screen readers (notably Orca) work well with KDE software regardless of whether users access it via mouse, keyboard, touchscreen, tablet or game controller.

App-specific work

  • Provide a drawing feature in Okular to add a handwritten signature to a document.
  • Extend Keychain to provide an IME for auto-filling passwords in desktop apps.

How we know we succeeded

When we're happy enough with the input stack to move on to other undertakings instead.

  • Drawing tablet: The artist community is happy with the state of drawing tablet capabilities under KWin/Wayland.
  • Mouse and touchpad: New user reports of missing or unintuitive functionality become exceedingly rare.
  • Virtual Keyboard: Plasma ships with a virtual keyboard that can fully replace keyboards for users with only mouse and/or touchscreen input.
  • Better IME support: At least one new input method (other than the virtual keyboard) ships with Plasma and/or is available on Flathub.
  • Game Controllers: A user can intuitively proceed from boot to login manager, desktop and game launcher into a game of their choice, and switch between game & desktop using the controller's menu button.

Relevant links

  1. David Revoy on Plasma/Wayland for artists: https://www.davidrevoy.com/article1030/debian-12-kde-plasma-2024-install-guide
  2. Drawing tablets on KDE Wayland: https://artonwayland.redstrate.com/
  3. libinput developer documentation: https://wayland.freedesktop.org/libinput/doc/latest/development.html
  4. KWin issue on touch gestures: https://invent.kde.org/plasma/kwin/-/issues/59
  5. KWin issue on mouse gestures: https://invent.kde.org/plasma/kwin/-/issues/216
  6. Plasma issue on a single unified Mouse & Touchpad KCM: https://invent.kde.org/plasma/plasma-desktop/-/issues/117
  7. Virtual keyboard proof of concept based on the Qt Virtual Keyboard API: https://mail.kde.org/pipermail/plasma-devel/2024-June/123435.html
  8. David Edmundson on ideas for Wayland input methods: https://blog.davidedmundson.co.uk/blog/new-ideas-using-wayland-input-methods/ (incl. input method playground)
  9. Espanso text expander: https://espanso.org/ (also see @wstyler's more detailed text snippet expansion goal proposal for KDE)
  10. Long-standing bug about preventing system sleep while gaming: https://bugs.kde.org/show_bug.cgi?id=328987
  11. Draft game-controller-v1 Wayland protocol: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/244
  12. Draft inputfd Wayland protocol (direct input device access via file handles): https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/110
  13. Matt Campbell on the new accessibility architecture for Wayland: https://blogs.gnome.org/a11y/2024/06/18/update-on-newton-the-wayland-native-accessibility-project/
  14. Felix Ernst on making F10 for menu access work everywhere: https://wordsmith.social/felix-ernst/f10-for-accessibility-in-kf6
  15. Eike Hein's talk on Input Methods and open issues in Plasma: https://youtu.be/wE0KDabPfsQ?si=fILM48osyediy_l

Champions

The team is:

I am willing to put work into this

I am interested

There are a very large number of changes, so older changes are hidden. Show Older Changes

I would definitely be available for testing.

Background: We currently use https://apps.xontab.com/VirtualKeyboard/ in chrome but due to the manifest changes this will not be possible soon (and it has already been removed from the WebStore and requires setting enterprise policies). GNOME has a pretty OSK but is too heavyweight (and GNOME-Kiosk does not have an OSK). KWin might be a good alternative for us and having the modern OSK would be ideal. Cage (wlroots based) does not support OSKs yet (https://github.com/cage-kiosk/cage/issues/95), weston does not support OSKs when running in kiosk mode (https://gitlab.freedesktop.org/wayland/weston/-/issues/918).

The devices are embedded RPis with a touchscreen.

jpetso updated the task description. (Show Details)Jun 27 2024, 6:25 AM

Make sure that it is fully accessible also by mouse input, unlike Maliit which only focused on touchscreen inputs

That's not a Maliit thing, KWin decides when to show or not show the virtual keyboard; a new virtual keyboard will be affceted by the same problem. Fixing that really just needs the virtual keyboard applet to change from being a toggle to switching between three states (disabled/touch only/always enabled).

  1. Work on packaging, integration and general polish of some of these IMEs.

There's a very important step zero here: Support running multiple IMEs at the same time

repinc added a subscriber: repinc.Jun 27 2024, 8:55 AM
ngraham updated the task description. (Show Details)Jun 27 2024, 1:38 PM
ngraham added a subscriber: ngraham.
duha updated the task description. (Show Details)Jun 27 2024, 6:20 PM
duha added a comment.Jun 27 2024, 6:26 PM

Make sure that it is fully accessible also by mouse input, unlike Maliit which only focused on touchscreen inputs

That's not a Maliit thing, KWin decides when to show or not show the virtual keyboard; a new virtual keyboard will be affceted by the same problem. Fixing that really just needs the virtual keyboard applet to change from being a toggle to switching between three states (disabled/touch only/always enabled).

Thanks, I corrected it.

  1. Work on packaging, integration and general polish of some of these IMEs.

There's a very important step zero here: Support running multiple IMEs at the same time

Added this point.

Great stuff. I like how this ties everything together into an overarching theme. Well done.

Some more input-related ideas:

  • Make it easy to re-bind keyboard keys globally (e.g "Ugh my laptop has this dumb Copilot key, how do I make it a Ctrl key?").
  • Implement relevant touchpad gestures into apps that could benefit from them but currently lack them.
  • Use your touchpad to draw non-alphabetic characters or add a handwritten signature to a document in Okular
  • Instant handwriting digitization when writing with a stylus on a 2-in-1 laptop
davidedmundson added a subscriber: davidedmundson.

Definitely +1 for more touchpad gestures. Especially the lack of pinch to zoom in Okular has annoyed me since ages (and because I used it today: also in Skanlite).

apol updated the task description. (Show Details)Jun 27 2024, 11:33 PM
apol added a subscriber: apol.
jpetso updated the task description. (Show Details)Jun 28 2024, 6:42 AM
jpetso added a subscriber: wstyler.

Weaved @ngraham's suggestions into the proposal as well as an extremely condensed version of the more detailed text snippet expansion goal proposal from T17406.

alexde added a subscriber: alexde.Jun 30 2024, 3:21 PM
jpetso updated the task description. (Show Details)Jul 1 2024, 12:33 PM
jpetso updated the task description. (Show Details)
jpetso added a subscriber: redstrate.

I was really confused at first thinking this meant "input" as in "feedback" but reading it more I really like this proposal (and totally not biased because my work is mentioned by name :))

Another angle worth mentioning/expanding upon I think is keyboard-only navigation which I've been doing a lot of smaller fixes for it last year. Some people maybe prefer that or that's literally their only option for a11y reasons. And there's lots, and I mean lots of low-hanging fruit across all of our applications from fixing problems in our Kirigami applications or bigger more encompassing tasks like Felix's amazing F10 shortcut in Dolphin. This may tie into other goals like game controller navigation too, maybe - depending on how we approach that.

You can also add me to the "willing to work on this" if you'd like as well

duha updated the task description. (Show Details)Jul 4 2024, 6:44 PM
duha updated the task description. (Show Details)Jul 4 2024, 7:10 PM
duha updated the task description. (Show Details)Jul 4 2024, 7:46 PM
jpetso updated the task description. (Show Details)Jul 5 2024, 9:12 AM
akselmo updated the task description. (Show Details)Jul 6 2024, 5:51 PM
akselmo added a subscriber: akselmo.

I am interested in helping, I have multiple different input devices (and some of them are in Finnish language too) around the apartment so I can test out things and work on any bugs :)

redstrate updated the task description. (Show Details)Jul 6 2024, 6:05 PM
nhays added a subscriber: nhays.Jul 24 2024, 6:37 PM

I use KeepassXC to store my keys, but the only way to use it in applications other than a browser is to manually copy the user, password and TOTP, where it is realy anoying.
This week when I started to use KeePassDX on android I just changed the autofill service and it worked like charm.

I would like to see a lot of good things such that implemented in KDE Plasma.

frdbr added a subscriber: frdbr.Jul 29 2024, 3:52 PM
fanzhuyifan updated the task description. (Show Details)Aug 9 2024, 5:29 PM
fanzhuyifan added a subscriber: fanzhuyifan.

Would you consider some other input devices for video editing or for streaming? We also have a very peculiar use-case scenario where we have 2 monitors and 2 tablets (one with monitor) that I can eventually share.

duha added a comment.Aug 11 2024, 12:29 AM

Would you consider some other input devices for video editing or for streaming? We also have a very peculiar use-case scenario where we have 2 monitors and 2 tablets (one with monitor) that I can eventually share.

In our proposal all input devices are considered :). Our approach is only doing broad overview, not listing every bug & feature request.
But we do care about issues not specifically mentioned in the proposal aswell.

See General approach point 1 & 2.

  1. Organize missing features, bugs, wishlist items, GitLab issues and ongoing work in a Wiki page, similar to the Wayland showstopper page was done.
  2. Research topics that might not have been fully explored. Blog about the findings to educate users and developers, spur discussions, and inspire contributions from the wider community.

If you want to have a specific section about your suggestions, you need to explain a little bit more what is actually not working/missing.

frdbr added a comment.Aug 11 2024, 7:04 PM
In T17433#309826, @duha wrote:

In our proposal all input devices are considered :). Our approach is only doing broad overview, not listing every bug & feature request.
But we do care about issues not specifically mentioned in the proposal aswell.

See General approach point 1 & 2.

  1. Organize missing features, bugs, wishlist items, GitLab issues and ongoing work in a Wiki page, similar to the Wayland showstopper page was done.
  2. Research topics that might not have been fully explored. Blog about the findings to educate users and developers, spur discussions, and inspire contributions from the wider community.

    If you want to have a specific section about your suggestions, you need to explain a little bit more what is actually not working/missing.

I'll gather some input from the Kdenlive community about some of the gear and write it down. As for the use-case at our studio I'll open an issue soon detailing the problems we are having.

frdbr added a comment.Aug 12 2024, 7:00 PM

Hello,

Please note that the deadline is on Wednesday, just two days away, so you still have a bit of time to put the finishing touches on your proposal. Take a moment to polish, adjust, and refine your ideas to ensure they’re ready for voting.

If you need any help or have questions, don’t hesitate to reach out.

zamundaaa updated the task description. (Show Details)Aug 12 2024, 9:14 PM
Septatrix updated the task description. (Show Details)Aug 12 2024, 10:58 PM
jpetso updated the task description. (Show Details)Aug 13 2024, 10:09 AM
nicolasfella updated the task description. (Show Details)Aug 13 2024, 2:02 PM
nicolasfella added a subscriber: nicolasfella.

+1

I would be interested to test.

Background:
I have a friend who is currently using Mint on Nvidia. He's been experiencing a lot of issues (most of them already fixed by KDE by Plasma 6, such as major stuttering) and the reason why I haven't brought him to KDE Plasma is due to the Wayland showstoppers for professional artists and switching distros is a time-consuming process. With this goal, I can ask him to test KDE Plasma Wayland with me at Fedora and in the process significantly improve his Linux experience.

I also have an artist/animator sibling who is currently using Windows 10 at my recommendation (Windows 11 is truly a major PITA to work with and it's only gotten worse) and I want to ensure that by the time I switch her laptop to Linux, she's getting the best experience she could get. Her tablet (of random brand) is also very unusual in the way it loads drivers so that might be fun to look at.

Personally, I am not an artist at all. However, I do have a small XP-Pen drawing tablet (for the dark ages of online school, and OSU) which I can use to test. I also have an Xbox 360 controller so that would be an interesting experience. I would also benefit a lot from the other improvements, in particular of touchpad gestures and keyboard.

wraith updated the task description. (Show Details)Aug 15 2024, 1:26 PM
wraith added a subscriber: wraith.
tduck updated the task description. (Show Details)Aug 15 2024, 1:26 PM
tduck added a subscriber: tduck.
wraith updated the task description. (Show Details)Aug 15 2024, 1:28 PM
muelsyse updated the task description. (Show Details)Aug 15 2024, 1:34 PM
IlyaBizyaev updated the task description. (Show Details)Aug 15 2024, 7:50 PM
IlyaBizyaev added a subscriber: IlyaBizyaev.

One more relevant issue that would make many people happy is support for spare layouts on Wayland: https://bugs.kde.org/show_bug.cgi?id=455431

wstyler updated the task description. (Show Details)Aug 21 2024, 3:38 PM
tusooaw updated the task description. (Show Details)Aug 28 2024, 2:41 AM
tusooaw added a subscriber: tusooaw.
frdbr added a comment.Sep 2 2024, 12:29 PM

The voting process is over, the votes are being tallied and the chosen proposals will be announced at Akademy. In the meantime we would like to invite you all to join the KDE Goals matrix room to stay in the loop, get in touch with other people and team up on other proposals if yours doesn’t make it—or rally some support if it does.

hein updated the task description. (Show Details)Sep 7 2024, 2:16 PM
hein added a subscriber: hein.
tduck updated the task description. (Show Details)Sep 7 2024, 3:05 PM
nclarius updated the task description. (Show Details)Sep 9 2024, 9:41 AM
nclarius added a subscriber: nclarius.

Since I take care of a lot of input stuff in Qt (at least most things related to pointing devices, including tablets), I'm interested in getting as many features in place and bugs fixed as possible. Please write up Qt bugs rather than working around them, and nag me about the ones that are becoming obstacles.

rutledge updated the task description. (Show Details)Sep 9 2024, 9:44 AM

Hi all,

This is super exciting news. Huge thanks to all involved.

I'm willing to put work into this. Like, all day every day. Anyone contributing to this can consider me available as their personal slave.

I can code, but I'm *very* rusty, and am probably of most use for my experience in Testing, and as a disabled user who has trouble with input.

Should I be editing the document above, to add my name to the list? Pardon my noob-ness to phabricator.

Possibly of interest - This page has a lot of relevant discussion about this subject, and most of the contributors are developers of various popular input handling apps for Wayland:
https://github.com/kermitfrog/inputmangler/issues/2

frdbr added a comment.Sep 21 2024, 1:09 PM

Hello @pallaswept and welcome aboard. You can contact the team and see how to join the effort in our Matrix room.

ajsb85 added a subscriber: ajsb85.Jan 9 2025, 4:24 PM
jpetso updated the task description. (Show Details)Feb 8 2025, 10:02 PM
tizen added a subscriber: tizen.Feb 16 2025, 10:12 AM