The repository implements Trime, a fully functional Android input method (IME) based on the Rime input engine. It provides a highly customizable keyboard with YAML-based themes, color schemes, key layouts, and gesture support. The core architecture is a Kotlin/JNI bridge to the native librime library, with a service-based IME lifecycle (`TrimeInputMethodService`), a daemon for Rime session management, and a rich UI layer for candidate display, clipboard, popups, and liquid keyboards. The application also includes a settings interface for schema management, user dictionaries, sync via Storage Access Framework, and clipboard history. The codebase is modular, with clear separation between Rime interaction, theme management, UI delegates, and data persistence, using modern Android patterns (Room, Paging, WorkManager, Coroutines, Kodein DI). It is actively maintained with frequent commits and extensive test coverage for core components. The YAML theme system is particularly sophisticated, featuring typed color resolution with fallback chains and a custom parser that handles anchors and aliases.
librime is the core library of the Rime Input Method Engine, a modular, cross-platform C++ framework for building Chinese and East Asian input methods. It provides a flexible pipeline architecture composed of processors, segmentors, translators, and filters, all configurable via YAML schemas. The library handles dictionary compilation from text to binary trie formats (leveldb and marisa-trie), spelling algebra for variant syllable mapping, and user-specific adaptation through frequency and custom phrase databases. It exposes a stable C API for integration into frontends (e.g., IBus, Squirrel, Weasel) and supports dynamic plugin loading for extensibility. The codebase is well-structured with clear separation of concerns, a component registry pattern, and extensive unit tests. Notable technical strengths include a custom double-array trie implementation (darts-clone), a sophisticated YAML config compiler supporting inheritance and patching, and an event-driven context system for real-time composition state.
This repository is a comprehensive configuration package for the Rime input method engine, providing a curated set of input schemas, dictionaries, Lua scripts, and OpenCC conversion data. It is not a standalone application but a template package that users copy or integrate into their Rime setup (on Windows, macOS, Linux, Android, iOS). The project offers multiple Chinese input methods including full pinyin, various double pinyin layouts, Wubi 86/98, stroke, and T9, along with extensive English and emoji support. Its key value lies in the integration of high-quality dictionaries (rime-ice, Wanxiang, rime-frost) and advanced Lua extensions that add features like date/time, lunar calendar, calculator, unicode translation, automatic capitalization, and corrector filters. The configuration follows the Rime convention of custom.yaml overrides, allowing users to upgrade without losing personalizations. While the core is a set of configuration files, the Lua scripts and OpenCC data are reusable assets demonstrating strong craftsmanship.
This repository is the official project website for the Rime input method engine (δΈε·ι»θΌΈε ₯ζ³εΌζ). It is a static site built with the Zola static site generator, deployed to GitHub Pages via a GitHub Actions workflow. The site provides download links for Rime clients (Weasel for Windows, Squirrel for macOS, ibus-rime for Linux), documentation, a blog, donation information, and an online input method demo using fcitx5-rime.js. It also includes a Python script that automatically fetches the latest release assets from GitHub and updates Sparkle appcast XML files for the Weasel and Squirrel clients, enabling automatic updates. The site features dynamic notices (e.g., commemorative messages, typewriter animations) and Chinese text conversion between simplified and traditional characters. While primarily a content site, it contains well-structured CI/CD pipelines and a reusable release management script.