How to Set Up a Virtual Keyboard in Linux

Virtual keyboards come in handy in many situations, for example, when your physical keyboard becomes unusable or if it’s difficult for you to type using a hardware keyboard. But one of the most important uses is that it lets you bypass hardware key loggers, something which should be taken care of especially when entering sensitive information like bank account details, login credentials, and more on a public computer.

For Linux, there are many virtual keyboards available. In this article, we will discuss one of them – Florence. The article focuses on its installation and usage, as well as customization options the keyboard provides.

NOTE – all the examples used in this article are created/tested on Ubuntu 14.04.

Florence is an extensible scalable virtual keyboard which is primarily intended to be used with the GNOME desktop, although it can be used on any desktop environment by using the --no-gnome option.

Users of Debian-based systems, like Ubuntu, can easily download and install the Florence virtual keyboard using the following command:

sudo apt-get install florence

Alternatively, you can also download its source code and install manually. To enable the keyboard, just run the following command:


Once you enable the virtual keyboard, it appears on your screen, always on the top. Using the keyboard is quite easy: you can use your mouse pointer to click on its keys. For example, here is a screen shot from when I was using it to type a Google search query:


The Florence keyboard offers a lot of customization options that can be accessed by clicking the Settings key (highlighted in blue colour) on the keyboard:


As clear from the screen shot above, there are 4 types of settings available: Style, Window, Behaviour, and Layout.

Style settings

The default settings that show up when you first open the settings window are Style settings.

The “shape” sub-settings let you change the shape of keys on the keyboard. The “colors” sub-settings let you change normal key background colour, labels and symbols colour, labels and symbols outline colour, activated key background colour, latched keys background colour, and key with mouse over background colour, respectively.

Through “focus zoom,” you can change the focus of a selected key. Here is an example of an increased focus:


Finally, the last two sub-settings let you enable/disable sound feedback and use system font, respectively.

Window settings

Next up are “window” settings that are divided into two parts: “Features” and “Opacity.”


While the former lets you tweak features related to the keyboard window – for example, whether it should be resizeable, always on top, and more – the latter, as the name suggests, lets you change the opacity of the keyboard window.

For example, here is a screen shot from when the keyboard was made transparent with sixty percent opacity:


Behaviour settings

Here, you can choose the input method. Available options are “Mouse Touchscreen,” “Timer,” and “Ramble.”


Here is an explanation of each option:

“Mouse” is the default input method and is very easy to use and understand – just click on the key with a mouse button to press it, and release the mouse button to release the key. The “Touch” input method is adapted for touch screen input.

The next method is the “Timer” method which you can use in case you are unable to use a button. Just point at a key with the pointer and a timer is triggered. When the timer expires, the key is pressed and immediately released. The timer is cancelled if the pointer leaves the key. Note: you can still press a mouse button to activate the key if you have one available.

The last method is the “Ramble” method. Like the timer method, the ramble method also does not require a button. This method can be faster than the timer method but requires dexterity and training to be used efficiently. The ramble method can be passive – no button necessary, or active – deaf while the pointer button is not pressed.

Note – refer to Florence’s official documentation for more details.

In addition, Behaviour settings also provide Auto hide options.

Layout settings

Here you can select keyboard layouts. Available options are “Standard,” “Compact,” “Alternative,” and “Alternative compact,” as well as “Extensions” that let you include “Function” and “Numeric,” as well as “Florence” keys.

Needless to say, each layout is different from the other. For example, here is a screen shot of the “Alternative keyboard” with all extensions selected:


While installation and setting up a virtual keyboard may sound like complicated work, it’s surprising easily when dealing with Florence. Coupled with the fact that it provides a host of customization options, it makes the virtual keyboard worth giving a try. The only downside that I noticed while using Florence is that it’s a bit unstable – it crashed a couple of times.

Have you ever used Florence or any other virtual keyboard on Linux? How was your experience? Share your thoughts in the comments below.