ca503774b2
After removing the app name and icon, the next natural step that was requested from the design team is to add workspaces indicators to the top bar, where currently the Activities button is placed. In addition to that, this is desired because there are known issues with using "Activities" as a label for the overview. A more comprehensive rationale for that can be found at [1]. Add an workspaces indicator replacing the Activities label in the activities button. The WorkspaceIndicators class controls how many workspaces dots exists, their expansion, and the width multiplier. The WorkspaceDot class takes the expansion and the multiplier, and applies it internally so that we can get perfectly rounded dots at all times without using CSS hacks. The width multipliers are hardcoded, and defined by the design team. We can revisit them later if necessary. Special care is taken to not let these width multipliers result in fractional widths. When the number of workspaces changes, WorkspaceIndicators adds new dot to the end, and animate them. When removing, scale the dot out, then destroy it. This does not work with workspace grids, but that's not supported by GNOME Shell anyway, so no effort is made to cover this use case. The button continues to have "Activities" as its accessible name, but the label actor is removed. Also adjust the padding of the activities pill, so it better wraps the new indicators. [1] https://gitlab.gnome.org/Teams/Design/os-mockups/-/issues/227 Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2902> |
||
---|---|---|
.. | ||
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