yu1745 / wetype-ime-linux
git clone https://github.com/yu1745/wetype-ime-linux.git
v0.1.8 · 12d ago
Linux port and Fcitx 5 integration for the WeType Android input engine
+0
stars, 24h · #36,892
+~0
stars, 7 days · #42,422
+260
stars, 30 days · #3,054
260
★ total
31
forks · 1 open issues
Star history (as recorded here)
LanguagePython
LicenseGPL-3.0
Created2026-09-23 (1mo ago)
Last push11d ago
Watchers0
OwnerUser
Links
README excerpt
# WeType Linux 在 Linux 上通过 Fcitx 5 使用微信输入法(WeType)引擎。引擎是 Android ARM64 版本,运行在 Android 自己的 C 运行时(AOSP bionic)上:x86_64 主机通过 QEMU user 模式运行,ARM64 主机原生运行,不需要 QEMU。 > **非官方项目**,与腾讯无关,也未获其认可。WeType、微信输入法、微信是腾讯的商标。使用 WeType 引擎须遵守腾讯的相关条款。 本仓库和 AppImage 只包含本项目自己的代码,以及可再分发的运行时(取自 AOSP 系统镜像的 bionic;x86_64 版另含 QEMU),不包含任何 WeType 文件。安装时会从腾讯官方服务器下载 WeType 3.5.4 APK,校验 SHA-256 后在本机打补丁,思路类似 Minecraft 的 Paper。 ## 功能与限制 本项目只把微信输入法的 Android 引擎接入 Fcitx 5,**不是官方客户端的完整移植**。当前能力如下: | 功能 | 状态 | 说明 | |---|---|---| | 键盘拼音输入、中文候选 | 支持 | 候选由 WeType 3.5.4 引擎产生 | | 拼音纠错(乱序、键邻、漏字等容错候选) | 支持 | 会话配置按官方客户端默认值传入(enable_local_correction 与 InputAugmenter 的 exchange/keyboard_neighbour/insert_at_middle/skip) | | emoji/颜文字候选 | 支持 | 按官方默认开启(local_most_likely_config / local_process_input_config 的 emoji 开关) | | 数字、空格、鼠标选词及部分选词 | 支持 | 部分选词后可继续选择剩余拼音的候选 | | 候选翻页、全局候选数量 | 支持 | 每页 1–10 个,跟随 Fcitx5 全局配置;第 10 个用 `0` 选择 | | 本地选词学习及持久化 | 支持 | 学习数据保存在本机;重启后可复用 | | 候选英文释义 | 可选 | 用户提供本地 TSV 词表,仅影响显示,不改变上屏内容 | | 跨设备剪贴板、跨设备粘贴 | 未实现 | 未接入跨设备通信或官方剪贴板功能;不影响系统本地复制粘贴 | | 官方账号登录、云端词库及跨设备同步 | 未接入 | 本项目没有提供登录或同步接口,不能使用官方客户端的同步流程 | | 中文状态全角标点(除 `` ` `` 外的全部 ASCII 符号) | 支持 | 引号自动配对,`\` 出 `、`;仅光标紧跟数字时 `.` `,` 保持半角 | | Shift + 字母直出大写 | 支持 | 空闲态 `Shift+A` 上屏 `A`;组词中仍按小写拼音 | 本地词库和学习数据的保存不等于云同步。学习数据默认位于 `~/.local/share/wetype-ime/dict`,设置了 `XDG_DATA_HOME` 时使用 `$XDG_DATA_HOME/wetype-ime/dict`;高级调试可用 `WETYPE_WORK_DIR` 覆盖。 发布两种 AppImage:`WeTypeIME-Engine-x86_64.AppImage`(x86_64 Linux,自带 QEMU)和 `WeTypeIME-Engine-aarch64.AppImage`(ARM64 Linux,原生运行,不含 QEMU)。Fcitx5 插件在 Ubuntu 24.04 上随包构建,要求宿主有 glibc ≥ 2.38 和 Fcitx5 5.1.x(`libFcitx5Core.so.7`);更旧的发行版(如 Ubuntu 20.04)请用 `fcitx5-wetype/build.sh` 按本机 Fcitx5 从源码构建插件。默认在缺少有效 APK 缓存时联网下载;也可通过 `--apk` 使用已下载的 APK。英文释义是本地查表,不进行网络查询。上述功能清单不构成对专有引擎内部网络行为的保证。 ## 安装 先安装依赖(下载、校验、解包、补丁都在 python3 标准库内完成,无需 curl/unzip): [code] ARM64 主机还需要 `patchelf`(安装时把 harness 的 ELF 解释器指向包内的 bionic `linker64`,之后原生运行,不改动 `/system`): [code] 然后运行: [code] 安装完成后重启 Fcitx5,并在输入法配置中添加“微信拼音”。 **候选翻页**:组词时 `-` `=`(以及 `PgUp`/`PgDn`、`↑`/`↓`)按整页翻页,到达边界也不会把这两个字符漏进文档;每页候选数跟随 Fcitx5 全局设置“候选词数量”(1–10,默认 5),候选前显示的数字即选词键(每页 10 个时第 10 个为 `0`)。 其他命令: [code] APK 约 214 MB,只下载一次,缓存在 `~/.cache/wetype-ime`。用户学习数据在 `~/.local/share/wetype-ime`。 ## 从源码构建 x86_64 AppImage 的构建环境为 x86_64 的 Debian / Ubuntu: [code] harness 使用 Android NDK r27c(27.2.12479018)交叉编译为 Android ARM64/API 28;Fcitx5 插件仍由宿主 C++ 编译器原生构建,无需 Android Studio、Java 或完整 Android SDK。 [code] 也可用 `ANDROID_NDK_HOME` 指向已有兼容 NDK;不设置时构建脚本回落到上述项目缓存。CI 固定使用 r27c。构建时还会下载 AOSP Android 9 的 ARM64 模拟器系统镜像(约 407 MB,缓存在 `.deps/aosp/`),校验 SHA-256 后提取 bionic 运行时。NDK 只有 x86_64 Linux 主机版,所以 harness 与 bionic 运行时总是在 x86_64 主机上构建;ARM64 AppImage 复用这些产物在 ARM64 主机上打包(见下)。 [code] 没有 FUSE 时(容器、虚拟机)请设置 `APPIMAGE_EXTRACT_AND_RUN=1`。打包时如果发现任何来自 APK 的文件,会拒绝打包。 **ARM64 AppImage**在 ARM64 主机上打包:先在 x86_64 主机上构建并导出 harness 与运行时,再到 ARM64 主机上用同一份源码打包。CI 自动完成这两步。 [code] 在源码树中直接调试引擎: [code] 插件日志默认写入 `$XDG_STATE_HOME/wetype-ime/harness.log`(未设置时 `~/.local/state/wetype-ime/harness.log`),超过 16 MiB 自动轮