English | 中文
Fcitx5 input method framework ported to macOS.
Please download installer and read documentation.
Native build on Intel and Apple Silicon is supported.
This is NOT an Xcode project, but Xcode >= 26 is needed for Swift compiler.
You may use nvm to install node, then
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
brew install cmake ninja extra-cmake-modules gettext librsvg
./scripts/install-deps.sh
npm i -g pnpm
pnpm --prefix=fcitx5-webview icmake -B build/$(uname -m) -G Ninja -DCMAKE_BUILD_TYPE=Debug
cmake --build build/$(uname -m)
sudo cmake --install build/$(uname -m)After the first time you execute cmake --install, you need to logout and login,
then add Fcitx5 in System Setttings -> Keyboard -> Input Sources, Chinese Simplified.
For installations afterwards, clicking Restart in Fcitx5 menu suffices.
You can also use Cmd+Shift+B in VSCode to execute a task.
Some features (e.g. notifications, core dump) require the app bundle be code-signed after installation:
./scripts/code-sign.sh- Check
Include Info MessagesandInclude Debug MessagesinActionmenu. - Put
FcitxLoginSearch.
/tmp/Fcitx5.log contains all log in Console.app,
plus those written to stderr by engines, e.g. rime.
SSH into the mac from another device, then
$ /usr/bin/lldb
(lldb) process attach --name Fcitx5sudo chmod 1777 /cores
sudo sysctl kern.coredump=1
ulimit -c unlimited # only works for current shell
pkill Fcitx5; /Library/Input\ Methods/Fcitx5.app/Contents/MacOS/Fcitx5When Fcitx5 crashes, it creates a ~10GB core file under /cores.
/usr/bin/lldb -c /cores/core.XXXX
(lldb) btFcitx5 only packages keyboard engine. To install other engines or tables, use the built-in Plugin Manager.
To update .strings files for each supported locale, run
cmake --build build/$(uname -m) --target GenerateStringsThis will, e.g., update assets/zh-Hans/Localizable.strings, and then the translator can work on it.
First, create assets/po/base.pot file:
cmake --build build/$(uname -m) --target potTo add a new language, do
cd po && msginit -l <locale>Then, use a PO file editor to translate strings.
Finally, to merge new strings into PO files, do
cd po && msgmerge -U <locale>.po base.pot- fcitx5: LGPL-2.1-or-later
- fcitx5-android: LGPL-2.1-or-later
- squirrel: GPL-3.0-only
- swift-cmake-examples: Apache-2.0
- SwiftyJSON: MIT
- AlertToast: MIT
- pugixml: MIT
- webview: MIT