Skip to content

WIP: Port Keyboard input modules and Expand scope to cover input method configuration

Carl Schwan requested to merge work/carl/keyboard-kcm-qml into master

this is the rebased work from https://phabricator.kde.org/D14796

Summary:

This is the result of this year's [[ https://community.kde.org/GSoC/2018/Ideas#System_Settings:_Port_keyboard_input_modules_and_expand_scope_to_cover_input_method_configuration | GSoC project ]].

Users of Plasma Desktop Environment expect to find all their necessary system configurations through the System Settings application. So it plays an important role for the overall user experience of Plasma. But the current application is largely designed using the legacy QWidget framework, and does not meet the requirements for more responsive / modern design required for use in touch screens and mobile platforms. For that, it is necessary to port the KCMs to Qt Quick, which is quite tedious work and requires a lot of manpower. My primary goal is to help the KDE Community in this immense task, by porting the keyboard input modules, with modern designs provided by the KDE Visual Design Group (VDG).

Another additional goal is to integrate the input method configurations, such as ibus or fcitx, into the System Settings application. Currently, the only way to install / configure these input methods is to install it from a package manager and use the GUI provided by the input method, which is far from discoverable. The ability to add / remove and configure IMEs will improve user experience for a global audience.

In the patch, there are three major changes/additions:

  1. Keyboard layout switching is now handled by the keyboard kded daemon plugin

  2. New QAbstractListModel-based keyboard layout model encompassing fcitx, and extensible to other IMEs

  3. Kimpanel applet updated to operate with the new model

Reviewers: @hein

Subscribers: @davideichelsdoerfer, @yerilov, @kucharczyk, @lavender, @ngraham, @apol, @hein

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D14796

Edited by Nate Graham

Merge request reports