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 解析器实现
每月2,331次下载
110KB
2.5K SLoC
.dof 文件格式是一种与 json 兼容的格式,具有指定字段,用于描述任何键盘布局,包括一些默认值。
它有一组固定数量(有时是可选的)的字段
-
name: 布局名称 -
[author]: 布局的作者 -
board: 为布局创建的键盘类型。任何值都是允许的,但一些值具有特殊属性(下文将进一步解释)ansiisoorthocolstag
-
[date]: 创建布局的日期。 -
[description]: 包含作者一些想法的字符串。 -
[link]: 包含有关布局更多信息的网页的 URL。 -
layers: 指定布局上的所有层。它们的形式为name: <layer>,并且每个层由由任何数量的空白符(但通常是一个空格)分隔的键组成的字符串指定。它们的工作方式如下- 如果字符串长度为 1,则输出
- 当等于
~时为空键 - 当等于
*时为透明键,它指的是主层上的值。这在主层上相当于~ - 当等于
\n时为 Enter - 当等于
\t时为 Tab - 其他情况下为字符键
- 当等于
- 如果字符串长度超过 1,则输出
- 如果包含
\\~和\\*,则包含~和*字符 - 当与特定的标识符结合时,特殊键(如Shift或空格),可以在文档底部找到这些标识符
- 如果以
@开头,则为层键,例如@altgr - 如果以
#、\\#或\\@开头,则移除其第一个字符的单词键,例如\\@altgr将输出为@altgr而不是成为altgr层键 - 否则,输出多个字符的单词键
- 如果包含
所有层名称都允许使用,尽管有两个是保留的,分别是
main(必填)shift
虽然main是必填的,但shift可以省略,并将遵循qwerty的大写方案。任何形状都可以使用,但如果使用标准3x10形状,可能可以省略手指图(下面将详细介绍)
- 如果字符串长度为 1,则输出
-
fingering:指定哪个手指按下哪个键。它的格式与层对象相同,并且应该具有完全相同的形状(否则将出错)LP或0:左小指LR或1:左环指LM或2:左中指LI或3:左食指LT或4:左拇指RT或5:右拇指RI或6:右食指RM或7:右中指RR或8:右环指RP或9:右小指
如上所述,在以下情况下,可以省略此定义,而只需提供字符串
- board = ansi,主层形状从qwerty
q开始,允许的手指:传统、标准、角度 - board = iso,主层形状为qwerty
q,底部有11个键,允许的手指:传统、标准、角度 - board = ortho,主层形状=3x10,允许的手指:传统、标准
- board = colstag,主层形状=3x10,允许的手指:传统、标准
如果提供任何其他值,则应报错。
特殊修饰符值
esc=>Esc,repeat,rpt=>Repeat,space,spc=>Space,tab,tb=>Tab,enter,return,ret,ent,rt=>Enter,shift,shft,sft,st=>Shift,caps,cps,cp=>Caps,ctrl,ctl,ct=>Ctrl,alt、lalt、ralt、lt=>Alt,meta、mta、met、mt、super、sup、sp=>Meta,fn=>Fn,backspace、bksp、bcsp、bsp=>Backspace,del=>Del,
依赖关系
~0.9–1.5MB
~33K SLoC