summaryrefslogtreecommitdiffstats
path: root/data/README.osk-layouts
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:54:43 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:54:43 +0000
commite4283f6d48b98e764b988b43bbc86b9d52e6ec94 (patch)
treec8f7f7a6c2f5faa2942d27cefc6fd46cca492656 /data/README.osk-layouts
parentInitial commit. (diff)
downloadgnome-shell-upstream.tar.xz
gnome-shell-upstream.zip
Adding upstream version 43.9.upstream/43.9upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'data/README.osk-layouts')
-rw-r--r--data/README.osk-layouts75
1 files changed, 75 insertions, 0 deletions
diff --git a/data/README.osk-layouts b/data/README.osk-layouts
new file mode 100644
index 0000000..a0a0dbe
--- /dev/null
+++ b/data/README.osk-layouts
@@ -0,0 +1,75 @@
+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.
+ - width (Double): Relative width of the key in the
+ row. 1 is for a square key. Multiples of 0.5 are
+ accepted.
+ - 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