Support for Gamepad-input
Open, Needs TriagePublic

Description

Motivation

Supply issues aside Valve released the Steam Deck back in February, and now Plasma and KDE Apps are shipped by default on a device that, while it has a touchscreen, the primary method of interaction is through it's gamepad. The market for x86 handhelds is beginning to flourish, and thanks to SteamOS the idea of running Linux in such a machine is getting more accepted, companies such as Aya Neo are working on their own Linux Distro. It might be smart to consider guidelines and solutions to make KDE more palatable on that form factor, making KDE usable outside the OEM Distros, as well as help users of those devices have a more pleasurable experience with KDE.

Depending on the implementation KDE chooses to go with, gamepad support would also translate to heavy keyboard users, would lay the groundwork for niche input devices like a TV Remote, and more importantly: Would help those who are blind, visually impaired or people who can't use a traditional pointer device for one reason or another.

Of course, creating an amazing and transformative experience catered to gamepad input is not a realistic expectation. The objective here is to make Plasma and basic KDE Apps usable under those circumstances.

Plan

The short term goal is to discuss and create guidelines about the minimum amount of keys to be required by basic KDE Apps and Plasma in general, and other UX considerations to ensure consistency in behavior.

Long term goals:

  • Of course, implement the guidelines.
  • Create/fork a tool to convert gamepad-input into keyboard and mouse for non-game apps. This centralizes the effort of actual gamepad input into one place, and make it so that there's no need to implement gamepad support into each KDE app individually.
  • Also create/fork a mapping tool for the user. Gaming controllers come in all shapes and forms, while it is possible to create some basic mappings, it is impossible to foresee what a user finds comfortable, or even how many buttons are available. A single Switch Joycon can be held horizontally or vertically, or paired with another to work as a single controller. The best we can do is to design using as few keys as possible and let the user remap unused keys as they see fit.

Community

As it is about the implementation of support for an input device, the community is fundamental to develop the basic mapping into something intuitive. Testing and giving ideas for controllers as well, because there's no way anyone can test every single popular controller.

As mentioned, this goal also has some synergy with the effort to make KDE more accessible in general. Communication between the two efforts would help to work towards a common goal, namely the usability of KDE without a mouse being required.

Risks and needs

The biggest risk is either the mapping tool and/or the guidelines not going anywhere. In the context of Gamepad-input they can't work without each other. Without proper support for limited keys, a mapping tool is only useful to simulate a mouse. The apps could be made usable with the limited number of available keys in a gamepad, but without a mapping tool they wouldn't have any way to interact with gaming controllers.

Additionally, while not part of the community, it might be smart to at the very least ask Valve if they are interested in contributing by open sourcing SteamInput, or at least parts of it. Valve already has no problems contributing to open source projects, and the SteamInput configurator is incredibly powerful: layers and radial menus make it theoretically possible to map every single key on a keyboard to a simple SNES controller if the user is smart enough.

Failing that, we could study if it is possible to fork this mapping tool instead rather than creating such a tool from scratch

Champion

I used KDE in the mid 2000s, and been using it daily since 2020. I'm not a programmer nor a designer, I'm a user, I've reported some bugs and requested half a dozen of features.

To put it simple: I'm very interested in unconventional inputs methods and games in general. Back in March I've made a draft of a proposal getting ready for this goal, you can read it here, it goes quite a bit more in-depth about certain concepts, like what even means to have a gamepad as input in a desktop, and some considerations and ideas for Plasma and Apps to take.

Interest

This section is intended for people other than the Champion to sign up and show support for the Goal.
If you are interested to actively join the effort and do the work, add your name below (this does not count as voting for the Goal):

ws created this task.Jun 26 2022, 9:35 PM
apol added a subscriber: apol.Jul 11 2022, 1:45 PM

Have you seen this? https://invent.kde.org/plasma-bigscreen/plasma-remotecontrollers/

It's very similar to what you're after.

ws added a comment.Jul 11 2022, 6:09 PM

I haven't seen that yet. That one is for Plasma Bigscreen, right? I'm quite unfamiliar with Plasma Bigscreen, given that I don't really have any device that could use it, and to be honest I don't really know how much can be shared between it and Plasma.

apol added a comment.Jul 11 2022, 11:26 PM

It was originally developed for bigscreen but it doesn't really have much bigscreen specific. I recommend you give it a try.

adam added a subscriber: adam.Aug 21 2022, 5:59 PM

Note from the refinement session:

Is the link provided show that this is done/being worked on anyway? Even if not, it seems to be a bit too narrow to be a Goal.

adam added a comment.Aug 21 2022, 6:47 PM

The voting starts in a week, if you plan to update the proposal it best to do it soon.

ws added a comment.Aug 23 2022, 3:16 PM
In T15643#279763, @adam wrote:

Is the link provided show that this is done/being worked on anyway? Even if not, it seems to be a bit too narrow to be a Goal.

No. The issue with gamepad support is that it is both too narrow and too encompassing. As a remapper can be a single project. But for support to properly work, it requires "basic" KDE apps to be usable with only the Arrows, Menu, Enter and Esc keys, and maybe Tab.

Actually, it might've been smarter to submit part of this goal as a suggestion to the accessibility goal

adam added a comment.Aug 27 2022, 12:19 PM

@ws I agree that this could be part of the accessibility Goal proposal, based on this discussion I propose to not move this to the voting stage. Of course, feel free to submit your ideas in the other proposal!

ws added a comment.Aug 28 2022, 5:56 PM

Yeah, I agree with that. You can close this goal, or whatever is the proper procedure.