Port Keyboard input modules and Expand scope to cover input method configuration
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.
Port all the Keyboard KCM's existing functionality to the new modern Kirigami UI, and make it easier for users to configure the IM from within System Settings.
- Ported 90% of the existing UI and functionality to Qt Quick
- Make model more flexible for incorporating IMs by using proxy models
- Basic support for configuring fcitx layouts
- Add / remove fcitx layouts when fcitx is loaded on the system
- Implement Layout-specific configuration dialog
- Removed most of the legacy and cruft, such as tray icons and flags
- Implement shortcut switching layouts for fcitx
The new architecture
|Xkb is enabled||Fcitx is enabled||Wayland is enabled|
|Layout switch (rotate) key press||Apply miscellaneous config changes (originally global configs from the "Advanced" tab), and then switch the layout as usual using setxkbmap||set fcitx' "special" first layout to the one configured in the kcm, and then switch to the specific IM using dbus||let Kwin handle it (might have to change the kwin code too, since the config contains non-xkb layouts too)|
Blogposts and Links
- Clone repository: https://cgit.kde.org/clones/plasma-desktop/gpark/gsoc-kcm-keyboard-revamp.git/?h=new_keyboard_kcm
- First blogpost: https://medium.com/@mujjingun_23509/google-summer-of-code-porting-keyboard-kcm-to-qt-quick-862d16e58d3c
- Second: https://medium.com/@mujjingun_23509/google-summer-of-code-porting-keyboard-kcm-to-qt-quick-part-2-30c115771722
Somebody mentioned that the xkb options in the "Advanced" section should not go away, So I'm planning to put them under each layout's specific options.