#分析 #键盘 #优化

keynergy

高效的且可扩展的布局分析库

4 个版本

0.2.7 2022 年 10 月 23 日
0.2.6 2022 年 7 月 20 日
0.2.5 2022 年 5 月 9 日
0.2.4 2022 年 4 月 7 日

#1503硬件支持

GPL-3.0-or-later

5MB
808

包含 (WOFF 字体, 680KB) docs/NanumBarunGothic.ttf.woff, (WOFF 字体, 400KB) docs/NanumBarunGothic.ttf.woff2, (WOFF 字体, 190KB) docs/FiraSans-Medium.woff, (WOFF 字体, 135KB) docs/FiraSans-Medium.woff2, (WOFF 字体, 185KB) docs/FiraSans-Regular.woff, (WOFF 字体, 130KB) docs/FiraSans-Regular.woff2 及更多.

keynergy

这是 Keynergy 项目的核心库。它包括加载、修改和分析布局的功能。

它被用作 KLCordlayoutexport 的基础,以及正在开发中的 CLI 和 GUI 分析应用程序。

用法

目前不建议使用此库,因为它尚未达到 1.0.0 版本。因此,为了尽可能快地开发,将会有频繁的破坏性更改。1.0.0 版本可能直到官方 CLI 应用程序发布才发布。

贡献

这是一个小型项目,但代码可能不太符合习惯用法。如果你有任何 Rust 经验,请随时查看代码并更改你认为可以改进的任何内容。任何贡献都将受到欢迎 - 即使是文档添加或注释也极为有帮助。


lib.rs:

Keynergy

Keynergy 是一个功能强大、高效且可扩展的键盘布局分析库。

功能

Keynergy 允许你

  • 使用 Serde 序列化和反序列化布局、键盘、度量、文本数据等
  • 获取文本中字符、双词、三词和跳字组的频率
  • 使用 Ketos 声明性地编写自定义度量
  • 在布局甚至已知之前就预先准备几乎所有分析数据,使 Keynergy 非常高效

示例

use keynergy::{Keyboard, Layout, Keys, Direction, Pos};

let mut qwerty = Keys::qwerty();
assert_eq!(qwerty.pos_key(Pos::new(0, 0)), Some(&'q'));
assert_eq!(qwerty.pos_key(Pos::new(0, 1)), Some(&'a'));

// Easily swap keys.
qwerty.swap(Pos::new(0,0), Pos::new(0, 1));
assert_eq!(qwerty.pos_key(Pos::new(0,0)), Some(&'a'));

// Provides constants for our 10 human fingers.
use keynergy::fingers::*;

// Get the direction between two fingers.
assert_eq!(Direction::from(LI, LM), Direction::Outward);
assert_eq!(Direction::from(LM, LI), Direction::Inward);
assert_eq!(Direction::from(LI, LI), Direction::None);
assert_eq!(Direction::from(LI, RM), Direction::None);

// Can also be written this way.
assert_eq!(LI.dir_to(LM), Direction::Outward);

依赖项