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
: 为布局创建的键盘类型。任何值都是允许的,但一些值具有特殊属性(下文将进一步解释)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形状,可能可以省略手指图(下面将详细介绍)
- 如果字符串长度为 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