I would like to be able to input tone alongside the pronunciation in order to input Chinese characters on Linux (e.g. ta1 = 他, ta2 = 蹹, ta3 = 塔, ta4 = 踏).

Most modern IMEs do not allow this input method, in order to type any of these characters you would simply type "ta", and then choose the desired character from a list. However, when learning Chinese, it is useful to be able to input the tone, so that when you are typing Chinese, you have some degree of confirmation that you are getting the tones right.

I solved this with my own research, but I wanted to share my solution with other people who might have the same problem.

Note that there are many questions on here about outputting pinyin with toned input (e.g. ta1 = tā) on Linux, and some about outputting Chinese characters with toned input on other operating systems, but I don't think there are any about outputting Chinese characters with toned input on Linux (though I may be wrong).


Try using Terra-Pinyin (地球拼音) which runs on rime (中州韻) which runs on either ibus or fcitx. It allows you to input using "-" to represent 1st tone, "/" to represent 2nd tone, ">" to represent 3rd tone, "\" to represent 4th tone.

I honestly don't remember the entire install process, but I give an outline as best as I can remember (but I may be wrong in some places). I use Ubuntu 18, so it may be different for you.

Open Language Support, click Install/Remove Languages, add Chinese (Simplified) and/or Chinese (Traditional).

Open Input Method, press OK, Yes, choose ibus (if it isn't already selected), press OK.

Open the terminal, run sudo apt-get install ibus-rime

Open settings, go to Language and Region, under Input Sources click the plus sign, click Chinese (China), click Chinese (Rime), then click add.

Restart your computer.

After restarting and logging in, in the top right, there should be a button that lets you swap between English and Chinese (Rime) input. If you switch to Chinese (Rime), you should be able to type in Chinese, using Luna-Pinyin (朙月拼音) however you will not yet be able to use tones in your input.

You may or may not need to run sudo apt-get install librime-data-terra-pinyin (I'm not sure if it comes preinstalled)

Finally, follow the instructions here to add terra-pinyin to Rime: https://wiki.archlinux.org/index.php/Rime

To summarize those instructions:

Go to home. Press ctrl-H to show hidden files. go into .config, then into ibus, then into rime.

Create the file default.custom.yaml

Inside it, write

    - schema: terra_pinyin

(including the indentation), then save the file.

In the rime menu in the top right, switch to Chinese (Rime), then 3 options should appear. Press the second option (this will put your changes into effect).

Finally, you should have Terra-Pinyin (地球拼音) running.

Typing "ta-" will give you a bunch of first tone choices, typing "ta/" will give you a bunch of second tone choices, typing ta< will give you a bunch of third tone choices and typing "ta\" will give you a bunch of fourth tone choices.

  • Good to know! 👍 Thanks for sharing! I used Zhuyin for a while for the exact same reason (wanted to reinforce tones). Now I mostly use Cangjie.
    – YQ002lc2
    Oct 21 at 5:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.