How To Enable Predictive Typing On Your Linux Desktop With ibus-typing-booster

ibus-typing-booster

ibus-typing-booster is an IBus plugin that adds offline predictive typing to the Linux desktop, to speed up typing. It's useful when typing in a foreign language, typing in a complex script, as well as an accessibility feature for those with reduced mobility (and more).

This IBus plugin offers context sensitive completions, and it can also learn from user input. Its word predictions improve the more you type. In case some words are not available in dictionaries, this tool automatically adds them to a local user dictionary. ibus-typing-booster can even be trained by supplying files containing your own custom words.

In case you add a mistyped word to the dictionary, you can delete it by using Ctrl followed by the word's entry number in the lookup table (each word in the word suggestion tooltip / dialog has a number assigned).

This tool also supports more than one dictionary and more than one input method / transliteration in the same time. So you can write text in more than one language without having to switch languages manually.

It's also worth mentioning that ibus-typing-booster can predict unicode symbols and emoji as well. Emojis are disabled by default though, because it slows down ibus-typing-booster in some cases, but you can enable this from the IBus tray (I recommend leaving this off though).

As for supported input methods, it supports all that are supported by libm17n.

With the help of hunspell dictionaries, this tool can also provide not only predictions, but also spellchecking suggestions, no matter what application you're using.

ibus-typing-booster preferences

The tool comes with various options, which can be accessed from the IBus tray, when Typing Booster is selected as the input method. From there you can add dictionaries, enable suggestions using a key (to only show word suggestions when using a key), automatically select the best candidate word, add a text file to learn from, see and change the key bindings, and more.

By default, predictions are shown in a tooltip, but if you prefer inline completion, there's an option for this in the ibus-typing-booster options, as you can see in the screenshot above.

The following instructions will show how to install ibus-typing-booster, hunspell for the languages you want to use, and how to enable this predictive typing IBus plugin.

Install ibus-typing-booster


ibus-typing-booster was initially created for Fedora 15, so it's been in the Fedora (and other Linux distributions) repositories for some time, but it was missing from Debian / Ubuntu until earlier this year when it was added to the repositories.

1. To get started with ibus-typing-booster, you'll need to install it since it's not installed by default:

Debian sid or bullseye / Ubuntu (it was backported to all supported Ubuntu releases) / Linux Mint, etc.:

sudo apt install ibus-typing-booster

Fedora:

sudo dnf install ibus-typing-booster

Arch Linux / Manjaro:

sudo pacman -S ibus-typing-booster

openSUSE Leap 15.1, Leap 15.2 and Tumbleweed:

sudo zypper install ibus-typing-booster

For SUSE SLE-15-SP1, or for newer openSUSE Leap packages, you can use the ibus-typing-booster repository maintained by its developer.

2. It's also recommended installing the hunspell dictionaries for the languages you want to use ibus-typing-booster. 

This is used for predictions (without this, it will only use your typed words) as well as spellchecking. Use your Linux distribution's package manager to install hunspell-<langcode>, where langcode is an ISO 639-1/2/3 code for the language you want to install, e.g. hunspell-en-us for American English, hunspell-ru for Russian, and so on (so to install it, you'd use sudo apt install hunspell-en-us on Debian/Ubuntu, sudo dnf install hunspell-en-us on Fedora, etc.).

3. Logout / relogin (restarting your system also works).

Without this, Typing Booster does not appear as as an available input source.

Enable ibus-typing-booster


For this to work, you'll obviously need to use IBus as the keyboard input method. For example, to check if you're using IBus on a Gnome Shell desktop, open Settings, go to Region & Language, then click on Manage Installed Languages, and on the Language Support window that opens check if IBus is used for Keyboard input method system. On Linux Mint Cinnamon Edition, open System Settings, click on Input Method, and you'll be able to select the input method framework at the top of the window.

Gnome Shell

On Linux distributions using older Gnome Shell versions (e.g. 3.36) you'll need to open Settings, click on Region & Language on the left, then click the + button under Input sources. For newer Gnome Shell versions (e.g. 42 and 43), you'll find this under Settings -> Keyboard, then click the + button under Input Sources.

typing booster input source gnome settings

Next, no matter the Gnome version you're using, click the three vertical dots at the bottom of the Add an Input Source dialog, and in the search box, type booster (screenshot above). You'll only see an "Other" search result - click it and you'll find the Other (Typing Booster) input source. Click it, then click on the Add button.

It's very important to note that with multiple keyboard layouts, when switching to the Typing Booster input method, the keyboard layout used is that one that you had previously (last) selected. This is unless you enable the use of system keyboard layout in the IBus Preferencs (Advanced tab).

You can now switch to the Typing Booster input method from the IBus tray:

ibus tray

Other Gnome3-based desktops

With Linux distributions using a desktop environment other than Gnome Shell, run ibus-setup (IBus Preferences). If a window pops up, saying that ibus-daemon is not already running, asking you if it should be started, click Yes.

In case ibus-daemon is not already running, you'll also need to open ~/.bashrc with a text editor and paste this at the bottom of the file (don't modify anything else):

export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus

In my case, when setting up ibus-typing-booster on Linux Mint 20 Cinnamon edition, this is all I had to do to use IBus (Linux Mint doesn't use it by default), but on other Linux distributions or desktop environments you may also have to run ibus-daemon on startup - you can add it to your startup applications in that case.

Next, let's enable ibus-typing-booster. In the ibus-setup (IBus Preferences) window, click on the Input Method tab, then on Add, and then click on the three vertical dots at the bottom, and search for "Other". Clicking on Other should reveal the Typing Booster input method - click it, then click the Add button.

You can see all these steps in the GIF below:

ibus typing booster cinnamon

You can now switch to the Typing Booster input method from the IBus tray.