This is too great not to share. Wayland devs hate this trick! I’ll copy what I did from the bug report.

As a workaround you can use https://github.com/Supreeeme/extest to make Onboard work. Compile it as a 64 bit library and launch onboard with

env LD_PRELOAD=/usr/lib64/libextest.so onboard

If you want to use it with KDE you can add

X-KDE-Wayland-VirtualKeyboard=true

to its desktop-file.

I used kwin rules to get rid of window decorations and have it always on top without stealing focus. If someone knows how to make all other windows smaller when it’s active that would be great.

Only problem remaining is that sometimes the keys get stuck on touch input. At least on my Steam Deck on OpenSUSE.

Edit: Just noticed that it doesn’t work on KDE’s lock screen. Hopefully I can find a workaround for that as well.

Edit 2: Was easier than I thought. Just select Maliit as a virtual keyboard and start Onboard manually. If you tap with your finger in a text field Maliit will come up. When you click in a text field Onboard will open. But Maliit also works on the lock screen.

  • ReversalHatchery@beehaw.org
    link
    fedilink
    English
    arrow-up
    2
    ·
    8 months ago

    That sounds great!

    What version of Plasma does it require, though?

    And how is it able to inject key events with extest? Does it use some wayland feature to get permission to do so, or does it do some kind of workaround like the uinput trick?

    • Björn Tantau@swg-empire.deOP
      link
      fedilink
      arrow-up
      2
      ·
      8 months ago

      I tested it on Plasma 6. If I interpret the extest Readme correctly it uses the uinput trick. So I guess that it works with older versions as well. Maybe without the plasma integration.

          • ReversalHatchery@beehaw.org
            link
            fedilink
            English
            arrow-up
            1
            ·
            8 months ago

            Sorry, didn’t realize that the link is to extest’s repo.

            It seems that this actually undoes wayland’s protection against any program inserting fake input events, and it does not only allow onboard to do so.

            I thought that it was already possible with onboard, with selecting uinput instead of xtest in the settings. Never tried though, because I didn’t want to undo that security measure.

            • Björn Tantau@swg-empire.deOP
              link
              fedilink
              arrow-up
              1
              ·
              8 months ago

              I’ll have to try the uinput setting. Maybe the workaround isn’t needed after all. Or at least it doesn’t have to be so convoluted.

              But yeah, it’s really just a dirty placeholder until we can get a proper solution in the next 50 years or so.