Find your next open-source project

Search by name, purpose, or keyword — or paste a GitHub repository URL

Gloridust/WowType

Productivity & Utilities

An fcitx5 pinyin input method for Linux with sentence-level typing, typo tolerance, offline voice input and personalization.

645
26
Rust
5 days old

Overview

WowType is an fcitx5 pinyin input method for Linux, aimed at users who want WeChat Input-style conveniences on the desktop. The Rust engine handles whole-sentence input, partial-syllable and abbreviated pinyin, mixed Chinese/English, and common mistakes such as adjacent keys, transposed keys, or one extra or missing key. It learns from selected words and common collocations, with older preferences fading after 30 days.

The project also ships offline voice input, an emoji panel and inline emoji suggestions, date/time and calculator shortcuts, custom phrases, traditional Chinese output, fuzzy pinyin, and seven Shuangpin schemes. Translation mode can send text to an OpenAI-compatible endpoint or run locally with Tencent Hunyuan's HY-MT model through llama.cpp. The candidate bar follows a horizontal, WeChat-like layout, and a GTK 4 settings app changes options immediately.

The README describes the architecture as an fcitx5 plugin (C++) calling a Rust pinyin engine over a C ABI; the engine performs syllable segmentation and beam search over word frequency, a language model, and user habits architecture details.

Getting started

Requirements are Linux x86_64 and fcitx5 5.1 or newer; Ubuntu 22.04's fcitx5 5.0 is not supported. Prebuilt packages exist for Ubuntu 24.04/26.04, Debian 13, Arch Linux and derivatives, Fedora, and NixOS.

On Ubuntu 24.04/26.04, Debian 13, Arch Linux derivatives, or Fedora, run:

curl -fsSL https://raw.githubusercontent.com/Gloridust/WowType/main/install.sh | bash

The script downloads the matching package, verifies it against SHA256SUMS, installs it with the system package manager, may offer to switch from IBus to fcitx5 via im-config, and adds WowType to the fcitx5 input-method list. If the input framework changed or fcitx5 restarted, log out and back in. Then press Ctrl+Space to select WowType and type nihao.

Package installers can be downloaded from Releases; a manual path, including adding WowType through fcitx5-configtool, is documented in the installation guide. For other distributions, build from source following the source-build instructions.

After installing, verify the engine and lexicon:

wowtype-check --lexicon /usr/share/wowtype/lexicon.tsv
wowtype-show --lexicon /usr/share/wowtype/lexicon.tsv nihao

Usage notes

Voice input uses WeChat Input's offline recognition model. The model is not bundled: the first right-Alt press downloads about 100 MB from Tencent's servers into ~/.local/share/wowtype/wtlocal/, and it stays resident using roughly 150 MB of memory. Audio is processed locally, but users who need no external downloads should note this first-use step.

Translation sends text to the service configured in settings; WowType itself does not proxy it. Local translation requires llama.cpp and downloads HY-MT 1.5 1.8B (1.13 GB), whose Hunyuan community license excludes the EU, UK, and South Korea. The password field is not translated.

Chromium/Electron apps such as Chrome, VS Code, Slack, and WeChat must be fully restarted after fcitx5 restarts. On GNOME Wayland, the Input Method Panel extension is recommended for candidate display, and the bundled GNOME theme/voice-overlay extension requires one logout/login. KDE Plasma Wayland users should use wowtype-config --restart-fcitx rather than fcitx5 -r -d.

The code is dual-licensed MIT/Apache-2.0. The bundled rime-ice lexicon data is GPL-3.0, and the word-level language model is CC BY-SA 4.0. A limitations document covers currently unsupported behavior.

HotRepo's take

WowType entered HotRepo's new-project list on 2026-11-10 and 2026-11-11. The recorded growth window for November 10 shows 291 stars gained by the end of that day; the following window shows 214 more by the morning of November 11, reaching 522 stars and 22 forks. These figures describe attention during the project's first days, not adoption or input-quality measurement.

What stands out technically is the scope packed into a young fcitx5 addon: a Rust sentence engine, a C++ plugin, a Python/GTK settings app, local voice recognition, translation, and packaging across five distro families. The README is unusually explicit about installation side effects, restart requirements, and model-download sizes, which gives readers concrete constraints to evaluate before trying it. Its closest comparisons are mature Linux pinyin engines and WeChat Input's behavior; the project positions itself as a lightweight, offline-first alternative with WeChat-like candidate behavior rather than as a drop-in replacement for every desktop setup.

Written by AI from the project's README, updated . The project's own docs are the source of truth.

You might also like

  1. 0c-biggo/0c-imeAn on-device Zhuyin input method for Traditional Chinese that uses a small Transformer to pick characters from context so you can type whole sentences without selection.Go141