I just started using a desktop system using Linux Mint 20 Cinnamon, and wanted to make sure that keyboard input methods worked for Thai and Korean. This took me down a long road, consulting several blog articles, questions, and answers, so I decided to document it to save others (and future me!) this effort.
I've also briefly tested that this procedure works with Arabic, French, Hebrew, Russian, and Swedish, so I'm fairly confident that it will work for any supported language and input method.
Below are the instructions for Linux Mint Cinnamon; I believe they will be identical for Mate.
Language Support
- Press the {Super} key, start typing
Languages
, and select the "Languages" application. - Click "Install/Remove Languages" at the bottom right.
- If requested, enter your login password to grant superuser rights to "Languages".
For each language you want to add:
- Click "Add"
- Start typing the name of the language, select the language you want, and then click the "Install" button. There may not be any confirmation that it has completed.
- Find the newly installed language in the list (again, you can start to type it to find it), select it, and click the "Install Language Packs" button.
- Confirm any confirmation dialogs as necessary.
If...
The remainder of work to be done involves the IBus input method framework.
If at any point during this procedure, you see a dialog saying "The IBus daemon is not running. Do you wish to start it?", click "Yes".
Also, if you encounter a dialog saying "IBus has been started! If you cannot use IBus, add the following lines...", just click OK. I have seen this happen but have never needed the information displayed in the dialog.
Install IBus
Install the IBus keyboard input management framework and the Hangul (native Korean alphabet) support:
sudo apt install -y ibus-m17n ibus-hangul
Add IBus to the Startup Applications List
Press the {Super} (Windows/Mac) key, type startup
and select "Startup Applications".
- Click the "+" button.
- Select "Custom command".
- For Name:
IBus
- For Command:
ibus-daemon
- Click "Add".
Configure IBus
Press the {Super} key and type ibus
. Select "IBus Preferences".
Add a keyboard shortcut
Cinnamon uses {Super}{Space} to navigate panel entries, and I have not found a way to disable that, so I assign another shortcut for language switching, {Ctrl}{Super}{Alt}-k ("k" for keyboard). Here's how:
On the "General" tab:
- click the button labelled "..." to the right of the "Next Input Method" text field
- with "{Super}" selected, click the "Delete" button
- Replace any text in the "Key code" input field with "k"
- check "Control", "Alt", and "Super"
- click the "Add" button
- click the "OK" button
You may not need to do this if you are using Mate and the {Super}{Space} key combination is available for IBus to use.
Also, I found that {Ctrl}{Super}{Alt}-k did not work when pressed while certain input methods were active. I briefly researched how to disable Cinnamon's use of {Super}{Space} but could not find an answer. Anyone? Assigning multiple key combinations to this action is supported, so that is another approach.
Add input methods
On the "Input Method" tab, click "Add".
For each desired input method, click your desired language, or if it is not listed (as with Korean and Thai), click the three vertical dots entry, click the text field to give it focus, and type the language into the text field, then select the entry below the language name that you want. In the case of Korean, there is only one ("Hangul"). Click "Add".
Reboot and Test
Reboot the system. (If you want to save time, you could log out and then in again instead of rebooting, but that will not verify that IBus was started on system startup.)
Test switching input methods with {Ctrl}{Super}{Alt}-k, and typing text into an application that can accept it.
The Language Panel Applet
There are two methods for invoking input method selection:
- the keyboard shortcut ({Ctrl}{Super}{Alt}-k, {Super}{Space}, etc.)
- the panel applet
The panel applet is on the system panel, and will display the currently selected language. Clicking it will display a list of languages from which you can select a different one. This applet can be used as a fallback mechanism for changing language if the keyboard shortcut does not work.
Unfortunately, the text on this indicator is displayed in a dark blue text that is difficult to see against the black background, so it may take some effort to find. The Korean language setting deals with this by showing a colorful icon instead of text.
Cautions
Invoking Input Method Selection
As mentioned, if the keyboard shortcut for selecting an input method does not work, remember the panel applet and use that instead.
Know Your Input Methods
- The Korean input method uses a {Shift}{Space} toggle key combination to toggle between Hangul and English character input. When you switch into Korean input mode from another language, it will initially be in English mode, so it may not be obvious that you have successfully switched to Korean. Press {Shift}{Space} to toggle to Hangul input mode.
- If you're new to a language, there may be things to learn about that language's computer input methods that are not taught in school or otherwise obvious. If the input does not appear to work correctly, make sure you're not overlooking a feature of that input method.
- Some languages have many input methods from which to choose, and some may be much better than others for your purposes. For example, some are Dvorak layouts of interest only to the hardiest of souls.
Language-Specific Configuration
There may be language specific requirements with other languages like the need to install the ibus-hangul package for Korean.
You're done!
Thanks for reading, and let me know in a comment on the dev.to article page if you have any corrections or improvements to offer.
Top comments (3)
Hello,
I did all of the above for both french and russian (dell inspiron desktop running Mint 20 and Cinnamon) after sudo apt install -y ibus-m17n ibus-french
I get a message saying "E: Unable to locate package ibus-french"
Anybody got any hints ? I have tried searching for things called french but cannot find them. Tried again for russian and got the same result.
Anything else I should be reading to sort this out ? Tried googling but couldn't find anything that helped.
Bill
I found a work around for the french so thats fixed now, but the russian is still unsolved.
For the french it is relatively easy, acutes graves circumflexes and cedillas and they can all be found in an add-on app for Chrome called "Special Characters - Click and Paste"
Got the Russian working - used the standard options in the Mint Program Menu
Keyboard -Layout -Options- Switching to another layout