{"id":13483659,"url":"https://github.com/fcitx5-android/fcitx5-android","last_synced_at":"2025-03-27T14:31:29.102Z","repository":{"id":38209862,"uuid":"375715108","full_name":"fcitx5-android/fcitx5-android","owner":"fcitx5-android","description":"Fcitx5 input method framework and engines ported to Android","archived":false,"fork":false,"pushed_at":"2025-03-16T06:27:54.000Z","size":5303,"stargazers_count":3471,"open_issues_count":66,"forks_count":201,"subscribers_count":21,"default_branch":"master","last_synced_at":"2025-03-16T07:25:20.373Z","etag":null,"topics":["android","android-ime","android-keyboard","fcitx","fcitx5","ime","input-method","keyboard"],"latest_commit_sha":null,"homepage":"https://fcitx5-android.github.io/","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-2.1","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fcitx5-android.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-06-10T13:53:32.000Z","updated_at":"2025-03-16T06:50:41.000Z","dependencies_parsed_at":"2024-01-04T06:21:39.637Z","dependency_job_id":"e69e96c5-015f-4d4a-be78-e55abe5b8ee7","html_url":"https://github.com/fcitx5-android/fcitx5-android","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fcitx5-android%2Ffcitx5-android","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fcitx5-android%2Ffcitx5-android/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fcitx5-android%2Ffcitx5-android/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fcitx5-android%2Ffcitx5-android/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fcitx5-android","download_url":"https://codeload.github.com/fcitx5-android/fcitx5-android/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245863102,"owners_count":20684788,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","android-ime","android-keyboard","fcitx","fcitx5","ime","input-method","keyboard"],"created_at":"2024-07-31T17:01:13.882Z","updated_at":"2025-03-27T14:31:29.092Z","avatar_url":"https://github.com/fcitx5-android.png","language":"Kotlin","funding_links":[],"categories":["Kotlin","輸入法"],"sub_categories":[],"readme":"# fcitx5-android\n\n[Fcitx5](https://github.com/fcitx/fcitx5) input method framework and engines ported to Android.\n\n## Download\n\n### Latest CI builds\n\nJenkins: [![build status](https://img.shields.io/jenkins/build.svg?jobUrl=https://jenkins.fcitx-im.org/job/android/job/fcitx5-android/)](https://jenkins.fcitx-im.org/job/android/job/fcitx5-android/)\n\n### Tagged releases\n\nGitHub: [![release version](https://img.shields.io/github/v/release/fcitx5-android/fcitx5-android)](https://github.com/fcitx5-android/fcitx5-android/releases)\n\n[\u003cimg src=\"https://fdroid.gitlab.io/artwork/badge/get-it-on.png\" alt=\"Get it on F-Droid\" width=\"207\" height=\"80\"\u003e](https://f-droid.org/packages/org.fcitx.fcitx5.android)\n[\u003cimg alt=\"Get it on Google Play\" src=\"https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png\" width=\"207\" height=\"80\"\u003e](https://play.google.com/store/apps/details?id=org.fcitx.fcitx5.android)\n\n## Project status\n\n### Supported Languages\n\n- English (with spell check)\n- Chinese\n  - Pinyin, Shuangpin, Wubi, Cangjie and custom tables (built-in, powered by [fcitx5-chinese-addons](https://github.com/fcitx/fcitx5-chinese-addons))\n  - Zhuyin/Bopomofo (via [Chewing Plugin](./plugin/chewing))\n  - Jyutping (via [Jyutping Plugin](./plugin/jyutping/), powered by [libime-jyutping](https://github.com/fcitx/libime-jyutping))\n- Vietnamese (via [UniKey Plugin](./plugin/unikey), supports Telex, VNI and VIQR)\n- Japanese (via [Anthy Plugin](./plugin/anthy))\n- Korean (via [Hangul Plugin](./plugin/hangul))\n- Sinhala (via [Sayura Plugin](./plugin/sayura))\n- Thai (via [Thai Plugin](./plugin/thai))\n- Generic (via [RIME Plugin](./plugin/rime), supports importing custom schemas)\n\n### Implemented Features\n\n- Virtual Keyboard (layout not customizable yet)\n- Expandable candidate view\n- Clipboard management (plain text only)\n- Theming (custom color scheme, background image and dynamic color aka monet color after Android 12)\n- Popup preview on key press\n- Long press popup keyboard for convenient symbol input\n- Symbol and Emoji picker\n- Plugin System for loading addons from other installed apk\n\n### Planned Features\n\n- Customizable keyboard layout\n- More input methods (via plugin)\n\n## Screenshots\n\n|拼音, Material Light theme, key border enabled|自然码双拼, Pixel Dark theme, key border disabled|\n|:-:|:-:|\n|\u003cimg src=\"https://github.com/fcitx5-android/fcitx5-android/assets/13914967/bd429247-62d9-4c78-bab8-70ef3ce47588\" width=\"360px\"\u003e|\u003cimg src=\"https://github.com/fcitx5-android/fcitx5-android/assets/13914967/3ae969c1-7ed0-4f92-a5df-19dc8c90a8c3\" width=\"360px\"\u003e|\n\n|Emoji picker, Pixel Light theme, key border enabled|Symbol picker, Material Dark theme, key border disabled|\n|:-:|:-:|\n|\u003cimg src=\"https://user-images.githubusercontent.com/13914967/202181845-6a5f6bb2-a877-468c-851a-fd7e66e64ed4.png\" width=\"360px\"\u003e|\u003cimg src=\"https://user-images.githubusercontent.com/13914967/202181861-dd253439-1d5e-4f5f-9535-934f28796a6b.png\" width=\"360px\"\u003e|\n\n## Get involved\n\nTrello kanban: https://trello.com/b/gftk6ZdV/kanban\n\nMatrix Room: https://matrix.to/#/#fcitx5-android:mozilla.org\n\nDiscuss on Telegram: [@fcitx5_android_group](https://t.me/fcitx5_android_group) ([@fcitx5_android](https://t.me/fcitx5_android) originally)\n\n## Build\n\n### Dependencies\n\n- Android SDK Platform \u0026 Build-Tools 35.\n- Android NDK (Side by side) 25 \u0026 CMake 3.22.1, they can be installed using SDK Manager in Android Studio or `sdkmanager` command line.\n- [KDE/extra-cmake-modules](https://github.com/KDE/extra-cmake-modules)\n- GNU Gettext \u003e= 0.20 (for `msgfmt` binary; or install `appstream` if you really have to use gettext \u003c= 0.19.)\n\n### How to set up development environment\n\n\u003cdetails\u003e\n\u003csummary\u003ePrerequisites for Windows\u003c/summary\u003e\n\n- Enable [Developer Mode](https://learn.microsoft.com/en-us/windows/apps/get-started/enable-your-device-for-development) so that symlinks can be created without administrator privilege.\n\n- Enable symlink support for `git`:\n\n    ```shell\n    git config --global core.symlinks true\n    ```\n\n\u003c/details\u003e\n\nFirst, clone this repository and fetch all submodules:\n\n```shell\ngit clone git@github.com:fcitx5-android/fcitx5-android.git\ngit submodule update --init --recursive\n```\n\nInstall `extra-cmake-modules` and `gettext` with your system package manager:\n\n```shell\n# For Arch Linux (Arch has gettext in it's base meta package)\nsudo pacman -S extra-cmake-modules\n\n# For Debian/Ubuntu\nsudo apt install extra-cmake-modules gettext\n\n# For macOS\nbrew install extra-cmake-modules gettext\n\n# For Windows, install MSYS2 and execute in its shell (UCRT64)\npacman -S mingw-w64-ucrt-x86_64-extra-cmake-modules mingw-w64-ucrt-x86_64-gettext\n# then add C:\\msys64\\ucrt64\\bin to PATH\n```\n\nInstall Android SDK Platform, Android SDK Build-Tools, Android NDK and cmake via SDK Manager in Android Studio:\n\n\u003cdetails\u003e\n\u003csummary\u003eDetailed steps (screenshots)\u003c/summary\u003e\n\n**Note:** These screenshots are for references and the versions in them may be out of date.\nThe current recommended versions are recorded in [Versions.kt](build-logic/convention/src/main/kotlin/Versions.kt) file.\n\n![Open SDK Manager](https://user-images.githubusercontent.com/13914967/202184493-3ee1546b-0a83-4cc9-9e41-d20b0904a0cf.png)\n\n![Install SDK Platform](https://user-images.githubusercontent.com/13914967/202184534-340a9e7c-7c42-49bd-9cf5-1ec9dcafcf32.png)\n\n![Install SDK Build-Tools](https://user-images.githubusercontent.com/13914967/202185945-0c7a9f39-1fcc-4018-9c81-b3d2bf1c2d3f.png)\n\n![Install NDK](https://user-images.githubusercontent.com/13914967/202185601-0cf877ea-e148-4b88-bd2f-70533189b3d4.png)\n\n![Install CMake](https://user-images.githubusercontent.com/13914967/202184655-3c1ab47c-432f-4bd7-a508-92096482de50.png)\n\n\u003c/details\u003e\n\n### Trouble-shooting\n\n- Android Studio indexing takes forever to complete and cosumes a lot of memory.\n\n    Switch to \"Project\" view in the \"Project\" tool window (namely the file tree side bar), right click `lib/fcitx5/src/main/cpp/prebuilt` directory, then select \"Mark Directory as \u003e Excluded\". You may also need to restart the IDE to interrupt ongoing indexing process.\n\n- Gradle error: \"No variants found for ':app'. Check build files to ensure at least one variant exists.\" or \"[CXX1210] \u003cwhatever\u003e/CMakeLists.txt debug|arm64-v8a : No compatible library found\"\n\n    Examine if there are environment variables set such as `_JAVA_OPTIONS` or `JAVA_TOOL_OPTIONS`. You might want to clear them (maybe in the startup script `studio.sh` of Android Studio), as some gradle plugin treats anything in stderr as errors and aborts.\n\n## Nix\n\nAppropriate Android SDK with NDK is available in the development shell.  The `gradlew` should work out-of-the-box, so you can install the app to your phone with `./gradlew installDebug` after applying the patch mentioned above. For development, you may want to install the unstable version of Android Studio, and point the project SDK path to `$ANDROID_SDK_ROOT` defined in the shell. Notice that Android Studio may generate wrong `local.properties` which sets the SDK location to `~/Android/SDK` (installed by SDK Manager). In such case, you need specify `sdk.dir` as the project SDK in that file manually, in case Android Studio sticks to the wrong global SDK.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffcitx5-android%2Ffcitx5-android","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffcitx5-android%2Ffcitx5-android","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffcitx5-android%2Ffcitx5-android/lists"}