Fcitx5 macOS¶
Fcitx5 input method framework ported to macOS.
Public beta: please download installer.
小企鹅输入法 macOS 版
Fcitx5 输入框架的 macOS 移植。
公测进行中,请下载安装器。
Build¶
Native build on Intel and Apple Silicon is supported.
This is NOT an Xcode project, but Xcode is needed for Swift compiler.
Install dependencies¶
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 nlohmann-json
./install-deps.sh
npm i -g pnpm
pnpm --prefix=fcitx5-webview i
Build with CMake¶
Code sign¶
Some features (e.g. notifications, core dump) require the app bundle be code-signed after installation:
sudo /usr/bin/codesign --force --sign - --entitlements assets/core.entitlements --deep /Library/Input\ Methods/Fcitx5.app
Debug¶
Console.app¶
- Check
Include Info Messages
andInclude Debug Messages
inAction
menu. - Put
FcitxLog
inSearch
.
Log¶
/tmp/Fcitx5.log
contains all log in Console.app, plus those written to stderr by engines, e.g. rime.
lldb¶
SSH into the mac from another device, then
Core dump¶
sudo 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/Fcitx5
When Fcitx5 crashes, it creates a ~10GB core file under /cores
.
Plugins¶
Fcitx5 only packages keyboard engine. To install other engines, use the built-in Plugin Manager.
Translation¶
Swift sources¶
To update .strings files for each supported locale, run
This will, e.g., update assets/zh-Hans/Localizable.strings, and then the translator can work on it.
C++ sources¶
First, create assets/po/base.pot file:
To add a new language, do
and then add this locale to assets/CMakeLists.txt.Then, use a PO file editor to translate strings.
Finally, to merge new strings into PO files, do
Credits¶
- 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