WeTypeX is an Fcitx5 input method plugin for the Linux desktop that reuses the official WeChat keyboard runtime for pinyin, cloud candidates, voice input and cross-device clipboard.
- v3.0.1.684-5
- Published at
- 1d ago
- 308
- Stars
- 3,583
- Download
- Synced at
- 23h ago
Latest release
v3.0.1.684-5Nov 12, 2026, 11:42 AMREADME
Project Overview
When you want the WeChat keyboard's dictionary, cloud candidates and device sync on a Linux desktop, WeTypeX provides a compatibility layer that plugs into Fcitx5. It extracts the input core and dictionaries from the official macOS package, runs them behind a Mach-O ABI host that maps Darwin-only interfaces onto Linux, and routes networking through the system TLS and WebSocket stack. The adapter is written in C++, its engine host and account commands run inside a Bubblewrap sandbox, and the combination tested so far is Arch Linux with KDE Plasma on Wayland.
| Item | Value |
|---|---|
| Platform | Linux x86_64 |
| Host | Fcitx5 |
| Input core | Official 2.2.3.657 |
| Language | C++ / CMake |
| License | MIT |
The input core and dictionaries still come from the official package; WeTypeX only fills the layer missing between Linux and Fcitx5.
Supported Hosts
- Fcitx5: loads as a native input method plugin and leaves candidates, preedit, paging and selection to Fcitx5
- Fcitx5 settings page: hotkeys, candidate count, theme and fuzzy pinyin appear there through the
ExternalOptionextension - NixOS: the flake exposes
packages.x86_64-linux.fcitx5-wetypexand adefaultalias - Older framework: glibc 2.31 systems such as Ubuntu 20.04 need Fcitx5 5.0.14+, fcitx5-qt 5.0.10+ and LibIME 1.0.11+
Key Features
- Pinyin input: full pinyin, double pinyin and Wubi share the official 2.2.3.657 core and dictionaries, so candidate order matches the original
- Merged cloud candidates: local and desktop cloud candidates form one list, and new cloud entries are marked separately
- Cross-device clipboard: text and raw PNG images sync both ways after devices pair with the official six-digit code
- Voice input: streams from PipeWire or PulseAudio and reuses the original engine for VAD, recognition and live preedit
- Ask AI: press
=with no active composition to send the text before the cursor, or open a separate answer window - Air transfer: official transfer codes and QR codes over the original Flurry LAN and WXP2P direct or relay channels
- V toolbar:
Vopens calculators, clipboard, phrases and symbols, and a result can be committed straight into the field - WeChat stickers: suggested only inside a recognised WeChat client, using artwork from the installed package
- Dictionary and phrases: stored locally, with the device-group syncer already wired in
Install and Enable
- On Arch Linux run
sudo pacman -U ./fcitx5-wetypex-2.2.3.657-16-x86_64.pkg.tar.zst, or install from the AUR withparu -S fcitx5-wetypex - On Debian or Ubuntu run
sudo apt install ./fcitx5-wetypex_2.2.3.657-16_amd64.deb; glibc 2.31 systems switch to thefcitx5-wetypex-legacypackage - On Fedora run
sudo dnf install ./fcitx5-wetypex-2.2.3.657-16.x86_64.rpm - Run
fcitx5-wetypex-setup --archive /path/to/WeType_2.2.3_657.zipto extract the official runtime, or add--download --accept-upstream-licenseto let the script fetch it - Run
fcitx5-wetypex-setup --checkand confirm bothmanifest.txtandimage.machoexist - Add WeTypeX in the Fcitx5 configuration tool, then run
fcitx5-remote -rto reload it - On NixOS add this flake as
inputs.wetypexand putwetypex.packages.${pkgs.stdenv.hostPlatform.system}.fcitx5-wetypexintoi18n.inputMethod.fcitx5.addons
Shortcuts and Daily Use
- Shift: toggles Chinese and English input, enabled by default
- Ctrl + .: toggles Chinese and English punctuation
- - and =: page up and down while a pinyin composition is active
- V: opens the quick toolbar; press
V,Escor the close button to leave - Ctrl + Win: hold to talk and release to stop;
Ctrl + Win + Shifttoggles a session instead - fcitx5-wetypex-account:
group-info,pairing-codeandsync-nowinspect the device group, mint a six-digit code and sync immediately
Data Directories
| Content | Default path |
|---|---|
| Official core and dictionaries | ~/.local/share/fcitx5-wetypex/runtime |
| Account identity and service state | ~/.local/share/fcitx5-wetypex/account |
| User dictionary, phrases and sync state | ~/.local/share/fcitx5-wetypex/state |
| Extracted interface assets | ~/.local/share/fcitx5-wetypex/ui |
| WeTypeX settings | ~/.config/fcitx5/wetypex.json |
Removing the system package leaves these directories untouched. Back them up and delete account and state/sync-state.json only when you want to pair again, never during a normal upgrade.
Notes
- Official runtime required: the package ships only the adapter, so the input core and dictionaries still come from
WeType_2.2.3_657.zipand a mismatched version stops the core from starting - Sandbox boundaries: password contexts never reach the input core, clipboard history or AI, while ordinary sensitive fields in a browser still work
- Test scope: only Arch Linux with KDE Plasma on Wayland has been verified, so other distributions must match library versions themselves
- Build-time switches: the four Nix booleans
enableAI,enableVoice,enableLayerShellandenableWeTypeThemeare fixed at build time and cannot be re-enabled from the interface - Preference limits:
defaultSettingsmay not exceed 16 KiB once serialised, the initial file is created with mode0600, and existing files or symlinks are never overwritten