Master efficient typing with Ibus typing booster

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,

langcode

is an ISO 639-1/2/3 code. For example,

 en

represents English and

fr

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.

Selecting another language input with the Ibus typing booster

How to select another language input to add the Ibus typing booster as an option

Selecting Hindi typing booster IME from Gnome panel

Selecting keymap for Hindi

From the dropdown, you can select either Inscript or Itrans

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

Ctrl + &lt;entry number in lookup table&gt;

.

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

ibus restart

in a terminal window.

Predictions for Hindi

Predictions for Hindi

Predictions for English

Predictions for English

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.

Multilingual input

Multilingual input by selecting Hindi.

Multilingual input change text by ctr+up key

Control+Up key changes script for preedit text.

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

AltGr + F6

. 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

AltGr + F6

shortcut.

Emoji for Smile word

Emoji for Smile word on last line.

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.

Save

For Developers Using Software

41 Comments

  1. Great software and great article, thanks. Now I’m using it in Firefox to reply. ?

  2. Rodrigo de Araujo

    Excellent as an accessibility feature for people with reduced mobility and yet a useful tool for the general public.

  3. 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…

  4. Entilore

    I was looking for such a solution since longtime. Very happy to see it exists.

  5. gbg

    Thank you

  6. 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…

    • 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…

    • 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…

    • 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…

    • 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 …

    • 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…

      • 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.

  7. luca247

    good thing but does anyone know how to remove the emoji picker?or at least to hide it from the app grid?

  8. 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)”

  9. 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.

  10. 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?

    • 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.

    • 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

    • 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).

  11. Nirvin M

    This is really excellent piece of tool .But it is too slow on my PC.

  12. Mik

    Is it possible to install ibus booster on Fedora24 with Cinnamon ? Thx

  13. Heiko

    The GDM screen-shield shows my password if type boosting is active. This is IMHO a huge security issue

    • I cannot reproduce this. For me input methods are not active on the GDM log in screen.

  14. 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) ?

    • 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.

      • 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”

  15. 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.

Comments are Closed

The opinions expressed on this website are those of each author, not of the author's employer or of Red Hat. Fedora Magazine aspires to publish all content under a Creative Commons license but may not be able to do so in all cases. You are responsible for ensuring that you have the necessary permission to reuse any work on this site. The Fedora logo is a trademark of Red Hat, Inc. Terms and Conditions