Description
Text input is the foundational means of human-computer interaction: We configure or systems, program them, and express ourselves through them by writing text. It's how our software is made, and it's how it's consumed. It's how users and developers connect with each other.
Text input in KDE software today faces many challenges:
- Input methods for many languages are too hard to set up, requiring deep expert knowledge to install and configure relevant add-on software and third-party settings UI.
- It's very hard to switch an English-language system to accepting input in other languages.
- Support for typing acceleration/assistive features like word completion is very limited.
- Support for easy input of text emoji is lacking.
- Functionality and behavior between our physical and virtual (on-screen) keyboard input methods are inconsistent and far from being at parity.
The situation as described above makes using our software not as easy and enjoyable for many users as it should be, and some cannot use it at all.
It also holds KDE software back in many markets that are important potential growth markets for our software, particularly in East Asia.
Fixing this requires concerted action in our community. When done, it will add new fundental capabilities to our software that will help it reach new audiences and thereby grow our community of users and contributors.
Let's do it!
Proposed changes
- Forming a strong team to tackle text input and related l10n challenges within the KDE community, leveraging many types of skills: UX, visual/icon assets, code, communication.
- Working closely with the wider FOSS text input community by inviting relevant outside contributors to a KDE sprint.
- Deep and non-optional integration of input method settings in Plasma's System Settings, building on a 2017 GSoC project (in detail: ibus and fcitx configuration in System Settings and a next-gen panel applet, evolving existing Keyboard settings and panel indicators beyond keyboard layout management).
- Working on implementing more relevant technology standards in KDE software (in detail: supporting the Wayland text-input and input-method protocols in KWin and kwayland).
- Doing pioneering work on aligning our virtual keyboard with our desktop input stack, achieving feature and behavior parity (in detail: an ibus backend for Qt Virtual Keyboard).
- Designing and deploying improved emoji support throughout the system (in detail: a default emoji picker UI and keyboard shortcut, integrated via KF5/QPA into standard text UI controls).
- Working upstream in our stack to fix relevant bugs (in detail: e.g. text underline style rendering in Qt Quick, behavior bugs in ibus, contributing to relevant Wayland protocols).
- Working with downstream distributions of KDE software on packaging and installing the required dependencies. Addressing integration problems posed by new application container formats.
- Educating on and documenting text input challenges and solutions/best practices throughout our community.
- Promoting KDE's effort to take a leading role in this domain and the things we accomplish.
Relevant links
- Input Methods in Plasma 5 (Akademy 2017 talk by @hein; slides)
How we know we succeeded
- Users stop asking how to setup input methods on forums and bug trackers. Tutorials become obsolete because the steps to configure a new IM are obvious and discoverable.
- Our software sees increased uptake in new regions of the world that require input method support.
- Plasma is the free system of choice for users that require input method support.
I am interested
- Bernie Innocenti (@bernieinnocenti)
- Eike Hein (@hein)
- Shinjo Park (@pshinjo
- Nate Graham (@ngraham)
- Gun Park (@gpark)
- Ilya Bizyaev (@IlyaBizyaev)
- Lydia Pintscher (@lydia)