Home About Me

I Left Sogou for Rime, Then Spent Weeks Trying Three Schemas

The reason was simple: Sogou Pinyin kept refusing to put the phrase I wanted at the front. Type python, and it would offer a crude phrase I would never use on purpose. Most people have had some version of this experience: you want A, the IME insists on B, and B is a combination you would not touch in a lifetime. You delete it, correct it, and a couple of days later it is back, as if your feedback went straight into a void. The ads can be turned off, but the whole thing had worn out my patience.

So I started looking for a clean, customizable input method. The name that kept coming up was Rime, the input method engine also known as Zhongzhou Yun. On Windows, the front end is called Weasel. I decided to give it a try.

annoyed face

Rime

As the name suggests, Rime is an engine, or a framework, rather than a finished IME. It ships without a schema or a dictionary; you install those yourself. The upside is that the pinyin scheme, dictionaries, number of candidates, and even the skin and color scheme are all yours to decide. The downside is the fiddling: you have to find a schema and dictionaries and put them in the right place. People with a programming background will probably get the hang of it faster.

Fortunately, the community has produced quite a few mature pinyin schemas. I have used three so far.

Rime official site: https://rime.im/

Rime Ice

The first one I installed was Rime Ice (rime-ice). Its author describes it as 'feature-complete, with a good dictionary experience and long-term updates.' It is essentially a full configuration that works out of the box, with full pinyin and common double-pinyin layouts, and a dictionary that is maintained over time. To be honest, moving from Sogou to Rime Ice already felt like a real step up: candidate accuracy was much better, and there were none of those random recommendations.

Installation is simple: drop the files into the user directory, redeploy, and it works. It has plenty of features—mixed Chinese-English input, character decomposition lookup, Emoji, date, time, and lunar calendar. The dictionary draws on the Modern Chinese Dictionary, Dictionary of Synonyms, Xinhua Dictionary of Idioms, and open-source dictionaries such as Tsinghua's open-source lexicon and the Modern Chinese Common Word List.

After using it for a while, my overall impression was 'stable.' Occasionally the word frequency felt slightly off, and the ordering of some everyday words did not match my habits. That is personal, though, not a fatal flaw. I did not switch because it was bad; I simply wanted to try something else. That is the nature of tinkering—how else do you find what suits you best?

Wanxiang Pinyin

The second one I tried was Wanxiang Pinyin (rime_wanxiang). Its biggest distinguishing feature is that the entire dictionary carries tone marks: every character's pinyin is marked with its tone. Combined with a grammar model trained by the developer, sentence-level input should, in theory, be more accurate. The dictionary was filtered with AI and corpus data, and the word-frequency tuning is indeed precise; whole-sentence input feels improved.

It is also feature-rich: a calculator, super annotations, symbol wrapping, dynamic timestamps, a super symbol library... The Lua extensions are used to the fullest. It supports various auxiliary codes such as Xiaohe and Ziranma, and comes in Standard and Pro versions. I did not want to go further down the rabbit hole, so I chose Standard, which is more than enough for an ordinary user.

But the more features there are, the more complicated configuration becomes. The schema file has many options, and the header requires you to choose an input schema, an auxiliary code scheme, and annotation display logic. For someone who does not know Rime configuration well, staring at a pile of YAML can be daunting.

thinking

I did not use many of those features, but I have to say the dictionary is genuinely good—especially since it includes medical and pharmaceutical dictionaries, which happen to be relevant to my work. So I used it for quite a long time. Recently, though, input became less smooth in certain situations. I am not sure why; I assumed it was lag from the grammar model running, and started using Mint Pinyin.

Mint Pinyin

I am currently trying Mint Pinyin (oh-my-rime).

Mint input method documentation: https://www.mintimate.cc/

Mint focuses on full pinyin, while also supporting Earth Pinyin, Xiaohe double pinyin, 98 Wubi, and others. Like the previous two, it works across platforms: Windows, macOS, Linux, iOS (Cang input method), and Android (Tongwen and Little Penguin). Its dictionary was originally based on Rime Ice, and after July 2025 it switched to the Wanxiang dictionary, so it combines strengths from both.

My feeling so far is 'just right': not as plain as Rime Ice, not as heavy as Wanxiang. I have used it steadily for two days, and the most obvious change is that typing feels smoother, with fewer stops to choose a candidate. Long sentences are not as accurate as Wanxiang, probably because it lacks a grammar model. The documentation says Mint can also use Wanxiang's grammar model with a settings change; I have just made that change and am trying it now.

Notes from the tinkering

A few points for anyone thinking of getting into Rime:

The configuration files look intimidating, but they are just key-value pairs. Change them accordingly; if you break something, delete it and start over. Before each change, back up the user directory (%APPDATA%\Rime) so you can roll back at any time.

Do not edit the original schema file directly. Use a xxx.custom.yaml patch instead, so your custom settings will not be overwritten when the schema updates.

Update the dictionary manually from time to time. Rime does not connect to the internet, and the dictionary will not update itself. Pulling the latest dictionary every so often improves the experience.

Also, get basic pinyin working smoothly before messing with reverse lookup, auxiliary codes, and double pinyin. Do not turn everything on at once; it is easy to confuse yourself.

If you want the preedit inline like Sogou, add a line after the patch in default.custom.yaml. I am used to this style:

patch:
  "style/inline_preedit": input

Loose ends

Tinkering with an input method is genuinely time-consuming. Sogou's personal dictionary can be exported, but I was afraid it would pollute the new dictionary, so starting from a blank slate is actually a good thing. It is just a bit annoying when typing people's names in a chat.

Do not expect too much from Rime. It is maintained by enthusiasts in their spare time, out of love, and keeping it maintained at all is already good. I may go back to Wanxiang later—the professional dictionary is convenient—but I would need to figure out why input lags in certain situations.

I almost forgot: I still have not figured out how to set up paired punctuation. If anyone knows, please tell me.

flower

If you share the same hobby, let's compare notes.