gnome-shell/data
Georges Basile Stavracas Neto ca503774b2 panel: Add workspaces indicators in activities button
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>
2023-08-19 15:54:04 +00:00
..
cldr2json data: Update cldr2json script to new format 2022-08-10 17:11:26 +00:00
dbus-interfaces status/backlight: Add new quick toggle 2023-07-30 11:12:50 +00:00
icons status/backlight: Update icon assets 2023-08-05 19:46:48 +00:00
osk-layouts osk-layouts: Replace "SS" extra key with "ẞ" 2023-01-25 14:11:35 +00:00
theme panel: Add workspaces indicators in activities button 2023-08-19 15:54:04 +00:00
00_org.gnome.shell.gschema.override Replace custom override schema with per-desktop override 2018-07-31 18:36:26 +00:00
50-gnome-shell-launchers.xml general: Rename "application" to "app" 2023-02-07 14:46:28 +00:00
50-gnome-shell-screenshots.xml screenshot-ui: Add a key to open the screencast UI 2022-02-12 12:13:22 +00:00
50-gnome-shell-system.xml windowManager: Add shortcut for toggling quick settings 2023-06-21 18:11:05 +00:00
emoji.json keyboard: Add Emoji keyboard 2019-02-05 16:25:57 +01:00
gnome-shell-dbus-interfaces.gresource.xml status/backlight: Add new quick toggle 2023-07-30 11:12:50 +00:00
gnome-shell-icons.gresource.xml status/backlight: Update icon assets 2023-08-05 19:46:48 +00:00
gnome-shell-osk-layouts.gresource.xml keyboard: Add Hangul OSK keymap 2022-08-10 17:11:26 +00:00
gnome-shell-theme.gresource.xml theme: Include both dark and light variant in resource 2023-05-25 17:10:53 +02:00
gnome-shell.portal portal: Own org.gnome.Shell.Portal for the access portal 2021-06-05 21:29:52 -03:00
meson.build tools: Drop gnome-shell-overrides-migration.sh 2023-01-23 16:38:36 +00:00
org.gnome.Shell-disable-extensions.service data: Use org.gnome.Shell prefix for systemd units 2020-07-31 13:53:31 +00:00
org.gnome.Shell-symbolic.Source.svg data: Update page icons 2023-01-17 13:21:57 +00:00
org.gnome.Shell.desktop.in.in data: Drop old bugzilla references in .desktop files 2020-01-07 12:41:57 +01:00
org.gnome.Shell.Extensions.desktop.in.in data: Add extension-portal desktop file 2020-04-05 13:36:35 +00:00
org.gnome.shell.gschema.xml.in windowManager: Add shortcut for toggling quick settings 2023-06-21 18:11:05 +00:00
org.gnome.Shell.PortalHelper.desktop.in.in Add translator comments to .desktop files 2016-08-19 23:15:20 +02:00
org.gnome.Shell.PortalHelper.service.in Add a helper to handle captive portal logins 2014-06-26 19:54:58 +02:00
org.gnome.Shell.target data: Fix description of org.gnome.Shell.target 2020-08-20 08:11:11 +00:00
org.gnome.Shell@wayland.service.in build: Specify systemd version requirement 2023-06-30 20:13:48 +00:00
org.gnome.Shell@x11.service.in build: Specify systemd version requirement 2023-06-30 20:13:48 +00:00
perf-background.xml.in Add a special background to use for performance testing 2014-08-18 10:54:42 -04:00
README.osk-layouts data: Document JSON file format in OSK layouts README file 2022-08-10 17:11:26 +00:00
update-osk-layouts.sh data: Don't clone cldr2json when updating OSK layouts 2020-03-27 16:44:27 +00:00

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