Your submission was sent successfully! Close

You have successfully unsubscribed! Close

Thank you for signing up for our newsletter!
In these regular emails you will find the latest updates about Ubuntu and upcoming events where you can meet our team.Close

Developing GUIs for IoT is easier with Ubuntu Frame on-screen keyboard

This article is more than 2 years old.


Isn’t it nice when things just work? When you don’t have to worry about every single detail but only about what creates value? Imagine that you are building a digital kiosk using a touch screen. To log in, users need to input their credentials. Do you want to spend time integrating an on-screen keyboard or rather work on your application? 

Yes, how difficult is it to integrate a javascript-based on-screen keyboard (OSK), for example? While managing external code adds complexity to the longevity of big deployment (should we all start looking again where we integrated Log4j?), it is not that difficult to do such integrations to your application. But what if your application is running an external service? Imagine that you want to run an external authentication system like Azure or Google. Then your application will be making API calls to a hosted service on an external server where you can no longer integrate your javascript. Sounds complicated? But most importantly, why should you worry about it in the first place? 

We want built-in functionalities that simply work, but we don’t want to keep integrating, securing, and maintaining third-party code. For all the developers embedding graphic applications, that’s what Ubuntu Frame is for. This free display server for IoT devices has all you need to create your kiosk, digital signage, point of sale, infotainment, and more. Do you need a full-screen display of your app? Easy. Want to add a complete range of touch/gesture support? Done. How about window dynamics? Covered. And input from mouse, keyboard and on-screen keyboard? Yes.

We are happy to share with you this new feature on our fully secure, easily deployable display server. Ubuntu Frame now provides an on-screen keyboard for your application and any other external service that you are running. 

An IoT on-screen keyboard with enterprise features

To solve these challenges for our developers, we didn’t have to look too far. We promote open source, we contribute to open source and we work with open source. To create Ubuntu Frame OSK, we selected Squeekboard, an on-screen keyboard built by Purism for the Librem 5. We chose Squeekboard because it’s modern, stable, and actively maintained. Maintainers and contributors also made Squeekboard really easy to work with, plus it supports a large and growing number of languages and layouts, such as US, German, Russian, Arabic, and many more.

As such, Squeekboard was the best choice, and by snapping it and integrating it with Ubuntu Frame, it is now ready to be used out-of-the-box.  

Do more with Ubuntu Frame’s OSK 

This integration with Ubuntu Frame opens many doors for developers. First, it is really easy to use. You just need to develop your app with a supported framework (GTK3, Flutter, Qt, etc.), connect it to Ubuntu Frame, and the OSK will be enabled by default if you are using Ubuntu Core. This means less code to manage, fewer opportunities for bugs, and fewer vulnerabilities in untried code. What do you get? More time for developing the content of the display, and a reliable and secure OSK for your users. Plus, the OSK looks good on all screen sizes and does not require significant CPU, memory, or graphics resources.

Security is also paramount for these devices. In addition to protecting apps from each other, Snap confinement allows us to give special privileges to specific Snaps. Therefore, by default, Ubuntu Frame only accepts virtual keyboard input to come from Ubuntu Frame OSK. Even if a malicious or misbehaving code gets into your Ubuntu Frame device, it would be unable to use the OSK interface to send fake input to other apps (like keystroke logging). This is something desktop-based applications are generally vulnerable to. 

For the final user of your graphic application, this integration also has several benefits. While your device will be running your main application, it could also use external services as with the example given with the authentication system. For the user, having the same device but getting 2 or more sets of OSK just degrades the overall UI/UX. A uniform UI/UX experience between different applications should be the goal. Having an integrated OSK provides this functionality. 

Try it today! 

Follow the next link to learn more about Ubuntu Frame’s OSK

If you are new to Ubuntu Frame, check our website and this easy tutorial for creating your web kiosk

Internet of Things

From home control to drones, robots and industrial systems, Ubuntu Core and Snaps provide robust security, app stores and reliable updates for all your IoT devices.

Newsletter signup

Get the latest Ubuntu news and updates in your inbox.

By submitting this form, I confirm that I have read and agree to Canonical's Privacy Policy.

Related posts

The journey from mir-kiosk to Ubuntu Frame

We now deliver Ubuntu Frame, a display server for embedded devices that makes it easy for developers to deploy their graphics applications on Linux. Ubuntu...

Mir 2.7 brings idle timeout and OSK support for Qt applications

We are glad to announce the release of Mir 2.7 — our open source and secure display server for building Wayland-based shells. Mir provides a set of libraries...

Mir 2.5, incorporating new features to improve the development of embedded graphic applications

With another release of Mir, we have prepared a new blog with the a roundup of the product’s newest features. Mir is our flexible display server that provides...