Bug 426824

Summary: "Virtual Keyboard" button on the login screen is invisible until QT_IM_MODULE=qtvirtualkeyboard is manually set in environment
Product: [Plasma] plasmashell Reporter: Fabian Vogt <fabian>
Component: Lock/logoutAssignee: Nate Graham <nate>
Status: RESOLVED DUPLICATE    
Severity: normal CC: aleixpol, bhush94, plasma-bugs
Priority: VHI Keywords: regression
Version: master   
Target Milestone: 1.0   
Platform: openSUSE   
OS: Linux   
Latest Commit: Version Fixed In:

Description Fabian Vogt 2020-09-21 17:37:15 UTC
As seen in openQA, it's practically invisible:
https://openqa.opensuse.org/tests/1399988#step/start_wayland_plasma5/16

Last good test run was 21 days ago: https://openqa.opensuse.org/tests/1378614#step/start_wayland_plasma5/16

Switching back to Plasma.Components 2.0 makes it appear again.
Comment 1 Nate Graham 2020-09-21 17:42:32 UTC
Can reproduce. I see some suspicious console spew:

[11:40:51.660] (WW) GREETER: file:///home/nate/kde/usr/share/sddm/themes/breeze//components/VirtualKeyboard.qml:22:1: Type InputPanel unavailable
[11:40:51.660] (WW) GREETER: qrc:/QtQuick/VirtualKeyboard/content/InputPanel.qml:127:5: Type Keyboard unavailable
[11:40:51.660] (WW) GREETER: qrc:/QtQuick/VirtualKeyboard/content/components/Keyboard.qml:38:1: module "QtQuick.VirtualKeyboard.Plugins" is not installed
[11:40:52.145] (WW) GREETER: <input>:406:376: Could not add child element to parent element because the types are incorrect.

I'll see if I can fix it.
Comment 2 Nate Graham 2020-09-21 18:02:19 UTC
Oddly, it appears just fine on the lock screen.
Comment 3 Nate Graham 2020-09-21 18:15:14 UTC
Somehow the QtQuick virtual keyboard component is not loadable by the login screen the way it is by the lock screen.
Comment 4 Fabian Vogt 2020-09-21 19:38:25 UTC
No idea why exactly, but that (totally misleading) error goes away with QT_IM_MODULE=qtvirtualkeyboard.
Comment 5 Nate Graham 2020-09-21 19:43:15 UTC
If I export that envar, the problem is totally fixed in fact. The button appears and I can pull up the virtual keyboard.

I also see that the screen locker is explicitly setting this environment variable:

nate@Liberator:~/kde/src/kscreenlocker$  (master) grep -ri qtvirtualkeyboard
greeter/main.cpp:        qputenv("QT_IM_MODULE", QByteArrayLiteral("qtvirtualkeyboard"));

...But the same cannot be said of anywhere in plasma itself. So that's why it still works in the lock screen, but not the login screen.

I wonder if this is in any way related to the work to make the Maliit virtual keyboard function properly.
Comment 6 Nate Graham 2020-09-21 20:20:57 UTC
It has come to my attention that I misunderstood the bug report, which was originally reporting Bug 426556.

*** This bug has been marked as a duplicate of bug 426556 ***