cfc0d42c7a
This will allow OSK descriptions to declare "tall" keys. May be used in combination with the "start" property added in previous commits, in case a gap needs to be explicitly left. No OSK description uses this yet. Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3162>
85 lines
2.8 KiB
Plaintext
85 lines
2.8 KiB
Plaintext
Gnome-shell OSK layouts are extracted from CLDR layout definitions:
|
|
https://www.unicode.org/cldr/charts/latest/keyboards/layouts/index.html
|
|
|
|
To add new layouts from CLDR:
|
|
|
|
1) Run update-osk-layouts.sh
|
|
|
|
2) Modify JSON files to add extra keys, tweak appearance...
|
|
|
|
2) Do git add and git commit
|
|
|
|
JSON file format
|
|
================
|
|
|
|
Each JSON file describes a keymap for a certain language and layout,
|
|
it has the following structure:
|
|
|
|
- Root (Object)
|
|
|
|
Root object of a layout, has the following properties:
|
|
|
|
- levels (Array of Level): Levels in the keymap
|
|
- locale (String): Locale name for this keymap
|
|
- name (String): Human readable name for this keymap
|
|
|
|
- Level (Object)
|
|
|
|
A level defines the keys available on a keyboard level,
|
|
these are the key panels visible at a time. E.g. to type
|
|
uppercase levels or symbols.
|
|
|
|
Levels have the following properties:
|
|
|
|
- level (String): Name of the level, common names are
|
|
"", "shift", "opt" and "opt+shift".
|
|
- mode (String): Mode for this level, common modes are
|
|
"default", "latched" and "locked".
|
|
- rows (Array of Row): Array of rows of keys.
|
|
|
|
- Row (Array)
|
|
|
|
A row is an Array of Key.
|
|
|
|
- Key (Object)
|
|
|
|
A keyboard key. Keys have the following properties:
|
|
|
|
- iconName (String): Icon name to show on the key.
|
|
Keys with an icon name do not have a label.
|
|
- label (String): Label to show on the key.
|
|
- strings (Array of String): Strings to commit. If
|
|
label property does not exist, the first element
|
|
will be also the label. Extra elements are shown
|
|
in the extra keys popover.
|
|
- keyval (String): Hexadecimal keyval to emit as
|
|
emulated key presses. Committed strings are
|
|
preferred.
|
|
- leftOffset (Double): If set, the left offset of
|
|
this key, relative to the key immediately to the
|
|
left, or the start of the row. If not set, the key
|
|
will be implicitly located at the right of the
|
|
previous key in the row. Multiples of 0.5 are
|
|
accepted.
|
|
- width (Double): Relative width of the key in the
|
|
row. 1 is for a square key. Multiples of 0.5 are
|
|
accepted. The implicit default value is 1.
|
|
- height (Double): Relative height of the key in
|
|
the grid. The key will overflow downwards. Multiples
|
|
of 0.5 are accepted. The implicit default value is 1.
|
|
- level (Integer): Level that the key switches to.
|
|
See the levelSwitch action.
|
|
- action (string): Action performed by the key,
|
|
accepted actions are:
|
|
|
|
- hide: Hides the OSK
|
|
- languageMenu: Pops up the language selection
|
|
menu
|
|
- emoji: Switches to the emoji selection panel
|
|
- modifier: Handles the keyval as a modifier
|
|
key. This handles e.g. Ctrl+A as a sequence
|
|
of Ctrl press, A press, A release, Ctrl
|
|
release.
|
|
- delete: Deletes text backwards
|
|
- levelSwitch: Switches OSK to a different level
|