/fcitx5-android

An attempt to run fcitx5 on Android

Primary LanguageKotlinGNU Lesser General Public License v2.1LGPL-2.1

fcitx5-android

An attempt to run fcitx5 on Android.

Jenkins Build Status

Project status

Implemented

  • Virtual Keyboard (layout not customizable yet)
  • Expandable candidate view
  • Clipboard management (plain text only)
  • Themeing (custom color scheme and background image)
  • Popup preview on key press
  • Long press popup keyboard for convenient symbol input
  • User-friendly symbol selector

Work in progress

  • Customiziable keyboard layout
  • More input methods

Screenshots

拼音, builtin light theme, key border enabled 自然码双拼, builtin dark theme, border disabled

Get involved

Trello kanban: https://trello.com/b/gftk6ZdV/kanban

Matrix Room: https://matrix.to/#/#fcitx5-android:mozilla.org

Discuss on Telegram: https://t.me/+hci-DrFVWUM3NTUx (@fcitx5_android originally)

Build

Dependencies

  • Android SDK Platform & Build-Tools 33 or newer version
  • Android NDK (Side by side) 25 & CMake 3.22.1, they can be installed using SDK Manager in Android Studio or sdkmanager command line. Note: NDK 21 & 22 are confirmed not working with this project.
  • KDE/extra-cmake-modules
  • GNU Gettext >= 0.20 (for msgfmt binary; or install appstream if you really have to use gettext <= 0.19.)

How to set up development environment

First, clone this repository and fetch all submodules:

git clone git@github.com:fcitx5-android/fcitx5-android.git
git submodule update --init --recursive

Install extra-cmake-modules from your distribution software repository:

# For Arch Linux (Arch has gettext in it's base meta package)
sudo pacman -S extra-cmake-modules
# For Debian/Ubuntu
sudo apt install extra-cmake-modules gettext

Install Android SDK Platform, Android SDK Build-Tools, Android NDK and cmake via SDK Manager in Android Studio:

Detailed steps (screenshots)

open SDK Manager

install SDK Platform

install SDK Build-Tools

install NDK

install CMake

Nix

Appropriate 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.