19478 Commits

Author SHA1 Message Date
Bilal Elmoussaoui
1471733dfd st/widget: Adapt to upstreamed accessible state tracking
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3510>
2025-01-20 14:38:06 +00:00
Bilal Elmoussaoui
44b84e458a st/image-content: Take a CoglContext on set_bytes/set_data functions
This avoids retrieving it from the global clutter backend and instead
pass things around.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3528>
2025-01-20 11:50:31 +00:00
Bilal Elmoussaoui
76f2262d9c st/texture-cache: Remove unused helper
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3528>
2025-01-20 11:50:31 +00:00
Bilal Elmoussaoui
a8496dc90f st/theme-node: Get resolution from context
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3528>
2025-01-20 11:50:30 +00:00
Bilal Elmoussaoui
eaee51ff16 st/theme-context: Keep a pointer to ClutterBackend
Allows avoiding the usage of the global one and would also be used in
the next commit.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3528>
2025-01-20 11:50:30 +00:00
Bilal Elmoussaoui
f5b58cf102 st/theme-context: Drop constructor
Nothing really uses it except internally.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3528>
2025-01-20 11:50:30 +00:00
Bilal Elmoussaoui
343761e70e st/node-drawing: Pass CoglContext around
We already have access to it in most of places, just pass it around
instead of going through globals.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3528>
2025-01-20 11:50:29 +00:00
Bilal Elmoussaoui
084a1b3be7 plugin: Remove unused CoglContext field
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3528>
2025-01-20 11:50:29 +00:00
Bilal Elmoussaoui
0e92689801 Remove re-shadowed variable
Drops a call to get_default_backend

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3528>
2025-01-20 11:50:29 +00:00
Bilal Elmoussaoui
b3f5f9601b Go through global stage for getting ClutterBackend
Instead of using the default backend.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3528>
2025-01-20 11:50:29 +00:00
Bilal Elmoussaoui
fea29eb490 Get ClutterBackend/CoglContext from the Actor/Texture
Avoids going through the global backend helper.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3528>
2025-01-20 11:50:29 +00:00
Daniel van Vugt
dee6cf3f6b panel: Ensure already destroyed panels don't receive callbacks
To prevent sporadic shutdown failures:
```
** Message: 17:08:37.707: Shutting down GNOME Shell

(gnome-shell:91892): Gjs-CRITICAL **: 17:08:37.728: Object .Gjs_ui_panel_Panel (0x5b53524fb030), has been already disposed — impossible to access it. This might be caused by the object having been destroyed from C code using something such as destroy(), dispose(), or remove() vfuncs.
```

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3601>
2025-01-20 16:18:37 +08:00
Martin
43e39b9d02 Update Slovenian translation 2025-01-17 10:40:12 +00:00
Florian Müllner
01bef5103a ci: Bump mutter image
meta-dbus-runner now requires a newer dbusmock version, update
the image to pull it in.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3600>
2025-01-16 23:51:56 +00:00
Emilio Sepúlveda
d1cafc8d50 Update Interlingua translation 2025-01-16 19:27:11 +00:00
Rafael Fontenelle
2c5e96f96f Update Brazilian Portuguese translation 2025-01-16 02:14:22 +00:00
Quentin PAGÈS
6ceffb4b69 Update Occitan translation 2025-01-15 19:43:19 +00:00
Philip Withnall
08b06acc4c timeLimitsManager: Only stop the state machine if it’s already running
This fixes a bug which happens if screen time limits are *disabled* and
the history file
(`~/.local/share/gnome-shell/session-active-history.json`) is missing
when gnome-shell is started.

If so, the code would previously have incorrectly called
`this._stopStateMachine()` on startup, even though the state machine
wasn’t running. This adds a fake transition from ACTIVE to INACTIVE to
the history file.

If the user later (that day) enables time limits, the code assumes that
they were active from the start of the day through to that fake
transition, which is possibly sufficient time to reach the user’s limit
already. This results in the screen immediately being made greyscale as
the limit has apparently been reached.

Signed-off-by: Philip Withnall <pwithnall@gnome.org>

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8155
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3597>
2025-01-15 17:58:15 +00:00
Artur S0
b6e1eeb315 Update Russian translation 2025-01-15 14:16:01 +00:00
Rafael Fontenelle
e601e28475 Update Brazilian Portuguese translation
(cherry picked from commit 46f471ff67e0a19821e3b452f2d5474cb8a2793b)
2025-01-15 03:48:34 +00:00
Sam Hewitt
fa16d4dc91 style: Fix background fill on tile_buttons
- addresses issue with tiles overlapping each other in the grid

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7577
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3551>
2025-01-14 16:52:15 +00:00
Florian Müllner
b426119a7e
Bump version to 48.alpha
Update NEWS.
2025-01-13 15:48:30 +01:00
Philip Withnall
debf00c893 main: Gracefully shut down on SIGINT as well as SIGTERM
This is mostly for use when testing a nested gnome-shell in a terminal:
terminating it with Ctrl+C from that terminal should give the process an
opportunity to save state on shutdown (such as the screen time limits
history file).

Signed-off-by: Philip Withnall <pwithnall@gnome.org>
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3397>
2025-01-13 14:24:02 +00:00
Philip Withnall
212e098da1 timeLimitsManager: Add new state machine for screen time limits
This implements wellbeing screen time limits in gnome-shell. It depends
on a few changes in other modules:
 - New settings schemas in gsettings-desktop-schemas
 - A settings UI in gnome-control-center
 - User documentation in gnome-user-docs

It implements the design from
https://gitlab.gnome.org/Teams/Design/settings-mockups/-/blob/master/wellbeing/wellbeing.png.

The core of the implementation is `TimeLimitsManager`, which is a state
machine which uses the user’s session state from logind to track how long
the user has been in an active session, in aggregate, during the day. If
this total exceeds their limit for the day, the state machine changes
state.

The user’s session activity history (basically, when they logged in and
out for the past 14 weeks) is kept in a state file in their home
directory. This is used by gnome-shell to count usage across reboots in
a single day, and in the future it will also be used to provide usage
history in gnome-control-center, so the user can visualise their
historic computer usage at a high level, for the past several weeks.

The `TimeLimitsDispatcher` is based on top of this, and controls showing
notifications and screen fades to make the user aware of whether they’ve
used the computer for too long today, as per their preferences.

Unit tests are included to check that `TimeLimitsManager` works, in
particular with its loading and storing of the history file. The unit
tests provide mock implementations of basic GLib clock functions, the
logind D-Bus proxy and `Gio.Settings` in order to test the state machine in
faster-than-real-time.

Signed-off-by: Philip Withnall <pwithnall@gnome.org>

See: https://gitlab.gnome.org/Teams/Design/initiatives/-/issues/130
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3397>
2025-01-13 14:24:02 +00:00
Philip Withnall
1ceb803686 shell: Add ShellTimeChangeSource to track system clock changes
This is a `GSource` which is dispatched when the offset of the system
real/wall clock changes with respect to the system monotonic clock. This
can happen when the user explicitly changes the system clock, or when
there’s an NTP sync after a prolonged period offline.

The source can’t tell you *what* the offset change was, just that there
was one.

This will be used in an upcoming commit.

Signed-off-by: Philip Withnall <pwithnall@gnome.org>
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3397>
2025-01-13 14:24:01 +00:00
Philip Withnall
3bc3a4da68 dbus-interfaces: Expose more properties from o.fd.login1.User
These will be used in an upcoming commit to track the user’s session
state.

Signed-off-by: Philip Withnall <pwithnall@gnome.org>
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3397>
2025-01-13 14:24:01 +00:00
Philip Withnall
a37d6d480b loginManager: Allow access to the D-Bus user proxy
It’s needed in an upcoming commit, to watch the user’s state
(active/online/offline/lingering/closing).

Signed-off-by: Philip Withnall <pwithnall@gnome.org>
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3397>
2025-01-13 14:24:01 +00:00
Florian Müllner
67c5be9c53 util: Stop special-casing trySpawnCommandLine() parse errors
Unlike for plain JS Errors, the `message` property of GLib.Errors
is read-only, so the intent to replace it with a nicer message
triggers an Error itself.

We could create a new GLib.Error with the changed message instead,
but as it turns out, none of the parse errors contain the technical
prefix we want to strip out, so we can simply drop the special-casing
altogether.

This is also consistent with `spawnCommandLine()`, which never
had special treatment of parse errors.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8146
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3593>
2025-01-12 22:43:02 +00:00
Sabri Ünal
182800315a Update Turkish translation 2025-01-11 15:49:28 +00:00
Athmane MOKRAOUI
7780d68485 Update Kabyle translation 2025-01-11 09:50:33 +00:00
Sam Hewitt
038b06d868 style: Adjust the focus logic to accommodate accent color
- adjust definitions for focus/accent related colors
- rework the focus mixins to better match how libadwaita handles accent color and focus

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7989
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3552>
2025-01-10 18:31:38 +00:00
Sam Hewitt
4a89811211 style: Tweak menuitem drawing function to fix hover color
- drop the flat style if statement, since it's unused/redundant
- use same style for hover, selected and checked

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7939
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3552>
2025-01-10 18:31:38 +00:00
Sam Hewitt
256e9d7925 style: Sync warning color with libadwaita
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7863
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3552>
2025-01-10 18:31:38 +00:00
Sam Hewitt
c072f7c10c style: Sync base grey colors with libadwaita
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8058
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3552>
2025-01-10 18:31:38 +00:00
Sam Hewitt
eeddf49371 style: Improve the styles for the separation in quick setting buttons
- remove the highlighting js in favour of color definitions, to fix it not really working in light theme or high contrast
- add a bunch of color definitions to set the color of the menu button in the different styles
- drop the border drawing for a separator, to fix visual issues with the high border radius, in favour of a separator element
- change the class names of some things to make it understandable
- bit of overall css tidying

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3554>
2025-01-10 18:22:09 +00:00
Sam Hewitt
f9b231beb3 style: Clean up the keyboard stylesheet
- remove a lot of unused styles and deprecated class definitions
- fix the padding and spacing of subkeys popover
- fix the lack of vertical padding on word-suggestions

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3553>
2025-01-10 17:58:15 +00:00
Sam Hewitt
b73159f414 keyboard: New and updated symbolic assets
- renamed all assets to start with osk- disambiguate them from other keyboard status icons
- updated the design of hide, enter and keyboard layout icons to be more rounded
- new symbolic assets for emoji and delete actions to move away from using 16x16
- updated keyboard scss to use the scalable icon definition
- updated the zwnj asset to align with GNOME icon style
- changed all references to icons in layouts

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3555>
2025-01-10 14:22:01 +00:00
Florian Müllner
7d3ca0c3cf extensions: Add convenience logging API
This allows extension to create a custom `console` object that
marks message to belonging to the extension.

Right now that means prefixing each message with the extension name,
but in the future it could also set custom journal fields if gjs
starts exposing that functionality.

See https://discourse.gnome.org/t/convenience-logging-api-for-extensions/24361
for the original discussion.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3586>
2025-01-10 13:02:13 +00:00
AuralRay
2c9e75252a style: Tweak ibus popover border radius
Both the popover padding and the radius of candidate items
is smaller than in "normal" popovers. Adjust the radius
of the candidate popup accordingly to better match the items.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3584>
2025-01-08 10:30:07 +00:00
Florian Müllner
c58b826788 build: Drop unnecessary build dependency
ibus has been mandatory since commit 083d11a032, but it was always
only used at runtime (or during tests). We don't require other
runtime dependencies (like libgdm) at build time either, so stop
checking for ibus.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3587>
2025-01-06 22:21:09 +00:00
Jakub Steiner
e55820cb1f data: Ship local copy of a cog wheel icon
Closes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8135

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3589>
2025-01-06 22:10:54 +00:00
Yaron Shahrabani
2f6281ef33 Update Hebrew translation 2025-01-06 12:18:27 +00:00
Matthijs Velsink
1e6c92a083 status/a11y: Block 'toggled' signal when manually toggling
When the 'text-scaling-factor' key changes and it's set bigger than 1.0,
the corresponding switch is activated in the a11y menu. However, since
commit 946ee936926a0e14fa5f86f62da757bcb581a147, setting the state using
`setToggleState()` also fires the 'toggled' signal, which is I think
correct and intended.

However, that means the GSettings handler for 'text-scaling-factor'
should block that 'toggled' handler when it sets the switch active, as
otherwise the 'text-scaling-factor' is always set to 1.25 when it is
first made bigger than 1.0.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3574>
2025-01-04 22:41:47 +01:00
AsciiWolf
5057a7fe0e appDisplay: Add org.freedesktop.MalcontentControl to Utilities
malcontent-control is now a standalone app that is displayed in Shell Overview.
Let's place it in the Utilities folder instead of taking up space (and confusing users)
in the main app grid

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8124
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3579>
2025-01-04 16:09:09 +00:00
Florian Müllner
3d87782a58 status/a11y: Simplify "Large Text" toggle
It is the last user of `_buildItemExtended()`, so merge it with
`_buildFontItem()`.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3576>
2025-01-04 15:42:29 +00:00
Florian Müllner
6029380267 status/a11y: Simplify switch setup
Almost all switches represent boolean settings, which means we can
use bindings instead of fiddling with signal handlers.

As menu items have a `:sensitive` property, this also deals with
handling keys' writability.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3576>
2025-01-04 15:42:29 +00:00
Florian Müllner
296e5c32e4 popupMenu: Expose SwitchItem state as GObject property
This will allow using bindings instead of explicit signal connections.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3576>
2025-01-04 15:42:29 +00:00
Florian Müllner
6dbb2eef50 popupMenu: Avoid unnecessary accessible state update in switch items
The accessible state is already updated when changing the switch state.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3576>
2025-01-04 15:42:29 +00:00
Florian Müllner
3421a3825a popupMenu: Make checkAccessibleState() private
Updating the accessible state is an internal business of the
class, so making it private is more appropriate.

Besides, it was never called from outside the class since it
was added in 2012, so it's unlikely we'll ever have a use case
for it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3576>
2025-01-04 15:42:29 +00:00
Alberto Ruiz
46efbfb2ab build: Use python instead of perl to convert glsl source into a C string
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3578>
2025-01-04 11:24:53 +00:00