Questions about the OSK

Hello.

I have a pen display connected to my computer via a long cable. I like to take it with me from my desk to a more comfortable armchair when drawing. The keyboard stays at the desk, there’s no space for it elsewhere.

I enabled the OSK in the settings and the first problem is that it only appears on my primary monitor, which is on my desk. I could reconfigure it so that my pen display is the primary monitor but I would have swap it back when I’m done drawing. A bit inconvenient.

The other problem is that my drawing app does not automatically make the OSK show up when focusing on a text field, unlike some other apps. I see that it is possible to make the OSK appear when I swipe from the bottom up using my mouse/pen, but this does not work when the app is maximized… or really at all regardless of the size of the window for some reason?

What I’m asking is:

  1. Can I make the OSK appear on a secondary monitor
  2. Is there something like a keyboard shortcut (that I could bind to one of the buttons on my pen display) that makes the OSK show up?

I tried installing some third party keyboards but everything seems unmaintained and/or difficult to install on Fedora Sliverblue, which is what I use.

  1. What version of SilverBlue was this on ?
  2. What drawing app do you use ?
  3. Do apps other than the drawing app work as expected (triggering OSK etc) ?

Silverblue 41 fully updated

Mainly Tahoma2D, a fork of OpenToonz. I also occasionally use Krita

Only Gnome apps like Files, Music, Web etc.

I’m not sure if OSK not triggering has something to do with all drawing apps being in Qt / AppImage, but I’d suggest trying to reduce the scope of the issue (trigger OSK on your system with a normal display (without connecting pen display).

FWIW, native wireshark which is based on Qt doesn’t trigger OSK on my latest Debian Unstable.

Qt doesn’t do text-input-unstable-v3 Wayland protocol so the OSK doesn’t pop out there (similar e.g. chromium/electron apps don’t pop out the OSK either).

1 Like

A quick look at D-Bus session traffic via dbus-monitor while OSK is triggered shows the following 3 methods being called in that order.

  • SetCursorLocation (..)
  • SetEntryLocation (..)
  • Show (..)

SetCursorLocation():

method call time=1731174940.660836 sender=:1.281 -> destination=org.gnome.Caribou.Keyboard serial=28 path=/org/gnome/Caribou/Keyboard; interface=org.gnome.Caribou.Keyboard; member=SetCursorLocation
   int32 0
   int32 142
   int32 9
   int32 18
method return time=1731174940.661287 sender=:1.270 -> destination=:1.281 serial=134 reply_serial=28

SetEntryLocation():

method call time=1731174940.661547 sender=:1.281 -> destination=org.gnome.Caribou.Keyboard serial=29 path=/org/gnome/Caribou/Keyboard; interface=org.gnome.Caribou.Keyboard; member=SetEntryLocation
   int32 0
   int32 88
   int32 1206
   int32 1080
method return time=1731174940.661871 sender=:1.270 -> destination=:1.281 serial=135 reply_serial=29

Show():

method call time=1731174940.662214 sender=:1.281 -> destination=org.gnome.Caribou.Keyboard serial=30 path=/org/gnome/Caribou/Keyboard; interface=org.gnome.Caribou.Keyboard; member=Show
   uint32 0
method return time=1731174940.662794 sender=:1.270 -> destination=:1.281 serial=136 reply_serial=30

Screenshot from d-feet:

So, from what I understand, it’s not a straightforward command which can be mapped to a keyboard. Appropriate co-ordinates need to be passed via D-Bus before calling the Show() method, which displays the OSK.

If you want to hack around, it should be possible with a script, which can then be mapped to a button on your pen display.

I see, thank you for the explanation.

This topic was automatically closed 45 days after the last reply. New replies are no longer allowed.