The Ibus typing booster is a predictive text input method. The project goal is to empower existing keyboard layouts with predictions to allow users to boost their typing speed without compromising on data accuracy. This project started in 2010 with an first focus on only a few languages. Over the years, many improvements and innovative features were added.
Ibus typing booster supports almost all languages except Chinese, Japanese, Albanian, and a few others. This article explains various features and how it helps you master efficient typing.
Installing Ibus
Ibus typing booster is installed by default. If it is not available on your system, install it with this command.
$ sudo dnf install ibus-typing-booster
It uses the Hunspell dictionaries in the background for predictions. While it is not mandatory, it may help to install the Hunspell dictionaries for your language. However, even if a dictionary is not available, you still get predictions from your own typed words. You can install the Hunspell dictionaries as follows.
$ sudo dnf install hunspell-<langcode>
Here,
is an ISO 639-1/2/3 code. For example,
represents English and
represents French.
Enabling input
You can see an example below about how to enable input with the typing booster for your preferred language. In this example, we add the Hindi typing booster to our input selection.
Key features
Predictions
Based on partial input, word predictions are listed in a lookup table from dictionaries. These words are improved over time by frequency of use. As users use the Ibus typing booster more, its predictions improve. Words not available in dictionaries are automatically added to a local user dictionary. Users train it with their own custom word list or additional dictionaries. In the case of a wrongly typed word being added to the local dictionary, it can be deleted it with
.
If a dictionary is not installed, the user gets a message in the lookup table.
/usr/share/myspell/<langcode>.doc not found. Please install hunspell dictionary.
If you receive this message, install the Hunspell dictionaries and restart Ibus by typing
in a terminal window.
Multilingual input
Out of all world languages, English is third in the number of first language speakers. Around a half-billion speakers use English as a second language. This means many speakers switch between English and their native language keyboard layout. This is problematic when your native language uses a script other than Latin. For example, Hindi uses the Devanagari script type.
The multilingual feature of Ibus improves this issue. With a single layout, the user types two different languages. To enable multilingual mode, go to the setup options and enable “Add direct input”.
Unicode emoji
It is also possible for the Ibus typing booster to ease typing emoji characters. In the settings menu, enable Unicode emoji input from the dropdown options. Alternatively, you can use the shortcut
. Typing the word “smile” shows the corresponding emoji in the lookup table.
Since the Ibus typing booster is multilingual, even if you type the emoji name in a non-English language, the corresponding emoji will appear.
Please note that the Unicode emoji support is enabled by default. It can slow down your typing experience, since it searches through all emoji data. You can enable and disable emoji support when you need it with the
shortcut.
We want your feedback!
Mike Fabian is doing great work on the Ibus typing booster and continually tries to improve it for users. The project has more detailed documentation about its features on its website.
If you have ideas to improve the typing booster or find any bugs, feel free to file a bug or RFE.
alessandro
Great software and great article, thanks. Now I’m using it in Firefox to reply. ?
Rodrigo de Araujo
Excellent as an accessibility feature for people with reduced mobility and yet a useful tool for the general public.
luca247
that’s a nice thing but been wondering if there is a method to remove the emoji picket bundled with it…at least from the app grid…
Entilore
I was looking for such a solution since longtime. Very happy to see it exists.
gbg
Thank you
Enrique Betancourt
Is a nice program but definitely not for me. For me was uncomfortable sometimes I have to hit twice the space bar in order to write a word that is already written the way I want to. Also I felt that the writing speed was slower.
I write a lot of scripts, for me what works are some vim plugins that work in a very similar way, you provide a dictionary and all the possible words are displayed .
I think that is a good start ,I like to see how this input method evolves 😀
Mike FABIAN
Enrique Betancourt> I have to hit twice the space bar in order to
Enrique Betancourt> write a word that is already written the way I
Enrique Betancourt> want to.
Maybe you are using Qt? Then it could be that you are hit by this problem:
https://github.com/mike-fabian/ibus-typing-booster/issues/12
For Qt4 there is the workaround to use XIM:
export QT_IM_MODULE=xim
export XMODIFIERS=@im=ibus
But Qt5 does not support XIM anymore.
This problem is caused by the broken implementation of forward_key_event() in ibus-qt.
I am thinking what kind of workaround for Qt5 I could do until this
problem is fixed in ibus-qt…
Mike FABIAN
Enrique Betancourt> I have to hit twice the space bar in order to
Enrique Betancourt> write a word that is already written the way I
Enrique Betancourt> want to.
Maybe you are using Qt? Then it could be that you are hit by this problem:
https://github.com/mike-fabian/ibus-typing-booster/issues/12
For Qt4 there is the workaround to use XIM:
export QT_IM_MODULE=xim
export XMODIFIERS=@im=ibus
But Qt5 does not support XIM anymore.
This problem is caused by the broken implementation of forward_key_event() in ibus-qt.
I am thinking what kind of workaround for Qt5 I could do until this
problem is fixed in ibus-qt…
mfabian
You write that you need to hit the space bar twice.
Maybe you are using Qt? Then it could be that you are hit by this problem:
https://github.com/mike-fabian/ibus-typing-booster/issues/12
For Qt4 there is the workaround to use XIM:
export QT_IM_MODULE=xim
export XMODIFIERS=@im=ibus
But Qt5 does not support XIM anymore.
This problem is caused by the broken implementation of forward_key_event() in ibus-qt.
I am thinking what kind of workaround for Qt5 I could do until this
problem is fixed in ibus-qt…
mfabian
You write that you need to hit the space bar twice.
Maybe you are using Qt? Then it could be that you are hit by this problem:
https://github.com/mike-fabian/ibus-typing-booster/issues/12
For Qt4 there is the workaround to use XIM:
export QT_IM_MODULE=xim
export XMODIFIERS=@im=ibus
But Qt5 does not support XIM anymore.
This problem is caused by the broken implementation of forward_key_event() in ibus-qt.
I am thinking what kind of workaround for Qt5 I could do until this
problem is fixed in ibus-qt…
mfabian
Why do you need to hit the space bar twice? Is this in Qt? You could be hit by the problem
that forward_key_event() is not correctly implemented in ibus-qt. That is a Qt bug.
For Qt4 one can use XIM as a workaround:
export QT_IM_MODULE=xim
export XMODIFIERS=@im=ibus
But Qt5 does not support XIM anymore.
I am thinking what kind of workaround for Qt5 I could do until this
problem is fixed in ibus-qt…
Mike FABIAN
You write that you need to hit the space bar twice.
Maybe you are using Qt? Then it could be that you are hit by this problem:
https://github.com/mike-fabian/ibus-typing-booster/issues/12
For Qt4 there is the workaround to use XIM:
export QT_IM_MODULE=xim
export XMODIFIERS=@im=ibus
But Qt5 does not support XIM anymore.
This problem is caused by the broken implementation of forward_key_event() in ibus-qt.
I am thinking what kind of workaround for Qt5 I could do until this
problem is fixed in ibus-qt…
mfabian
You write that you need to hit the space bar twice.
Maybe you are using Qt? Then it could be that you are hit by this problem:
https://github.com/mike-fabian/ibus-typing-booster/issues/12
For Qt4 there is the workaround to use XIM:
export QT_IM_MODULE=xim
export XMODIFIERS=@im=ibus
But Qt5 does not support XIM anymore.
This problem is caused by the broken implementation of forward_key_event() in ibus-qt.
I am thinking what kind of workaround for Qt5 I could do until this
problem is fixed in ibus-qt…
I have sent this answer several times already. But it just doesn’t seem
to appear …
mfabian
You write that you need to hit the space bar twice.
Maybe you are using Qt? Then it could be that you are hit by this problem:
https://github.com/mike-fabian/ibus-typing-booster/issues/12
mfabian
For Qt4 there is the workaround to use XIM:
export QT_IM_MODULE=xim
export XMODIFIERS=@im=ibus
But Qt5 does not support XIM anymore.
This problem is caused by the broken implementation of forward_key_event() in ibus-qt.
I am thinking what kind of workaround for Qt5 I could do until this
problem is fixed in ibus-qt…
Enrique Betancourt
That is exactly my problem. Thanks!
Even though i’ll stick with writing the old way I want to improve my writing skills, I think is faster that way.
Mike FABIAN
The real fix for that problem must be done in Qt but I will add an option for a workaround for Qt
in the next release (1.5.25). I’ll release that in the next few days.
That workaround will break it for old X11 programs like xterm, so it has to be an option
and the user can then decide what is more important for him, Qt programs or
classic X11 programs like xterm.
As soon as this is fixed in Qt, I an remove that option for the workaround again.
luca247
good thing but does anyone know how to remove the emoji picker?or at least to hide it from the app grid?
mfabian
Version 1.5.25, available here: https://bodhi.fedoraproject.org/updates/FEDORA-2017-9f54a93969
has the emoji-picker in a sub-package which does not have to be installed.
Toan
Hello,
I have ibus-typing-booster and hunspell-en dictionary already installed on my fedora 25, but could not found any input method containg “…(typing booster)”
mfabian
ibus list-engine | grep booster
does not list anything?
Ade
Same here – removed and re-installed, still cant find it under Region & Language
ibus list-engine | grep booster does list them however
Mike FABIAN
If ibus list-engine | grep booster lists them, it should surely work. Does it work if you follow
these instructions?:
http://mike-fabian.github.io/ibus-typing-booster/documentation.html#adding-gnome
Ed Greshko
Looks good and works well.
One minor issue with the article is that it uses an animated GIF. It will loop if you are using Firefox as your browser. However, if you are using Chrome it will run only once and leave you with a blank space. It runs rather quickly, so you may never see the GIF if you take your time scrolling through the article.
Meh
Is it an offline prediction or does it run online? And what about the data statistics? Are they shared with iBus or they are strictly maintained in the local machine?
mfabian
Offline. To predict your input, it learns from stuff you typed before. It saves words you type
together with their context to a sqlite database here:
~/.local/share/ibus-typing-booster/user.db
This is not shared with other ibus-engines. All language variants of ibus-typing-booster save
to the same user.db though, so it is share among all language variants of ibus-typing-booster.
You can train ibus-typing-booster also by feeding it plain text files which contain typical input
for you (this is in the setup tool).
When ibus-typing-booster has not yet learned enough data from typing or from text files, it still
completes using the wordlists from the hunspell dictionaries. But this is far less good than
the predictions after learning for a while from your input. The hunspell dictionaries are simple
word lists without any frequency information how common the words are and especially without
any context. From your input, ibus-typing-booster learns together with the context, i.e. it
gathers statistics how often you type say “going” after typing “I am” for example.
mfabian
It is offline. It stores the user data it gathers in ~/.local/share/ibus-typing-booster/user.db
(A sqlite3 database). This data is shared among all language variants of ibus-typing-booster but
not with other ibus engines
mfabian
Offline.
The data is shared with all language variants of ibus-typing-booster but not with other ibus engines.
The statistics gathered from user input is stored in ~/.local/share/ibus-typing-booster/user.db
(a sqlite3 database).
Nirvin M
This is really excellent piece of tool .But it is too slow on my PC.
mfabian
Emoji mode makes it a bit slow. Try switching off emoji-mode and switch it on only
when you really need it:
http://mike-fabian.github.io/ibus-typing-booster/documentation.html#emoji-mode-quick-toogle
Mik
Is it possible to install ibus booster on Fedora24 with Cinnamon ? Thx
mfabian
Yes, that should work.
Heiko
The GDM screen-shield shows my password if type boosting is active. This is IMHO a huge security issue
mfabian
I cannot reproduce this. For me input methods are not active on the GDM log in screen.
phocean
Unless I am missing something, I don’t like the way to navigate between candidates.
Why isn’t the tab key cycling around candidates ? Like, for instance, with other iBus layouts (Chinese, Japanese) ?
Enrique Betancourt
I think the way to navigate around candidates is pressing SUPER (windows key) + Space bar. This command will change around all your input methods that you have previously added from Configuration –> Regions/Language.
mfabian
No, Super+Space changes to the next input method, not to the next candidate, that is something different.
Mike FABIAN
In the long run I plan to make the key bindings configurable.
Most Japanese input methods don’t use Tab to cycle through the candidates, by the way.
The Japanese input method ibus-kkc uses Tab to commit the selected candidate.
In case of ibus-typing-booster, I find the Tab key more useful to send to the application.
For example, if you type “firef” followed by Tab, the Tab commits the “firef” and a Tab is sent
to the application, so if the application is bash, this might complete to “firefox”
Piotr
Nice feature, unfortunately it is really slow and the popup sometimes covers the words I type. When I press a key there seems to be a delay before the letter show on the screen (this is on a 5 month old high end laptop). The popup shows too late, it is always faster to just type the word than to wait on the popup.
This might be useful for on screen keyboards on touch devices.
mfabian
Try to switch the emoji mode off. The emoji mode slows things down.
http://mike-fabian.github.io/ibus-typing-booster/documentation.html#emoji-mode-quick-toogle
Piotr
Yes that makes it much more responsive.