Button Bar Reference
The itx.ttkeyboard
file must be in UTF-8 format.
All lines in the file must end in a line feed or a carriage return/line
feed pair. All settings are case-sensitive.
Identifiers
These settings identify specific keyboard layouts and set off comments.
Setting | Description |
---|---|
+ | Name layout and begin section. Also ends previous
layout if one is present. A period in the name identifies the layout as subordinate
to another layout with the same name, but without the dot extension. It also prevents the layout name from being
displayed in TinyTERM. For example, +IBM3151.shift is a
subordinate layout of +IBM3151 .+Basic Function Keys |
# | Comment line. These can be inserted anywhere in the .ttkeyboard file.# Accounting layout |
General Settings
These settings can be placed anywhere in the .ttkeyboard file, preceded with a dash. They will affect all lines below them, until a new instance of the setting is found.
Setting | Description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
fontSize | Maximum font size in points of main key labels. The label size will be
reduced automatically to fit the key if needed.-fontSize 30 |
||||||||||||
keyboardHeight | Height of button bar in pixels.-keyboardHeight 50 |
||||||||||||
keyHeight | Changes the default height of the keys, relative to a base value of 1.
keyHeight can be specified to the second decimal place, as
in the example below. It cannot be set to a specific number of pixels.
Default key height in pixels is calculated instead, based on the number of
key rows, the spacing and margin settings, iPad
orientation, and individual keys not using the default keyHeight value.-keyHeight 1.44 |
||||||||||||
labelPosition | Sets vertical position and horizontal justification of the main key label.
See image at right for the available values. Note that 0, 3 and 6 left-justify the
text; 2, 5 and 8 right-justify it; and 1, 4 and 7 center the label. Defaults to 4.-labelPosition 5 |
||||||||||||
lineJustification | Sets the justification for rows of keys:
-lineJustify 1
|
||||||||||||
margin | Minimum number of free pixels on each edge – top, bottom, left and
right – of the keyboard.-margin 3 |
||||||||||||
shiftFontSize | Maximum font size in points of shiftLabel text. As with
fontSize , shift labels will be reduced to fit if needed.-shiftFontSize 16 |
||||||||||||
shiftLabelPosition | Starting position of the shiftLabel text. Uses the same values as
labelPosition . Defaults to 0.-shiftLabelPosition 1 |
||||||||||||
size | Changes the default width of keys, relative to a base value of 1.
size can be specified to the second decimal place. It cannot be
set to a specific number of pixels. Default key size in pixels
is calculated instead, based on the number of keys in the widest row, the
spacing and margin settings, iPad orientation,
and any individual keys not using the default size value.-size 1.5 |
||||||||||||
spacing | Minimum number of pixels between keys-spacing 2 |
Key Options
When a key is defined within square brackets [ ], options may be added to the definition, set off by two semicolons. Many of the general settings can also be applied to individual keys, and so are repeated below with key-specific examples. Options are all case-sensitive.
When a semicolon is desired as a displayed character inside the brackets, such as
for a label or shiftLabel
, separate it from the double semicolons by a space:
[; ;;shiftLabel=:]
Option | Description |
---|---|
\ | Escape character. Used for special characters
that have other uses without the \. Square brackets are not required for
this option.\\ |
\n | Line break. Used for key labels and the shiftLabel option to
break a string into multiple lines.[Send\nLine;;keyString=\e!8\r] |
blank | When set to 1, prevents the key from being drawn. Used for creating
space between visible keys in addition to that specified by the spacing
attribute. Blank keys are treated as any others by general attributes.[BLANK;;blank=1] |
capsKey | When set to 1, causes the key to act as a Caps Lock key, regardless of other settings.[Caps;;capsKey=1] |
fontSize | Sets the font size for the primary label of the key.[Clear;;keyChar=1148;;fontSize=15] |
keyChar | Assigns a specific value to a key. Available values are listed below.[Enter;;keyChar=13] |
keyHeight | Changes the height of the individual key, relative to a base value of 1.
keyHeight can be specified to the second decimal place. Keys
taller than the default for the row expand into the next row down.
When making single a key taller than 1, free the space in the row below by
creating a key there with the blank option.[New Line;;keyHeight=2;;keyChar=1153] |
keyString | Assigns a multi-character string to a key.
This allows you to create custom key mappings with multi-byte
sequences on a single keystroke.[Login;;keyString=username] |
labelPosition | Sets vertical position and horizontal justification of the primary key label.[,;;labelPosition=7] |
shiftFontSize | Sets the font size for the shiftLabel of this key.[2;;shiftLabel=@;;shiftFontSize=12] |
shiftId | Changes the identity of a shift key. By default, the ID for a given
shiftTo or shiftLock key is the layout it refers to. This option
overrides that behavior, giving the key a unique ID.[SLock;;shiftId=shiftLock;;shiftLock=3270 Landscape.shift] |
shiftLabelPosition | Sets vertical position and horizontal justification of the
shiftLabel .[3;;shiftLabel=#;;shiftLabelPosition=2] |
shiftLabel | Displays the character as secondary on the keyboard key. Most often used
to show what character will be typed when a shiftLock is clicked.[3;;shiftLabel=#] |
shiftLock | Selects a keyboard layout to display. The selected layout
will replace the current layout. Note that all shiftLock and
shiftTo keys that refer to the current layout will darken when
any one is selected, unless they use separate shiftId values.[Fn;;shiftLock=3270 Portrait.function] |
size | Changes the width of the individual key, relative to a base value of 1.
size can be specified to the second decimal place.[Q;;size=1.45] |
Special Characters
The following characters are created with the escape character \.
Character | Value | Character | Value |
---|---|---|---|
\b | backspace (hex 08) | \\ | backslash (hex 5c) |
\[ | left square bracket (hex 5b) | \] | right square bracket (hex 5d) |
\r | carriage return (hex 0d) | \x | UTF-8 hexadecimal number; e.g., \x000d for carriage return |
\t | horizontal tab (hex 09) | \0 | octal constant; e.g., \011 for horizontal tab |
Special characters may be used in combination with the keyString
option to create complex sequences:
[PartNum;;keyString=015-249\tsku015249\x000d]
keyChar Values
The following values may be assigned to keys, using the keyChar
option. Values not listed have been reserved, and are not available.
Value | Keyboard Key | Value | Keyboard Key |
---|---|---|---|
0-255 | Equivalent ASCII character1 | 61747 | Ctrl-Page Down |
63236-63255 | Function keys F1-F20 | 61748 | Ctrl-⌫ |
63232 | Up ↑ | 61749 | Ctrl-Enter |
63233 | Down ↓ | 61750 | Ctrl-Esc |
63235 | Right → | 61751 | Ctrl-Keypad - |
63234 | Left ← | 61752 | Ctrl-Keypad + |
63273 | Home | 61753 | Ctrl-Keypad * |
61721-61730 | Numeric Keypad 0-9 | 61754 | Keypad * |
61731 | Keypad - | 61755 | Keypad + |
61732 | Keypad , | 61756 | Keypad / |
61733 | Keypad . | 61757 | Num Lock |
61734 | Keypad Enter | 61758 | Scroll Lock |
61735 | Page Down | 61759 | ⌫ |
61736 | Page Up | 61760 | Ctrl-↑ |
61737 | Ctrl-Home | 61761 | Ctrl-↓ |
63275 | End | 61762 | Ctrl-Insert |
61739 | Ctrl-End | 61763 | Ctrl-Delete |
61740 | Insert | 61766 | Ctrl-Tab |
61741 | Delete | 61767 | Ctrl-Keypad / |
61742 | Ctrl-→ | 61768 | Ctrl-Keypad Enter |
61743 | Ctrl-← | 61769-61788 | Shift-F1 to Shift-F20 |
61744 | Print Screen | 61789-61708 | Ctrl-F1 to Ctrl-F202 |
61745 | Shift-Tab | 61809-61828 | Alt-F1 to Alt-F20 |
61746 | Ctrl-Page Up | 61829-61848 | Ctrl-Shift-F1 to Ctrl-Shift-F20 |
1ASCII values are interpreted through the currently selected code page.
2Ctrl-F5 (key value 353) is also used for the VT220/VT320 Help key. Ctrl-F6 (key value 354) is also used for the VT220/VT320 Do key.
Putting It All Together
As seen above, there are a variety of options for defining keyboard keys in TinyTERM. Combined, they can create just about any key design needed. Here are two examples from the included button bar layouts. They use these default values:
-spacing 3
-margin 5
-labelPosition 4
-keyboardHeight 50
-fontSize 30
[F10;;keyChar=265]
The first argument (here F10) is always the key label. keyChar
causes the key to send the F10 function key to the host. The specific value of the
key changes with the terminal emulation, so this key will work for any emulation.
[Send\nLine;;keyString=\e!8\r;;fontSize=25]
This key shows a more complex labeling scheme. The string Send\nLine
includes the line break \n
, so the label displays across two lines.
Given the default -labelPosition 4
argument, the two-line string ends
up centered on the key.
The keyString
value sends an ASCII sequence built with
non-printable characters. It breaks down as: escape ! 8 CR
Finally, the individual fontSize
argument makes the text slightly
smaller than default. This allows the entire label to fit on the key.