Top Related Projects
Quick Overview
The rime/plum repository is a collection of tools and utilities for the RIME input method engine, which is a popular Chinese input method used on various platforms. The project provides a set of tools and libraries to help developers and users work with the RIME engine more efficiently.
Pros
- Comprehensive Toolset: The project offers a wide range of tools and utilities, including configuration management, deployment, and debugging tools, making it easier to work with the RIME engine.
- Cross-platform Support: The tools and libraries provided by the project are designed to work across different platforms, including Windows, macOS, and Linux.
- Active Development: The project is actively maintained, with regular updates and bug fixes, ensuring that users have access to the latest features and improvements.
- Community Support: The project has a strong community of contributors and users, providing a wealth of resources and support for those working with the RIME engine.
Cons
- Steep Learning Curve: The project's extensive set of tools and utilities can be overwhelming for new users, requiring a significant investment of time and effort to fully understand and utilize.
- Dependency on RIME: The project is tightly coupled with the RIME input method engine, which means that users who do not use RIME may not find the project as useful.
- Limited Documentation: While the project has a good amount of documentation, some areas may be lacking in detail or clarity, making it challenging for new users to get started.
- Potential Compatibility Issues: As the project is designed to work across multiple platforms, there may be occasional compatibility issues or conflicts with other software or systems.
Code Examples
N/A (This is not a code library)
Getting Started
N/A (This is not a code library)
Competitor Comparisons
【鼠鬚管】Rime for macOS
Pros of Squirrel
- Provides a full-featured input method engine for macOS
- Offers a user-friendly graphical interface for configuration
- Includes built-in dictionaries and customizable schemas
Cons of Squirrel
- Limited to macOS platform
- Requires more system resources due to its GUI components
- May have a steeper learning curve for new users
Code Comparison
Squirrel (Objective-C):
- (void)loadSchemaList {
NSArray *schemas = [RimeConfigController getAvailableSchemas];
[self.schemaController setSchemas:schemas];
}
Plum (Shell script):
rime_frontend_install() {
local frontend="$1"
bash "${frontend}/install.sh"
}
Summary
Squirrel is a comprehensive input method engine for macOS with a graphical interface, while Plum is a package manager for Rime input method customizations. Squirrel offers a more user-friendly experience for macOS users but is platform-specific. Plum, on the other hand, provides a flexible way to manage Rime configurations across different platforms but requires more technical knowledge to use effectively.
【小狼毫】Rime for Windows
Pros of Weasel
- Specifically designed for Windows, offering native integration
- Includes a user-friendly graphical interface for configuration
- Supports customizable skin and UI elements
Cons of Weasel
- Limited to Windows platform, lacking cross-platform compatibility
- Requires more system resources compared to lightweight alternatives
- May have a steeper learning curve for users new to Rime
Code Comparison
Weasel (C++):
LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg) {
case WM_CREATE:
// Window creation logic
break;
// ...
}
return DefWindowProc(hWnd, uMsg, wParam, lParam);
}
Plum (Shell script):
install_package() {
local package_name="$1"
echo "Installing ${package_name}"
# Package installation logic
# ...
}
Summary
Weasel is a Windows-specific Rime frontend with a graphical interface, while Plum is a cross-platform package manager for Rime. Weasel offers better Windows integration but is limited to that platform, whereas Plum provides a more flexible and lightweight solution for managing Rime configurations across different operating systems.
Rime Input Method Engine, the core library
Pros of librime
- Core library for Rime input method engine, providing essential functionality
- Written in C++, offering better performance for low-level operations
- Extensive documentation and API references available
Cons of librime
- More complex codebase, requiring C++ knowledge for contributions
- Heavier development environment setup compared to shell scripts
- Less focused on user-friendly installation and configuration
Code Comparison
librime (C++):
bool RimeDeployerImpl::InstallSchema(const string& schema_file) {
Config config;
if (!config.LoadFromFile(schema_file)) {
LOG(ERROR) << "failed to load schema file '" << schema_file << "'";
return false;
}
// ... (implementation continues)
}
plum (Shell):
install_schema() {
local schema_file="$1"
echo "Installing schema: $schema_file"
cp "$schema_file" "$target_dir/schema/"
# ... (implementation continues)
}
Summary
librime serves as the core library for the Rime input method engine, offering robust functionality and performance. It's written in C++ and provides extensive documentation. However, it has a steeper learning curve and requires a more complex development setup.
plum, on the other hand, focuses on user-friendly installation and configuration using shell scripts. It's easier to contribute to and modify but may lack the performance benefits of the C++ implementation in librime.
Conversion between Traditional and Simplified Chinese
Pros of OpenCC
- Focuses specifically on Chinese text conversion, offering more specialized functionality
- Supports multiple Chinese variants and conversion between simplified and traditional Chinese
- Provides command-line tools and APIs for easy integration into other projects
Cons of OpenCC
- Limited to Chinese language conversion, less versatile for other languages or input methods
- May require more setup and configuration for specific use cases
- Less integrated with input method frameworks compared to Plum
Code Comparison
OpenCC (C++):
Converter converter("s2t.json");
string converted = converter.Convert("汉字");
Plum (Shell script):
rime_frontend_select Squirrel
rime_install :preset
Summary
OpenCC is a specialized tool for Chinese text conversion, offering robust features for handling various Chinese variants. Plum, on the other hand, is a package manager for the RIME input method engine, providing a broader range of language support and input method configurations. While OpenCC excels in Chinese-specific tasks, Plum offers more versatility for managing different input methods and languages within the RIME ecosystem.
maybe a new fcitx.
Pros of fcitx5
- More comprehensive input method framework supporting multiple languages and input methods
- Active development with frequent updates and improvements
- Better integration with modern desktop environments and applications
Cons of fcitx5
- Steeper learning curve for configuration and customization
- Larger resource footprint compared to lightweight alternatives
- May have compatibility issues with some older applications
Code Comparison
fcitx5:
class InputContext : public InputContextProperty {
public:
virtual ~InputContext() = default;
virtual const char *frontend() const = 0;
virtual const char *program() const = 0;
};
plum:
#!/bin/bash
install_package() {
echo "Installing ${package}..."
bash ${package}/install.sh
}
Summary
fcitx5 is a full-featured input method framework, while plum is a package manager for Rime input method engine. fcitx5 offers broader language support and better desktop integration, but may be more complex to set up. plum focuses on managing Rime configurations and is generally simpler to use, but has a narrower scope. The code snippets highlight the difference in complexity and focus between the two projects.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
æ±é¢¨ç ´ /plum/
Rime configuration manager and input schema repository
Project home
Introduction
/plum/ is a configuration manager for Rime input method engine.
/// æ±é¢¨ç ´ æ¯ ä¸å·é»è¼¸å ¥æ³å¼æ çé 置管çå·¥å ·ã///
It's designed for Rime users to install and update the default configuration and a collection of data packages maintained by Rime Developers.
It also works perfectly well with personal configuration hosted on GitHub and input schema packages from third-party developers.
A Rime input schema (Rime 輸å
¥æ¹æ¡) defines the rules of a specific "input method", or in technical terms
how user input sequences are interpreted by the Rime input method engine.
It consists of a configuration file named <schema_id>.schema.yaml
, and usually an optional
Rime dictionary (黿¸) file named *.dict.yaml
.
A package may contain one or several interrelated input schemata and their affiliated Rime dictionaries. A package is also good for publishing general configuration files and data files used by Rime.
In /plum/ terms, a re-usable piece of configuration is known as a recipe (é æ¹), denoted by the "â" symbol.
A data package itself can be a recipe, this is the common case. In the future, /plum/ will support more fine-grained recipes that allow you to select what to install from a package, or even take parameters like the target input schema to customize.
Packages
This is an index of the packages maintained by Rime Developers as separate projects.
These packages aim to offer a sensible default configuration for most users, and support various Chinese input methods including those based on modern dialects and historical Chinese phonology.
/// é æ¹ä¸è¦½ ///
Essentials
- â
prelude
: åºç¤é ç½® / the prelude package, providing Rime's default settings - â
essay
: å «è¡æ / a shared vocabulary and language model
Phonetic-based input methods
Modern Standard Mandarin
- â
luna-pinyin
: æææ¼é³ / Pinyin input method for Traditional Chinese - â
terra-pinyin
: å°çæ¼é³ / School-taught Pinyin, with tone marks - â
bopomofo
: æ³¨é³ / Zhuyin (aka. Bopomofo) - â
pinyin-simp
: è¢çç°¡ååæ¼é³
Derivatives of Pinyin
- â
double-pinyin
: éæ¼ / Double Pinyin (ZiRanMa, ABC, flyPY, MSPY, PYJJ variants) - â
combo-pinyin
: å®®ä¿æ¼é³ / Combo Pinyin, a chord-typing input method - â
stenotype
: æåéè¨æ³ / a stenographic system derived from ABC Easy Shorthand
Other modern varieties of Chinese
- â
cantonese
: ç²µèªæ¼é³ / Cantonese - â
jyutping
: ç²µæ¼ï¼ç¡è²èª¿ï¼ / Cantonese (without tones) - â
wugniu
: 䏿µ·å³èª / Wu (Shanghainese) - â
soutzoe
: èå·å³èª / Wu (Suzhounese)
Middle Chinese
- â
middle-chinese
: ä¸å¤æ¼¢èªæ¼é³ / Middle Chinese Romanization
Shape-based input methods
- â
stroke
: äºçç« / five strokes - â
cangjie
: åé ¡è¼¸å ¥æ³ / Cangjie input method - â
quick
: éæ / Simplified Cangjie - â
wubi
: äºçåå - â
array
: è¡åè¼¸å ¥æ³ - â
scj
: å¿«éåé ¡
Miscellaneous
- â
emoji
: 繪æå / input emoji with English or Chinese Pinyin keywords - â
ipa
: åé鳿¨ / International Phonetic Alphabet
Usage
To prepare your Rime configuration for ibus-rime, Squirrel, you can get started by running
curl -fsSL https://raw.githubusercontent.com/rime/plum/master/rime-install | bash
/// ç¨æ³ï¼LinuxãmacOS 系統ï¼å¨çµç«¯è¼¸å ¥ä»¥ä¸å½ä»¤è¡ï¼å®è£é 置管çå¨åé è¨é æ¹ã ///
Paste the command line in Linux terminal or macOS Terminal.app
and hit enter.
The one-liner runs the rime-install
script to download preset packages and install
source files to Rime user directory. (Yet it doesn't enable new schemas for you)
For Weasel, please refer to the Windows bootstrap script section for initial setup.
Advanced usage
Alternatively, you can specify a configuration among :preset
, :extra
and :all
(note the colon):
curl -fsSL https://raw.githubusercontent.com/rime/plum/master/rime-install | bash -s -- :preset
This is equivalent to cloning this repo and running the local copy of rime-install
:
git clone --depth 1 https://github.com/rime/plum.git
cd plum
bash rime-install :preset
You can then add packages from all the great Rime developers on GitHub by specifying
a list of package names or refer to packages by <user>/<repo>
:
bash rime-install jyutping lotem/rime-zhung acevery/rime-zhengma
# optionally, specific a branch by appending "@<branch-name>"
bash rime-install jyutping@master lotem/rime-zhung@master
Lastly, it's also possible to install other author's Rime configuration from a
*-packages.conf
file hosted on GitHub. For example:
bash rime-install https://github.com/lotem/rime-forge/raw/master/lotem-packages.conf
# or in short form: "<user>/<repo>/<filepath>"
bash rime-install lotem/rime-forge/lotem-packages.conf
# or specify a branch: "<user>/<repo>@<branch>/<filepath>"
bash rime-install lotem/rime-forge@master/lotem-packages.conf
For third-party Rime distributions, specify the rime_frontend
variable in the command line:
rime_frontend=fcitx-rime bash rime-install
or set rime_dir
to Rime user directory
rime_dir="$HOME/.config/fcitx/rime" bash rime-install
To update /plum/ itself, run
bash rime-install plum
Interactively select packages to install
Specify the --select
flag as the first argument to rime-install
,
then add configurations (:preset
is the default) and/or individual packages to display in the menu.
bash rime-install --select :extra
bash rime-install --select :all lotem/rime-forge/lotem-packages.conf
Screenshot of usage example
Windows bootstrap script
To get started on Windows, download the bootstrap bundle,
unpack the ZIP archive and run rime-install-bootstrap.bat
for initial setup.
It will fetch the latest installer script rime-install.bat
an create a shortcut to it,
which can then be copied or moved anywhere for easier access.
/// Windows ç¨å®¶å¯ä»¥éé å°ç¼æ¯« 0.11 以ä¸ãè¼¸å ¥æ³è¨å®ï¼ç²åæ´å¤è¼¸å ¥æ¹æ¡ã調ç¨é 置管çå¨ã///
/// æè ä¸è¼ç¨ç«ç ååå·¥å ·å ã///
Use built-in ZIP package installer
You can use the installer script to download and install ZIP packages from GitHub, in a number of ways:
-
Double-click the shortcut to bring up an interactive package installer, then input package name,
<user>/<repo>
or GitHub URL for the package. -
Run
rime-install.bat
in the command line. The command takes a list of packages to install as arguments.
rime-install :preset combo-pinyin jyutping wubi
-
Drag downloaded ZIP packages from GitHub onto the shortcut to do offline install.
You can find ZIP packages downloaded by the installer script in
%TEMP%
folder (can be customized via variabledownload_cache_dir
).To manually download ZIP package from a GitHub repository, click the button Clone or download, then Download ZIP.
Use git for incremental updates (optional)
If Git for Windows is installed in the default location or is available in your PATH
,
the script will use git-bash to install or update packages.
Use the following command to install Git for Windows, if you are new to git.
rime-install git
You can set more options in rime-install-config.bat
in the same directory as rime-install.bat
, for example:
set plum_dir=%APPDATA%\plum
set rime_dir=%APPDATA%\Rime
set use_plum=1
Install as shared data
The Makefile
builds and installs Rime data as a software on Unix systems.
For downstream packagers for the package management systems of the OS, it's recommend to create
separate packages for the /plum/ configuration manager (possibly named rime-plum
or rime-install
)
and the data package(s) (possibly named rime-data
, or rime-data-*
if separated into many)
created by the make targets.
Build dependencies
- git
- librime>=1.3 (for
rime_deployer
)
Run-time dependencies
- librime>=1.3
- opencc>=1.0.2
Build and install
The default make target uses git
command to download the latest packages from GitHub.
make
sudo make install
You can optionally build the by default enabled input schemas to binaries. This saves user's time building those files on first startup.
make preset-bin
License
Code in the rime/plum
repository is licensed under LGPLv3.
Please refer to the LICENSE
file in the project root directory.
Note that make targets provided by the Makefile
may include files downloaded by the
configuration manager. Individual packages can be released under different licenses.
Please refer to their respective LICENSE
files.
The license compatible with all the maintained packages is GPLv3.
Credits
We are grateful to the makers of the following open source projects:
- Android Pinyin IME (Apache 2.0)
- Chewing / æ°é ·é³ (LGPL)
- ibus-table (LGPL)
- OpenCC / éæ¾ä¸æè½æ (Apache 2.0)
- moedict / èå ¸ (CC0 1.0)
- Rime ç¿°æé¢ / Rime Academy (GPLv3)
Also to the inventors of the following input methods:
- Cangjie / åé ¡è¼¸å ¥æ³ by æ±é¦å¾©
- Array input method / è¡åè¼¸å ¥æ³ by 廿德
- Wubi / äºçåå by çæ°¸æ°
- Scj / å¿«éåé ¡ by éº¥å¿æ´ª
- Middle Chinese Romanization / ä¸å¤æ¼¢èªæ¼é³ by å¤é»
Contributors
This software is a result of collective effort. It was set up by the following people by contributing files, patches and pull-requests. See also the contributors page for a list of open-source collaborators.
- 使¯
- Kunki Chou
- éªé½
- Patrick Tschang
- Joseph J.C. Tang
- lxk
- Ye Zhou
- Jiehong Ma
- StarSasumi
- å¤é»
- å¯å¯è±
- åå£ç風
- 䏿µ·é話abc
- å³èªè¶é³
Top Related Projects
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot