Plasma Virtual Keyboard feedback needed

We’re almost a year into the We Care About Your Input KDE Goal, and we’ve made great progress across various input fronts like improving support for graphics tablets and gesture configuration. At the beginning of the year work started on improving On Screen Keyboard in Plasma Desktop and Mobile. An initial idea was thrown by Aleix back in June of 2024 where he sent an email exploring the possibility to replace Maliit with Qt Virtual Keyboard, many keystrokes later Plasma Virtual Keyboard was born. Here is a recap on what has been done so far. (Keep in mind that this is still in an early stage and not ready for release yet.)

Under the hood, several improvements have been made, such as upgrading to the latest Qt and KDE Frameworks versions, enhancing internationalization support, improved Wayland support, and some code refactoring.

New Features

Improved keyboard dimension calculations

This feature improves how the keyboard’s dimensions are calculated by introducing several new controls. The keyboard can now be set to always take up a percentage of the screen height, with the default at 30%. Horizontal margins are applied automatically if the width exceeds six times the height.

Configurable width

Added the option to set the keyboard centered instead of covering the whole screen.

Added number keys to top key row

This option makes it easier to type number keys without having to change to the symbols key layout.

Implement keyboard navigation

Fix overlapping text

Make text smaller with zhuyin characters.

Other highlights

  • Added KCM for Plasma Keyboard
  • A QML plugin was created to use custom styles and layouts.
  • Added ability to customize keyboard layout lists
  • Added sound and haptic feedback (vibration) for key presses
  • Import layouts from Qt VirtualKeyboard adding the ability to make changes to virtual keyboard layouts for different locales
  • Fixed issues with visible states (keyboard opening/reopening)
  • Fixed issues with selection cursor position
  • Fixed issues with keyboard going into capitalization mode after every word
  • Changed the default size of “Small Text” to be smaller
  • Added KCM option to enable Keyboard Navigation useful for Plasma BigScreen and Accessibility.
  • Add alternative number keys to default QWERTY layout

Upcoming

Keyboard emulation

Support for buttons such as Ctrl, Meta, Tab, Esc and the ability to emulate events such as copy (ctrl + c) and paste (ctrl + v) for example.

Floating display mode

Added the option to have a floating display mode.

TV formfactor in the settings

Optimized settings for TVs running Plasma Bigscreen. Also added options to selecting languages and toggling sound and vibration.

Cursor navigation in text field

Holding the spacebar, then moving left/right should move the cursor in the text field.

Enter Your Feedback

What would you like to see next in Plasma Keyboard? Whether you’ll be using it on a computer, phone, tablet, or TV we’d like to hear about it. Do you have accessibility usecase? Perhaps for gaming or VR setups? Broken keyboard in the server room situation? Multiple language support? Privacy and security concerns? Tell us!

Type your thoughts in the comments below or join us live! We’ll be in Berlin at Akademy discussing your ideas this September.

28 Likes

Very cool! Great work! :+1:

8 Likes

Similar to this, swiping left from backspace selects text for deletion to the left. You can finetune this by continuing to swipe left for more deletion, or if you overshot, move to thr right to deselect.

Lifting your finger confirms the action and executes the delete.

(This is the common smartphone feature similar to the spacebar feature)

3 Likes

Awesome work! One of my biggest issues with Maliit was that it didn’t have enough “advanced” buttons for terminal work and the addition of the Ctrl, Alt, etc. keys are a big improvement. However, I do sometimes need the Function keys and arrow keys for things like vim and htop. Will there be an advanced mode available that has more of these keys? I don’t mind if its hidden away like the symbols key layout, I just need the ability to do that without having to bust out my actual keyboard on my Surface Pro 7. A panel with arrow keys, function keys, home, end, pgup, pgdown, and insert would be much appreciated. It would make terminal work so much easier and make administering servers from a tablet feasible.

7 Likes

hey! i am working on a linux distribution for people with paralysis, such as cerebral palsy or quadriplegia.

plasma has just about everything we need for a fully touch accessible one handed 2-in-1 or linux tablet.

a full sized on screen keyboard is the final piece of the puzzle, and until then we’re using gnome.

please make this a priority, it’s so insanely valuable to people that cannot operate a phyiscal keyboard.

13 Likes

Thanks for your feedback. Which OSK are you using on gnome? If plasma-keyboard can replicated that is that enough or can there be anything improved?

My 2-in-1 laptop is a bit old and the battery is dead. I’ll give feedback as soon as I get a new one. There have been some nice developments while I wasn’t using that computer.

A nice to have would be the ability to select buttons on the left and right side with the left and right joysticks of a gamepad. Similar to the keyboard on the Steam Deck. Note, that they are not entirely limited to their sides, they can reach across for buttons that are ambivalent.

But modifier keys, F-keys, basically any key that can be found on a full keyboard, are the most important to me.

2 Likes

we’re using the gjs-osk extension on GNOME right now.

it’s the only keyboard we’ve found that’s only somewhat buggy but mostly usable, and has a full layout with function keys, arrow cluster, modifiers, etc.

2 Likes

features that would be nice are transparency and hold modifiers to toggle them

e.g. holding shift will keep shift turned on after a letter is typed

2 Likes

panel button like from gjs-osk to toggle plasma-osk would be nice as well

and of course we use a lot of xwayland applications so having xwayland support would be helpful

1 Like

I’ll sign everything @Synthetic451 said. Modifier and navigational keys are invaluable.

Also, maybe there could be another modifier key that will reveal secondary keyboard without switching to it, just a thought. Like, one press on secondary keyboard and return to the first one immediately. Maybe even long press on digits for F1..F10 keys.

To digress, double tap on modifier keys for permanent activation goes without saying :slight_smile:

Looking good. Don’t know if its fully in scope of the project, but it would be nice to have media control buttons (volume up, down, etc).

A cool thing I’d like to have that I have not seen mentioned is the ability to have a split keyboard

3 Likes

This looks great! One of my biggest issues with Maliit is how much space it takes up, just having it be adjustable is a win.

I’d be happy to help beta test, but I tried installing it on my Surface Pro 8 and it coredumps whenever I tap somewhere to bring up a keyboard. Will file an issue for this, tho.

EDIT: Is there a specific way to track this on bugs.kde.org, or should I just go ahead and file it on invent’s issues?

1 Like

I think you guys nailed it! It functions and looks very good… Great work!

The only thing I can see that’s missing is a settings key/button; however, I’m guessing that will be implemented once you start adding the mentioned upcoming features. Otherwise, it would be nice to have the keyboard size configurable either via a settings menu or the option to have it scalable.

Thanks KDE, this looks like we’re finally heading in the right direction. as a disabled user, the wayland experience has been really painful. maliit doesn’t fit the bill.

I need a virtual keyboard for accessibility because i use a trackball and eye tracker to type. right now i’m stuck maintaining my own fork of qtvkbd with qt6 compatibility and having to rely on xtest emulation through plasma wayland’s libeis implementation. it’s not pretty but the only thing that does the job

i also need to be able to move and resize the keyboard however I want. I need all the keys a real keyboard has, not some stripped down version.

the whole situation is frustrating because these aren’t nice to have features, they’re basic accessibility needs. when virtual keyboards are locked down or missing functionality, it literally prevents ppl like me from using my computer properly.

Really hoping this development leads to something that works well for everyone (acessibility+mobile use-case).

5 Likes

“Virtual Keyboard” ?It like Text input method, has a front end to display input method candidate list 、has a backend to convert characters、has the function of switching languages、has a way to input Characters that do not exist on the keyboard.

I use fcitx5 and fcitx5-rime to input chinese. rime is a IME, but it not has front end, fcitx5 help rime show a gui and link app to input Chinese character、English letters、emoji、Emoticons、Clipboard text.:partying_face::hand_with_index_finger_and_thumb_crossed:

plasma-keyboard seem to be replacing fcitx5. :smiling_face_with_tear::smiling_face_with_tear:

But, it thinks itself is a Virtual Keyboard, not work on Physical keyboard input.:kissing_face::kissing_face: and tell me run Another input method to switch them between physical keyboard and touch input.

I’d like to have a full virtual emulator like onboard with arrow keys, additional keys, maybe F keys and the different layout (AZERTY).

My idea is that I should be able to do every task for which I need a physical keyboard on my 2 in 1 by just using it.

2 Likes

one suggestion,add chinese shuangpin keyboard.

1 Like