Type three languages without switching. Built on RIME, powered by open source.
I speak three languages. I type in three languages. And I was tired of constantly switching input methods.
Chinese IME → Japanese IME → English keyboard → back to Chinese. Repeat hundreds of times a day. Every switch breaks my flow. Every switch costs keystrokes.
So I built rime-snomiao: a unified input method that handles Chinese (Pinyin and Wubi), Japanese (Romaji), and English - all at once, in the same input session.
No switching. No hotkeys. Just type.
If you're multilingual, you know the pain:
Most operating systems treat these as completely separate modes. Want to type a Chinese sentence with a Japanese word? Switch IME. Want to add an English term? Switch again.
Even worse: many proprietary IMEs collect your typing data. Every keystroke sent to some cloud server.
I needed something better.
RIME (Rime Input Method Engine / 中州韻輸入法引擎) is an open-source input method framework. Think of it as a programmable typing engine:
The key insight: RIME doesn't care what language you're typing. It just maps input sequences to output characters based on your configuration.
So I configured it to handle all three languages at once.
In rime-snomiao, you never switch modes. The system recognizes what you're typing:
nihao → 你好 (Chinese Pinyin)
wbig → 大 (Chinese Wubi code)
konnichiwa → こんにちは (Japanese Romaji)
hello → hello (English passthrough)
All in the same input session. The engine uses context and dictionary matching to determine which language you intend.
For Chinese, I combined two input methods:
Wubi (五笔) - A shape-based method where each key represents a component. Fast and precise, but requires memorizing codes.
Pinyin (拼音) - Sound-based input. Easier to learn, but slower due to homophone selection.
With rime-snomiao, you can mix them:
z for Pinyin reverse lookupJapanese input converts Romaji to:
The dictionary includes:
One killer feature: integrated translation lookups.
| Trigger | Function |
|---|---|
| Type English | Get Chinese translation candidates |
| Type English | Get Japanese translation candidates |
| Type Chinese | Get English translation candidates |
Learning vocabulary while you type. No separate dictionary app needed.
Each input mode is defined by a schema:
# snomiao.schema.yaml - The unified schema
schema:
schema_id: snomiao
name: 雪星全能
version: "2024.1"
engine:
processors:
- punctuator
- selector
- navigator
- express_editor
segmentors:
- abc_segmentor
- punct_segmentor
translators:
- punct_translator
- script_translator
- table_translator@wubi
- table_translator@pinyin
- table_translator@japanese
Dictionaries are simple TSV-like YAML:
# japanese.dict.yaml
---
name: japanese
version: "1.0"
sort: by_weight
...
あ a 100
い i 100
う u 100
漢字 kanji 50
日本語 nihongo 80
My Wubi variant includes:
# One command - installs Weasel + configures everything
npx rime-snomiao@latest
Rime/* to %APPDATA%\Rime# Install Squirrel (RIME for macOS)
brew install squirrel --cask
# Clone and configure
git clone https://github.com/snomiao/rime-snomiao
cp -r ./rime-snomiao/Rime/* ~/Library/Rime/
# Deploy from menu bar icon
# Install ibus-rime or fcitx-rime via your package manager
# Then copy configuration to ~/.config/ibus/rime/
After a week of using rime-snomiao:
Before:
After:
| Input | Output | Method |
|---|---|---|
nihao |
你好 | Pinyin |
wbig |
大 | Wubi |
konnichiwa |
こんにちは | Romaji |
hello |
hello | English |
z + pinyin |
Reverse lookup | When in Wubi |
Multilingual Professionals
Language Learners
Privacy-Conscious Users
Wubi Users
Your keyboard is a tool. It should adapt to you, not the other way around.
Switching input methods is a workaround for a limitation that shouldn't exist. If you think in multiple languages, you should type in multiple languages - fluidly, without friction.
RIME makes this possible. rime-snomiao is my configuration for it.
Download: github.com/snomiao/rime-snomiao
Quick Install: npx rime-snomiao@latest
Community: Telegram @rime_snomiao
Star the repo if it helps you. And let me know what languages you'd like supported next.
Snowstar Miao builds tools for polyglot productivity. CapsLockX for keyboard-first computing, rime-snomiao for multilingual typing.