# rime/weasel

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/rime-weasel).**

6,778 stars · 655 forks · C++ · gpl-3.0

## Links

- GitHub: https://github.com/rime/weasel
- Homepage: https://rime.im
- awesome-repositories: https://awesome-repositories.com/repository/rime-weasel.md

## Description

Weasel is a Chinese input method frontend and configurable engine designed to convert keystrokes into Chinese characters. It serves as a cross-platform text entry tool that manages character lookup and prediction layouts through a customizable framework.

The system allows users to define original typing rules and layouts to personalize the text entry experience. It supports the design of custom schemes and the modification of character prediction and lookup behaviors via configuration files.

The tool provides capabilities for multilingual keyboard configuration and the ability to toggle between different active input schemes. It utilizes schema-based translation and Lua scripting to handle complex input behaviors and character composition.

## Tags

### Business & Productivity Software

- [Chinese Text Input](https://awesome-repositories.com/f/business-productivity-software/chinese-text-input.md) — Provides a comprehensive system for converting keystrokes into Chinese characters using customizable schemes.
- [Input Method Configurations](https://awesome-repositories.com/f/business-productivity-software/input-method-configurations.md) — Provides configuration frameworks to manage dictionary databases and customize character prediction behavior.

### Artificial Intelligence & ML

- [Input Routing Schemas](https://awesome-repositories.com/f/artificial-intelligence-ml/input-routing-strategies/input-routing-schemas.md) — Maps keystrokes to character candidates using external phonetic and layout-based routing schemas.

### Development Tools & Productivity

- [Cross-Platform Development Tools](https://awesome-repositories.com/f/development-tools-productivity/cross-platform-development-tools.md) — Provides a consistent text entry experience across multiple operating systems by intercepting keyboard input.
- [Input Scheme Development](https://awesome-repositories.com/f/development-tools-productivity/input-pointer-automation/input-customization/input-scheme-development.md) — Provides a framework for designing original input methods with custom rules and phonetic mappings. ([source](https://rime.im/))
- [Input Behavior Configurations](https://awesome-repositories.com/f/development-tools-productivity/terminal-shell-cli/cli-tooling-frameworks/cli-tooling/argument-configuration-management/command-argument-parsers/input-behavior-configurations/input-behavior-configurations.md) — Provides detailed configurations for how the input engine handles candidate lists and language switching.
- [Input Scheme Configurations](https://awesome-repositories.com/f/development-tools-productivity/terminal-shell-cli/cli-tooling-frameworks/cli-tooling/argument-configuration-management/command-argument-parsers/input-behavior-configurations/input-scheme-configurations.md) — Allows modification of phonetic mappings and keyboard layouts via configuration files to match user preferences. ([source](https://rime.im/docs))
- [Input Scheme Switching](https://awesome-repositories.com/f/development-tools-productivity/input-pointer-automation/input-customization/input-scheme-switching.md) — Enables users to toggle between different active typing methods through a selection menu. ([source](https://rime.im/))

### Software Engineering & Architecture

- [Input Method Operational Rules](https://awesome-repositories.com/f/software-engineering-architecture/project-management-governance/project-governance/standards-rule-enforcement/configuration-driven-rules/input-method-operational-rules.md) — Loads operational rules and typing behaviors from plain text configuration files.
- [Cross-Platform Abstraction Layers](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/abstraction-domain-modeling/cross-platform-abstraction-layers.md) — Abstracts OS-specific keyboard hooks and windowing APIs to ensure consistent behavior across different platforms.

### User Interface & Experience

- [Input Method Editors](https://awesome-repositories.com/f/user-interface-experience/input-method-editors.md) — Implements a full input method editor for entering non-Latin characters through phonetic and stroke-based methods.
- [Simplified Chinese Input Configurations](https://awesome-repositories.com/f/user-interface-experience/input-method-editors/simplified-chinese-input-configurations.md) — Facilitates the conversion of keystrokes into Chinese characters using optimized input configurations. ([source](https://cdn.jsdelivr.net/gh/rime/weasel@master/README.md))
- [Input Method Frontends](https://awesome-repositories.com/f/user-interface-experience/input-method-editors/simplified-chinese-input-configurations/input-method-frontends.md) — Serves as a user interface for managing and switching between various character lookup and prediction layouts.
- [Keyboard Layout Configurations](https://awesome-repositories.com/f/user-interface-experience/component-utilities/keyboard-shortcuts/keyboard-layout-configurations.md) — Manages locale-based keyboard layout configurations and input state tracking for multiple languages.

### Networking & Communication

- [Message Passing](https://awesome-repositories.com/f/networking-communication/message-passing.md) — Implements a communication protocol to separate the user interface and keyboard hooks from the core translation engine.

### Programming Languages & Runtimes

- [Input Translation Scripts](https://awesome-repositories.com/f/programming-languages-runtimes/programming-language-varieties/scripting-languages/dynamic-scripting-runtimes/input-translation-scripts.md) — Executes custom Lua scripts to handle complex input behaviors and translation filters.
