mirror of
https://github.com/edu4rdshl/gnome-shell.git
synced 2026-07-17 23:24:51 +00:00
Following GNOME/gnome-shell!1472. It's been almost three years since ConditionEnvironment was available. Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2791> |
||
|---|---|---|
| .. | ||
| cldr2json | ||
| dbus-interfaces | ||
| icons | ||
| osk-layouts | ||
| theme | ||
| 00_org.gnome.shell.gschema.override | ||
| 50-gnome-shell-launchers.xml | ||
| 50-gnome-shell-screenshots.xml | ||
| 50-gnome-shell-system.xml | ||
| emoji.json | ||
| gnome-shell-dbus-interfaces.gresource.xml | ||
| gnome-shell-icons.gresource.xml | ||
| gnome-shell-osk-layouts.gresource.xml | ||
| gnome-shell-theme.gresource.xml | ||
| gnome-shell.portal | ||
| meson.build | ||
| org.gnome.Shell-disable-extensions.service | ||
| org.gnome.Shell-symbolic.Source.svg | ||
| org.gnome.Shell.desktop.in.in | ||
| org.gnome.Shell.Extensions.desktop.in.in | ||
| org.gnome.shell.gschema.xml.in | ||
| org.gnome.Shell.PortalHelper.desktop.in.in | ||
| org.gnome.Shell.PortalHelper.service.in | ||
| org.gnome.Shell.target | ||
| org.gnome.Shell@wayland.service.in | ||
| org.gnome.Shell@x11.service.in | ||
| perf-background.xml.in | ||
| README.osk-layouts | ||
| update-osk-layouts.sh | ||
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