Skip to content

Repository files navigation

NoctType

NoctType 是一个以 Rust 为核心的跨平台拼音输入法,支持 Windows、macOS、Linux、Android、iOS/iPadOS 和鸿蒙。

仓库结构

crates/                    Rust 核心(所有平台共用)
  nocttype-cli/            命令行调试入口
  nocttype-config/         核心配置结构(TOML)
  nocttype-core/           输入会话、事件流、分页和提交状态
  nocttype-dict/           词库加载、精确查询、前缀查询、拼音切分
  nocttype-engine/         候选生成、排序、简拼、模糊音、用户频率加权
  nocttype-ffi/            C ABI 封装,供各平台壳调用
  nocttype-userdb/         用户词库持久化

app/                       桌面端应用(Windows / macOS / Linux)
  NoctType.Desktop/        Avalonia 设置、托盘、调试窗口
  run.ps1 / run.sh         启动脚本

platforms/                 平台输入法壳(只负责接入系统框架,调用 FFI)
  windows/
    NoctType.Tsf/          Windows TSF 输入法 DLL
    register-tsf.ps1       注册 TSF 输入法
    unregister-tsf.ps1     卸载 TSF 输入法

shared/dictionaries/       基础词库数据
third_party/               第三方来源数据和授权文件
tools/                     词库构建工具
docs/                      架构和平台说明

核心能力

  • 拼音候选生成与频率排序
  • 拼音音节切分与前缀候选
  • 简拼支持(nh你好
  • 模糊音(z=zh, n=l 等)
  • 用户词库与选词频率学习
  • 自定义短语
  • 候选分页与展开
  • TOML 配置系统
  • 平台中立的输入事件模型

快速开始

CLI 调试

cargo run -p nocttype-cli -- nihao
cargo run -p nocttype-cli -- --events space nihao
cargo run -p nocttype-cli -- --events next,select:1 ba

桌面端(设置 + 调试窗口)

Windows PowerShell:

.\app\run.ps1

桌面端当前提供:

  • 托盘菜单
  • 设置窗口
  • 调试窗口
  • 主题切换(跟随系统 / 浅色 / 暗色)
  • 输入法方案切换(全拼 / 双拼 / 五笔入口)

Linux / macOS:

bash app/run.sh

Windows 系统输入法

需要 Visual Studio Developer PowerShell:

msbuild platforms\windows\NoctType.Tsf\NoctType.Tsf.vcxproj /p:Configuration=Debug /p:Platform=x64
.\platforms\windows\register-tsf.ps1

注册后在 Windows 设置 → 时间和语言 → 语言 → 中文 → 键盘中添加 NoctType。

配置文件

路径:%APPDATA%\NoctType\settings.toml(Windows)或 ~/.config/nocttype/settings.toml(Linux)

[appearance]
theme = "auto"          # auto / light / dark

[schema]
active = "pinyin"       # pinyin / double_pinyin / wubi

[input]
enable_abbreviation = true
enable_prefix_candidates = true
enable_fuzzy_pinyin = true
fuzzy_rules = "z=zh,c=ch,s=sh,n=l,f=h,an=ang,en=eng,in=ing,ian=iang,uan=uang"

[candidate]
page_size = 9
prefix_candidate_limit = 64

[user_dict]
enable = true

[privacy]
learning_enabled = true

词库

格式:locale<TAB>reading<TAB>text<TAB>frequency<TAB>source

  • 基础词库:shared/dictionaries/base.tsv
  • 来源:AOSP PinyinIME(third_party/aosp-pinyinime/

验证

cargo fmt --all
cargo test --workspace
cargo clippy --workspace --all-targets -- -D warnings
cargo build --workspace

协作规则

AGENTS.md。Git 提交信息、代码注释、文档注释使用中文;crate 名称、API 名称、第三方项目名称保留英文。

About

Rust-first cross-platform input method core

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages