Coder Social home page Coder Social logo

javazeroo / fcitx5-android Goto Github PK

View Code? Open in Web Editor NEW

This project forked from fcitx5-android/fcitx5-android

0.0 0.0 0.0 4.79 MB

Fcitx5 input method framework and engines ported to Android

Home Page: https://fcitx5-android.github.io/

License: GNU Lesser General Public License v2.1

C++ 9.31% Kotlin 88.22% Nix 0.28% CMake 2.09% AIDL 0.09%

fcitx5-android's Introduction

Fix Symbol Picker to Gboard type

fcitx5-android

Fcitx5 input method framework and engines ported to Android.

Download

Latest CI builds

Jenkins: build status

Tagged releases

GitHub: release version

Get it on F-Droid Get it on Google Play

Project status

Supported Languages

Implemented Features

  • Virtual Keyboard (layout not customizable yet)
  • Expandable candidate view
  • Clipboard management (plain text only)
  • Theming (custom color scheme and background image)
  • Popup preview on key press
  • Long press popup keyboard for convenient symbol input
  • Symbol and Emoji picker
  • Plugin System for loading addons from other installed apk

Planned Features

  • Customizable keyboard layout
  • More input methods (via plugin)

Screenshots

拼音, Material Light theme, key border enabled 自然码双拼, Pixel Dark theme, key border disabled
Emoji picker, Pixel Light theme, key border enabled Symbol picker, Material Dark theme, key border disabled

Get involved

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

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

Discuss on Telegram: @fcitx5_android_group (@fcitx5_android originally)

Build

Dependencies

  • Android SDK Platform & Build-Tools 34.
  • Android NDK (Side by side) 25 & CMake 3.22.1, they can be installed using SDK Manager in Android Studio or sdkmanager command line.
  • 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

Prerequisites for Windows
  • Enable Developer Mode so that symlinks can be created without administrator privilege.

  • Enable symlink support for git:

    git config --global core.symlinks true

First, clone this repository and fetch all submodules:

git clone [email protected]:fcitx5-android/fcitx5-android.git
git submodule update --init --recursive
On Windows, you may need to regenerate symlinks to submodules.

Run in PowerShell:

Remove-Item -Recurse app/src/main/assets/usr/share, plugin/hangul/src/main/assets/usr/share/libhangul, plugin/chewing/src/main/assets/usr/share/libchewing, plugin/jyutping/src/main/assets/usr/share/libime

Or Command Prompt:

RD /S /Q app\src\main\assets\usr\share plugin\hangul\src\main\assets\usr\share\libhangul plugin\chewing\src\main\assets\usr\share\libchewing plugin\jyutping\src\main\assets\usr\share\libime

Then let git regenerate symlinks:

git checkout -- .

Install extra-cmake-modules and gettext with your system package manager:

# 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

# For macOS
brew install extra-cmake-modules gettext

# For Windows, install MSYS2 and execute in its shell (UCRT64)
pacman -S mingw-w64-ucrt-x86_64-extra-cmake-modules mingw-w64-ucrt-x86_64-gettext
# then add C:\msys64\ucrt64\bin to PATH

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

Detailed steps (screenshots)

Note: These screenshots are for references and the versions in them may be out of date. The current recommended versions are recorded in Versions.kt file.

Open SDK Manager

Install SDK Platform

Install SDK Build-Tools

Install NDK

Install CMake

Trouble-shooting

  • Android Studio indexing takes forever to complete and cosumes a lot of memory.

    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 > Excluded". You may also need to restart the IDE to interrupt ongoing indexing process.

  • Gradle error: "No variants found for ':app'. Check build files to ensure at least one variant exists." or "[CXX1210] /CMakeLists.txt debug|arm64-v8a : No compatible library found"

    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.

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.

fcitx5-android's People

Contributors

berberman avatar cinit avatar eagleoflqj avatar gostsdmitry avatar integral-tech avatar iovxw avatar javazeroo avatar keta1 avatar kkren avatar latticeladder avatar linsui avatar oldherl avatar rocka avatar sinofine avatar transifex-integration[bot] avatar vifly avatar whiredplanck avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.