Installing a virtual keyboard

,

Hello,

I’m currently trying to get a virtual keyboard to work on OpenMandriva, with KDE. It seems like maliit is the only option at the moment, but it also seems like there’s an issue with the package.

Launching maliit-keyboard from the console shows QML errors about missing types: Timer and Connections:

file:///usr/lib64/maliit/keyboard2/qml/Keyboard.qml:310:5: Timer is not a type 
         Timer { 
         ^

Considering these stypes are buit into QtQuick, and since the import QtQuick statement is there at the top of the file… that’s a bit curious.

I also tried to add import QtQuick.Controls 2.4 at the top of the Keyboard.qmlfile, and the error then becomes:

file:///usr/lib64/maliit/keyboard2/qml/Keyboard.qml:33:1: module "QtQuick.Conntrols" is not installed 
     import QtQuick.Conntrols 2.4 
     ^

Which I believe is also abnormal, as I did install qtquickcontrols-qt5 on my system.

Alternatively, there also seems to be a virtual keyboard provided by KDE (KDE/plasma-keyboard), starting with Plasma 6.6, but the currently packaged version of Plasma is 6.5, so I’m not sure if it’ll work.
It also fails to configure properly, as Qt6 WaylandClient cannot be found by cmake, despite the lib64Qt6WaylandClient-devel package being installed. I had the same issue while trying to build maliit-keyboard from source.

CMake Error at CMakeLists.txt:33 (find_package):
  Found package configuration file:

    /usr/lib64/qt6/lib/cmake/Qt6/Qt6Config.cmake

  but it set Qt6_FOUND to FALSE so package "Qt6" is considered to be NOT
  FOUND.  Reason given by package:

  Failed to find required Qt component "WaylandClient".

  Expected Config file at
  "/usr/lib64/qt6/lib/cmake/Qt6WaylandClient/Qt6WaylandClientConfig.cmake"
  exists

That doesn’t make much sense to me… usually, when this fails, the file is missing. Here, it is found, and that’s the only thing that’s being reported !

Could I perhaps get some help into building either of these virtual keyboards from source ? Is there some trick to getting a building environment that works with Qt6 WaylandClient ?

Thanks !

@plaristote
welcome1

Please use the template included in all Support category new topics.

See also How to get better results when posting about problems

Thanks for the pointer ! I can’t edit the post, so I’ll fix it up below.

It might be best to just drop it though. I think mauliit-keyboard is broken, but it’s probably not that important: mauliit isn’t maintained anyway, and the situation will likely be fixed as soon as Plasma>=6.6 gets shipped, since KDE will have it replaced with their own virtual keyboard.

Issue

Using Wayland, Mauliit virtual keyboard pops up with no visible UI.

System

os-release:

NAME="OpenMandriva Lx"
VERSION="26.02 (ROME) Rolling"
ID="openmandriva"
VERSION_ID="26.02"
PRETTY_NAME="OpenMandriva Lx 26.02 (ROME) Rolling"
BUILD_ID="20260208.17"
VERSION_CODENAME="rome"
ANSI_COLOR="1;43"
LOGO="openmandriva"
CPE_NAME="cpe:/o:openmandriva:openmandriva_lx:26.02"
HOME_URL="http://openmandriva.org/"
BUG_REPORT_URL="https://github.com/OpenMandrivaAssociation/distribution/issues/"
SUPPORT_URL="https://forum.openmandriva.org"
PRIVACY_POLICY_URL="https://www.openmandriva.org/tos"

The current Rock image is also affected.

inxi output:

System:
  Host: pipboy-2000 Kernel: 6.19.0-desktop-1omv2690 arch: x86_64 bits: 64
  Desktop: KDE Plasma v: 6.5.5 Distro: OpenMandriva Lx 25.11 ROME
Machine:
  Type: Detachable System: Star Labs product: StarLite v: 1.0
    serial: <superuser required>
  Mobo: Star Labs model: StarLite v: 1.0 serial: <superuser required>
    Firmware: UEFI vendor: coreboot v: 26.03 date: 03/12/2026
Battery:
  ID-1: BAT0 charge: 20.3 Wh (52.7%) condition: 38.4/37 Wh (104%) volts: 7.62
    min: 7.7
CPU:
  Info: 8-core model: Intel Core 3 N350 bits: 64 type: MCP cache: L2: 4 MiB
  Speed (MHz): avg: 1280 min/max: 700/3900 cores: 1: 1280 2: 1280 3: 1280
    4: 1280 5: 1280 6: 1280 7: 1280 8: 1280
Graphics:
  Device-1: Intel Alder Lake-N [Intel Graphics] driver: i915 v: kernel
  Device-2: Realtek USB2.0 camera driver: uvcvideo type: USB
  Device-3: Sunplus Innovation USB 2.0 Camera driver: uvcvideo type: USB
  Display: wayland server: X.org with: Xwayland v: 24.1.9
    compositor: kwin_wayland driver: X: loaded: modesetting dri: iris gpu: i915
    resolution: 2160x1440~60Hz
  API: EGL v: 1.5 drivers: iris,swrast
    platforms: gbm,wayland,x11,surfaceless,device
  API: OpenGL v: 4.6 compat-v: 4.5 vendor: intel mesa v: 26.0.0
    renderer: Mesa Intel Graphics (ADL-N)
  API: Vulkan v: 1.4.341 drivers: intel,llvmpipe surfaces: N/A
  Info: Tools: api: clinfo, eglinfo, glxinfo, vulkaninfo de: kscreen-console
    wl: wayland-info x11: xdpyinfo, xprop, xrandr
Audio:
  Device-1: Intel Alder Lake-N PCH High Definition Audio driver: snd_hda_intel
  API: ALSA v: k6.19.0-desktop-1omv2690 status: kernel-api
  Server-1: PipeWire v: 1.4.10 status: active
Network:
  Device-1: Intel Alder Lake-N PCH CNVi WiFi driver: iwlwifi
  IF: wlp0s20f3 state: up mac: 98:5f:41:f9:ad:c6
Bluetooth:
  Device-1: Intel Bluetooth 9460/9560 Jefferson Peak (JfP) driver: btusb
    type: USB
  Report: hciconfig ID: hci0 rfk-id: 0 state: down
    bt-service: enabled,running rfk-block: hardware: no software: yes
    address: 98:5F:41:F9:AD:CA
Drives:
  Local Storage: total: 476.94 GiB used: 31.45 GiB (6.6%)
  ID-1: /dev/nvme0n1 vendor: OSC model: PCIe 512GB size: 476.94 GiB
Partition:
  ID-1: / size: 451.34 GiB used: 31.45 GiB (7.0%) fs: ext4 dev: /dev/nvme0n1p2
  ID-2: /boot/efi size: 299.4 MiB used: 340 KiB (0.1%) fs: vfat
    dev: /dev/nvme0n1p1
Swap:
  ID-1: swap-1 type: zram size: 7.74 GiB used: 136 KiB (0.0%) dev: /dev/zram0
  ID-2: swap-2 type: partition size: 17.02 GiB used: 0 KiB (0.0%)
    dev: /dev/nvme0n1p3
Sensors:
  System Temperatures: cpu: 49.0 C mobo: N/A
  Fan Speeds (rpm): N/A
Info:
  Memory: total: 16 GiB note: est. available: 15.47 GiB used: 6.14 GiB (39.7%)
  Processes: 282 Uptime: 8h 42m Shell: Zsh inxi: 3.3.40

Console output:

plaristote@pipboy-2000 ~/Projets % sudo dnf install -y maliit-keyboard
Mise à jour et chargement des dépôts :
Dépôts chargés.
Paquet                                                  Architecture       Version                                                 Dépôt                          Taille
Installation de :
 maliit-keyboard                                        x86_64             0:2.0.0-1                                               rolling-x86_64               80.6 MiB
Installation des dépendances :
 lib64anthy0                                            x86_64             0:9100h-25.20110409.5                                   rolling-x86_64              502.1 KiB
 lib64chewing3                                          x86_64             0:0.5.1-1                                               rolling-x86_64              142.5 KiB
 lib64maliit-plugins                                    x86_64             0:2.3.0-4                                               rolling-x86_64              714.1 KiB
 lib64pinyin13                                          x86_64             0:2.6.2-1                                               rolling-x86_64              533.6 KiB
 lib64presage0                                          x86_64             0:0.9.2-0.beta20150909.2                                rolling-x86_64              251.5 KiB
 lib64qt5multimedia5                                    x86_64             0:5.15.18-1                                             rolling-x86_64              928.9 KiB
 lib64tinyxml0                                          x86_64             0:2.6.2-19                                              rolling-x86_64               84.5 KiB
 libchewing                                             x86_64             0:0.5.1-1                                               rolling-x86_64                3.5 MiB
 maliit                                                 x86_64             0:2.3.0-4                                               rolling-x86_64              474.0 KiB
 presage                                                x86_64             0:0.9.2-0.beta20150909.2                                rolling-x86_64               59.3 MiB

Résumé de la transaction :
 Installation :     11 paquets

La taille totale des paquets entrants est de 53 MiB. Un téléchargement de 53 MiB est nécessaire.
Après cette opération, 147 MiB supplémentaires seront utilisés (+147 MiB, -0 B).
[ 1/11] lib64chewing3-0:0.5.1-1.x86_64                                                                                          100% |  66.6 KiB/s |  51.9 KiB |  00m01s
[ 2/11] lib64pinyin13-0:2.6.2-1.x86_64                                                                                          100% | 450.3 KiB/s | 117.5 KiB |  00m00s
[ 3/11] lib64anthy0-0:9100h-25.20110409.5.x86_64                                                                                100% | 129.7 KiB/s | 154.3 KiB |  00m01s
[ 4/11] lib64qt5multimedia5-0:5.15.18-1.x86_64                                                                                  100% | 778.1 KiB/s | 254.4 KiB |  00m00s
[ 5/11] lib64presage0-0:0.9.2-0.beta20150909.2.x86_64                                                                           100% | 148.2 KiB/s |  93.7 KiB |  00m01s
[ 6/11] maliit-0:2.3.0-4.x86_64                                                                                                 100% | 175.7 KiB/s | 138.1 KiB |  00m01s
[ 7/11] libchewing-0:0.5.1-1.x86_64                                                                                             100% |   1.5 MiB/s |   1.7 MiB |  00m01s
[ 8/11] lib64tinyxml0-0:2.6.2-19.x86_64                                                                                         100% | 118.8 KiB/s |  35.5 KiB |  00m00s
[ 9/11] lib64maliit-plugins-0:2.3.0-4.x86_64                                                                                    100% | 471.1 KiB/s | 203.1 KiB |  00m00s
[10/11] presage-0:0.9.2-0.beta20150909.2.x86_64                                                                                 100% |   7.6 MiB/s |  27.6 MiB |  00m04s
[11/11] maliit-keyboard-0:2.0.0-1.x86_64                                                                                        100% |   1.5 MiB/s |  22.8 MiB |  00m15s
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[11/11] Total                                                                                                                   100% |   3.6 MiB/s |  53.1 MiB |  00m15s
Exécution de la transaction
[ 1/13] Vérifier les fichiers des paquets                                                                                      100% |   8.0   B/s |  11.0   B |  00m01s
[ 2/13] Préparer la transaction                                                                                                100% |  35.0   B/s |  11.0   B |  00m00s
[ 3/13] Installation de lib64maliit-plugins-0:2.3.0-4.x86_64                                                                    100% |  53.7 MiB/s | 714.6 KiB |  00m00s
[ 4/13] Installation de maliit-0:2.3.0-4.x86_64                                                                                 100% |  46.4 MiB/s | 475.3 KiB |  00m00s
[ 5/13] Installation de lib64chewing3-0:0.5.1-1.x86_64                                                                          100% |  46.5 MiB/s | 142.9 KiB |  00m00s
[ 6/13] Installation de libchewing-0:0.5.1-1.x86_64                                                                             100% |  70.7 MiB/s |   3.5 MiB |  00m00s
[ 7/13] Installation de lib64tinyxml0-0:2.6.2-19.x86_64                                                                         100% |  41.4 MiB/s |  84.9 KiB |  00m00s
[ 8/13] Installation de lib64presage0-0:0.9.2-0.beta20150909.2.x86_64                                                           100% |  27.3 MiB/s | 251.9 KiB |  00m00s
[ 9/13] Installation de presage-0:0.9.2-0.beta20150909.2.x86_64                                                                 100% |  79.3 MiB/s |  59.5 MiB |  00m01s
[10/13] Installation de lib64qt5multimedia5-0:5.15.18-1.x86_64                                                                  100% |  69.8 MiB/s | 929.5 KiB |  00m00s
[11/13] Installation de lib64pinyin13-0:2.6.2-1.x86_64                                                                          100% |  65.2 MiB/s | 534.0 KiB |  00m00s
[12/13] Installation de lib64anthy0-0:9100h-25.20110409.5.x86_64                                                                100% |  61.4 MiB/s | 503.2 KiB |  00m00s
[13/13] Installation de maliit-keyboard-0:2.0.0-1.x86_64                                                                        100% |  47.4 MiB/s |  80.6 MiB |  00m02s
Terminé !
plaristote@pipboy-2000 ~/Projets % /usr/bin/maliit-keyboard 
Did not find a dictionary for "en"  - checking for  "en"
No dictionary found for "en" turning off spellchecking
no dictionary to turn on spellchecking
Warning: QQml_colorProvider: no color provider has been set!
file:///usr/lib64/maliit/keyboard2/qml/Keyboard.qml:257:9: Connections is not a type 
             Connections { 
             ^

My theory is that it works as expected, but the UI is fully invisible due to the QML failing to load.

This isn’t the proper way to setup maliit, but it’s likely displaying the issue causing it not to work. To set up maliit, one needs to go to System Settings > Keyboard > Virtual Keyboards, then pick Maliit and apply the change. At this point, you’ll need a touchscreen to witness the effect: everything seems to behave as expected, interfaces do request a virtual keyboard when needed, and Kwin does react to that demand by re-arranging the windows to make space for the virtual keyboard. However, the virtual keyboard itself does not appear).

I did manage to build KDE’s own virtual keyboard for Plasma 6.6 - it complained about not solving Qt6WaylandClient, but what it really needed was wayland-devel stuff. Still, the build I made didn’t work: considering it’s designed for more recent minor versions of Plasma, it’s probably not that surprising.

Welcome @plaristote to OpenMandriva forum and our community.

You are much more likely to get timely answers for this type of topic at OM-Chat.