I’ve recently just acquired a tablet PC which I’ve set up with Debian 12 and KDE Plasma (replacing the now useless Windows 8.1 OS it came with). I’ve got most things configured but one real irritation for me is the default on-screen keyboard that SDDM and the lock screen use.
SDDM for now, I’ve replaced with lightdm. That lets me point it at onboard for an on-screen keyboard… this works just fine with X11-based Plasma, which so far has proven more usable than its Wayland equivalent on this hardware.
The lock screen eludes me however. I see no way to replace the lock screen application with an alternative, nor can I configure what on-screen keyboard the default has.
While the default on-screen keyboard “works”, password entry is cumbersome due to the layout chosen… when one is used to touch typing, one “remembers” a password by keystroke location: thus the on-screen keyboard must mimic that of a real keyboard.
None of my real-life keyboards (all US layout) have a separate button for toggling between letters and figures/symbols. In fact the only ones I’ve heard of that do are electromechanical Baudot terminals like the Teletype Model 15 — none of my equipment is that old.
If there is a way to either…
switch the default keyboard to use a 4-row (numbers, QWERTY …, ASDFG…, ZXCVB…) layout typical of a standard laptop keyboard, OR
switch the default keyboard implementation to onboard (which has a layout I am finding quite comfortable for password entry)
Yep, as mentioned, I have onboard working just fine on log-in (using lightdm), and in the desktop session.
What I haven’t figured out, is how to use it on the lock screen. Either I tell the existing KDE lock screen to use onboard, or I replace the lock screen with another that lets me do so. It’s not clear how I do either.
I’m guessing I can use something in .xsession to do the latter with a X11 screen locker like xscreensaver, but I wanted to explore if the KDE default locker could be customised first.
Yeah, SDDM isn’t an issue for now. While it shares the same problem, it was easy enough to install lightdm and configure that the way I wanted. I can give SDDM a go if I can set up a different on-screen keyboard, but otherwise I have a workaround for that.
For reference (sorry to the blind folk but I had to combine these screenshots into one because new users cannot be trusted)… this is what I’m on about:
The photos are low resolution as they were taken with a smartphone camera. I also want to keep the file size down.
On the left, we have the KDE lock screen with its default on-screen keyboard. To enter a reasonably secure password, one is switching between the two layouts constantly.
I’ve never typed on a 100-year old teletype, but I’m pretty sure this is a very close analogue of what it feels like, the only thing missing is separate carriage return and line feed buttons. I’ve got to manually think about each character and whether I need to switch modes or not. The first few times I did it, I actually had to look at a written-down version of my password to enter it in because my mind went blank.
Now, over on the right, we see lightdm and onboard. onboard is configured with a IBM Model M theme (but honestly, I’ll take anything that gives me a “normal” keyboard layout). The layout is called “full keyboard”.
It’s that layout I’m after.
I don’t care if it’s not onboard, that just happened to be the first one that worked (I also tried xvkbd, it works too but isn’t as nice to work with). I’m fine if it’s qtvirtualkeyboard, or anything else. The layout is what matters here: I need my letters, digits and symbols shown together.
From the image, this is the login manager screen being shown, not the Plasma desktop lock screen. The two are unrelated.
I don’t think SDDM here can use another keyboard other than the (iirc) touch-focused qtvirtualkeyboard, which is what is being shown - remember we are talking about Plasma 5.24-era software, including the SDDM version. I can’t recall if this version supports other keyboards at all.
The two on the left are most definitely the desktop lock and not the log-in manager. The right-hand one is a log-in manager, lightdm… but the two on the left are what appears when the machine wakes up from sleep mode. sddm is disabled for now (when I installed lightdm, dpkg-configure prompted me about which display manager to use, and I selected lightdm so sddm is not being used at present).
That confirms a hunch though that this is qtvirtualkeyboard which makes sense, it’s a core component of the Qt framework that KDE is built on.
I did try looking at options to customise qtvirtualkeyboard but they seemed to assume you were compiling an embedded application using it.
Search engine qtvirtualkeyboard custom layout brings up a link to Qt’s documentation that suggests it can be done. Seems I can’t post a link (new users are not allowed), but since I can post an image, here’s a QR code to the link:
If somebody wants to go over the SDDM source code, where virtual keyboard is mentioned:
`InputMethod=`
Set the Qt input method for the greeter.
Tablet users with Qt Virtual Keyboard installed can set this
to "qtvirtualkeyboard" for the on-screen keyboard.
Other known values are "ibus" for the Intelligent Input Bus,
or "compose" for dead keys support.
So it seems that currently there is no way around qtvirtualkeyboard except for editing the source code and recompiling.
Edit: even better way is to actually edit and recompile qtvirtualkeyboard here: