Mir-kiosk with on-screen keyboard


Summary: mir-kiosk application on Classic, multiple screens with on-screen keyboard.

I have been given the task to create a kiosk on Ubuntu Classic for an in-house built application. Instead of using gnome-shell single application mode, I would be really interested in using snap-mir instead.

Before I make the deep dive, I would like to know if it is possible to run an on-screen keyboard via a second snap such as ubuntu-keyboard or if a on-screen keyboard is already running, how to activate it.

The application has two monitors one will be a touch screen and therefore it will need a on-screen keyboard. Playing with some examples on a VM, I was not able to run the ubuntu-keyboard snap (maliit server already running). Installing other on-screen keyboards lead to installing the X server and disabling my mir-kiosk.

Can anybody tell me if mir-kiosk is currently capable of what I would like to accomplish.

Please advice.

Kind regards Hans.

Perhaps @alan_g could comment, alternatively, you could ask in an issue on github: https://github.com/MirServer/mir-kiosk


This mir-kiosk seems really interesting.


Hi Hans,

The display server used by mir-kiosk is a very basic shell with no trimmings. In particular, it has no onscreen keyboard. It is possible to build more capable shells with Mir (such as Unity8, which does have an onscreen keyboard) but there’s nothing available as a ready-made snap.

I’ve not done any work with integrating an onscreen keyboard into a kiosk snap, but it is possible that you would be able to include one in a snap along with your application. (It is also possible there’s a reason this can’t work.) If you try this I would be interested in what you find out.

Here’s a starting point for such an experiment:

Thanks Alan,

Perhaps this weekend I can take a look at it. I will keep you posted if I get anywhere.



Hi Guys, I found this post and we are trying to achieve something similar using mir-kiosk along with wpe-webkit-mir-kiosk and require an on screen keyboard for user entry. Did you get anywhere with this?

We did recently some internal tinkering in the IoT Field team using a custom build of matchbox-keyboard in an XWayland setup on top of mir-kiosk, @bugraaydogar might have some example code to look at …

Hi @karlsmith

Unfortunately, mir-kiosk does not offer an on-screen keyboard off-the-shelf.

I have personally tried quite many configurations and I would say that all of these experiments were unsuccessful and far away from being used in production environments. Therefore, the best way is always to embed an on-screen keyboard to the application directly.

In my final experiment, I was able to run two separate snaps sample UI application based on Flutter and custom build matchbox-keyboard on the Desktop. They worked well together in the Desktop. However, in the Core, I tried to combine them into a single snap but could not make it work.

If you are curious about my work, you could have a look at the repo below.

But as I said before, I would rather invest my time on embedding an OSK to the application directly.

Within our application we are using an embedded OSK and this is working fine. However we are using wpe-webkit-mir-kiosk to authenticate to our services on azure and it is here that we need the OSK to allow for password entry.

any help with this would be great.

Hi @karlsmith,

The mentioned URL or web service, is it under your control? if so, you could basically integrate any available javascript-based OSK to your application/service. If it is not under your control ( using a 3rdParty authentication service), would it be possible to modify and customize their UI?