-
Notifications
You must be signed in to change notification settings - Fork 0
File formats
An example layout file (colemak_ca_ansi
) is shown below.
fingermap: ansi_angle
q w f p b j l u y ;
a r s t g m n e i o '
x c d v z k h , . /
The keys in the layout are separated using single spaces. If multiple spaces appear, the key(s) that would have been between the spaces will be skipped.
Double slashes //
in the file can be used to delineate comments; anything from a //
to the end of the line will be ignored by trialyzer.
Additional specifications may be given on their own lines, which will not be taken as part of the layout. These options are:
-
fingermap:
Specifies the name of a fingermap found in/fingermaps/
, which will be used for the layout. Defaults totraditional
if not given. -
board:
Specifies the name of a board found in/boards/
, which will be used for the layout. Defaults toansi
if not given. -
first_pos:
Specifies the position of the first key in the layout. The format for this isfirst_pos: ROW col
. Defaults toTOP 1
if not given.
A key may not appear more than once in the layout.
An example fingermap (ansi_angle
) is shown below. The format is very similar to the constraintmap specification.
LP LP LR LM LI LI RI RI RM RR RP RP RP RP
LP LP LR LM LI LI RI RI RM RR RP RP RP RP
LP LP LR LM LI LI RI RI RM RR RP RP RP
LP LR LM LI LI LI RI RI RM RR RP RP
LP LT LT RT RT
A finger is specified for each key. Keys are separated using single spaces. If multiple spaces appear, the key(s) that would have been between the spaces will be skipped. Layouts do not need to use every key specified in the fingermap. Conversely, keys not specified in the fingermap will be assigned to a finger called UNKNOWN
.
Double slashes //
in the file can be used to delineate comments; anything from a //
to the end of the line will be ignored by trialyzer.
Additional specifications may be given on their own lines, which will not be taken as part of the fingermap. These options are:
-
first_pos:
Specifies the position of the first key in the fingermap. The format for this isfirst_pos: ROW col
. Defaults toNUMBER 0
if not given.
An example board (ansi
) is shown below.
NUMBER 0 0.0 4.0 13
TOP 0 0.5 3.0 13
HOME 0 0.75 2.0 12
BOTTOM 0 1.25 1.0 11
THUMB 0 0.5 0.0 1 // ctrl_l, win_l
THUMB 2 3.0 0.0 // alt_l
THUMB 3 5.0 0.0 // space_l
THUMB 4 7.5 0.0 // space_r
THUMB 5 10 0.0 // alt_r
THUMB 6 11.5 0.0 8 // win_r, menu, ctrl_r
default_key: BOTTOM 0 shift_l
default_key: BOTTOM 11 shift_r
default_key: THUMB 4 space_r
default_key: THUMB 2 alt_l
Double slashes //
in the file can be used to delineate comments; anything from a //
to the end of the line will be ignored by trialyzer.
Each line in the specification describes the physical coordinates of one or more keys. Layouts and fingermaps do not need to use every key specified in the board.
The format of each line is ROW col x y col2
.
-
ROW
andcol
specify the position of the key in question. -
x
andy
specify the coordinates of the key. -
col2
is optional. If present, additional keys in the row will be specified up to and including the key atROW col2
, each spaced a distance of +1.0 from the previous key. This feature allows evenly spaced runs of keys to be described in one line, greatly improving conciseness.
For example,is equivalent to:HOME 2 0.0 3.0 7
HOME 2 0.0 3.0 HOME 3 1.0 3.0 HOME 4 2.0 3.0 HOME 5 3.0 3.0 HOME 6 4.0 3.0 HOME 7 5.0 3.0
Additional specifications may be given on their own lines. These options are:
-
default_key:
Specifies a key that will be included by default in any layout using this board. The format for this isdefault_key: ROW col key_name
. (More info on positions) If a layout specifies this key in a different position, or specifies a different key in this position, the layout's specification takes priority.
An example constraintmap (traditional-default
) is shown below. The format is very similar to the fingermap specification.
0.025 0.025
0.015
0.025 0.05 0.05 0.05 0.05 0.025
A maximum allowable usage frequency is specified for each key. Keys are separated using single spaces. If multiple spaces appear, the key(s) that would have been between the spaces will be skipped. Any key without a specified constraint will be unconstrained; that is, the maximum allowable frequency will be 1.0
(100%).
Double slashes //
in the file can be used to delineate comments; anything from a //
to the end of the line will be ignored by trialyzer.
Additional specifications may be given on their own lines, which will not be taken as part of the constraintmap. These options are:
-
first_pos:
Specifies the position of the first key in the constraintmap. The format for this isfirst_pos: ROW col
. Defaults toTOP 1
if not given.