38 个版本 (16 个重大更改)

0.19.0 2024年6月30日
0.16.3 2024年6月17日
0.16.0 2024年3月2日
0.14.11 2023年11月23日
0.3.0 2023年3月8日

#358 in 解析器实现

Download history 1/week @ 2024-05-17 209/week @ 2024-05-31 53/week @ 2024-06-07 168/week @ 2024-06-14 161/week @ 2024-06-21 170/week @ 2024-06-28 13/week @ 2024-07-05

每月2,331次下载

Apache-2.0

110KB
2.5K SLoC

.dof 文件格式是一种与 json 兼容的格式,具有指定字段,用于描述任何键盘布局,包括一些默认值。

它有一组固定数量(有时是可选的)的字段

  • name: 布局名称

  • [author]: 布局的作者

  • board: 为布局创建的键盘类型。任何值都是允许的,但一些值具有特殊属性(下文将进一步解释)

    • ansi
    • iso
    • ortho
    • colstag
  • [date]: 创建布局的日期。

  • [description]: 包含作者一些想法的字符串。

  • [link]: 包含有关布局更多信息的网页的 URL。

  • layers: 指定布局上的所有层。它们的形式为 name: <layer>,并且每个层由由任何数量的空白符(但通常是一个空格)分隔的键组成的字符串指定。它们的工作方式如下

    • 如果字符串长度为 1,则输出
      • 当等于 ~ 时为空键
      • 当等于 * 时为透明键,它指的是主层上的值。这在主层上相当于 ~
      • 当等于 \n 时为 Enter
      • 当等于 \t 时为 Tab
      • 其他情况下为字符键
    • 如果字符串长度超过 1,则输出
      • 如果包含 \\~\\*,则包含 ~* 字符
      • 当与特定的标识符结合时,特殊键(如Shift或空格),可以在文档底部找到这些标识符
      • 如果以@开头,则为层键,例如@altgr
      • 如果以#\\#\\@开头,则移除其第一个字符的单词键,例如\\@altgr将输出为@altgr而不是成为altgr层键
      • 否则,输出多个字符的单词键

    所有层名称都允许使用,尽管有两个是保留的,分别是

    • main(必填)
    • shift

    虽然main是必填的,但shift可以省略,并将遵循qwerty的大写方案。任何形状都可以使用,但如果使用标准3x10形状,可能可以省略手指图(下面将详细介绍)

  • fingering:指定哪个手指按下哪个键。它的格式与层对象相同,并且应该具有完全相同的形状(否则将出错)

    • LP0:左小指
    • LR1:左环指
    • LM2:左中指
    • LI3:左食指
    • LT4:左拇指
    • RT5:右拇指
    • RI6:右食指
    • RM7:右中指
    • RR8:右环指
    • RP9:右小指

    如上所述,在以下情况下,可以省略此定义,而只需提供字符串

    • board = ansi,主层形状从qwerty q开始,允许的手指:传统、标准、角度
    • board = iso,主层形状为qwerty q,底部有11个键,允许的手指:传统、标准、角度
    • board = ortho,主层形状=3x10,允许的手指:传统、标准
    • board = colstag,主层形状=3x10,允许的手指:传统、标准

    如果提供任何其他值,则应报错。

特殊修饰符值

  • esc => Esc,
  • repeatrpt => Repeat,
  • spacespc => Space,
  • tabtb => Tab,
  • enterreturnretentrt => Enter,
  • shiftshftsftst => Shift,
  • capscpscp => Caps,
  • ctrlctlct => Ctrl,
  • altlaltraltlt => Alt,
  • metamtametmtsupersupsp => Meta,
  • fn => Fn,
  • backspacebkspbcspbsp => Backspace,
  • del => Del,

依赖关系

~0.9–1.5MB
~33K SLoC