19316 Commits

Author SHA1 Message Date
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
Florian Müllner
9b9191e858 runDialog: Require matching key-press for ESC shortcut
Both popover menus and dialogs can be dismissed with the Escape key,
however the former triggers on key press, while the latter triggers
on key release. As a result, the same key press+release can dismiss
both the command entry's context menu and the run dialog itself.

Fix this by only triggering a key shortcut when a matching key press
was recorded before, which matches how Dialog handles button shortcuts.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8132
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3585>
2025-01-04 00:29:14 +01:00
Maximiliano Sandoval
50ce1fcee7 extensions-app: Allow closing window with ctrl+w
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3577>
2025-01-02 16:06:06 +00:00
Bartłomiej Piotrowski
e1be874a5f ci: Switch to GNOME GitLab mirror of ci-templates
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3580>
2025-01-02 14:35:49 +00:00
Cas Pascal
0e53dd22aa Update Vietnamese translation 2025-01-01 06:54:12 +00:00
Bilal Elmoussaoui
8fbaa5e55a Adapt to split clutter/pango
In https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4106, all of
the fonts rendering related bits are now behind a build option and under
a different header.

So we bail out if mutter was built without it & make sure we include the
new clutter-pango header where needed.

<https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3544>

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3544>
2024-12-28 13:39:31 +01:00
Vasil Pupkin
9a0261f102 Update Belarusian translation 2024-12-28 09:05:22 +00:00
Florian Müllner
58a1e000fa animation: Use new spinner content
Change the dedicated Spinner widget to use the corresponding content
instead of subclassing AnimatedIcon with appropriate assets.

Other than the changed class hierarchy, the public API stays the
same, so the impact on callers should be minimal.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8055
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3565>
2024-12-24 15:37:20 +00:00
Florian Müllner
9783f72d74 st/spinner-content: Add ClutterContent for a loading indicator
Last cycle, libadwaita added a new Spinner widget whose visuals
we should adapt. It loops extremely slowly though (a framerate
of 60fps would require 3180(!) frames), which means our current
asset-based implementation isn't well-suited for the job.

Instead, reimplement the underlying GdkPaintable as ClutterContent.
This does not only ensure consistency with libadwaita, but also
gives us more flexibility by picking up style information from
the widget the content is attached to.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3565>
2024-12-24 15:37:20 +00:00
Artur S0
2508325ad7 Update Russian translation 2024-12-19 16:09:29 +00:00
Michel Dänzer
60dd2cd7a8 lightbox: Use variable magnitude for dithering noise
The magnitude of the noise in the final output scales with:

 1.0 - cogl_color_out.a

A fixed value for the magnitude relative to cogl_color_out.a might be
too small for large cogl_color_out.a or too large for small
cogl_color_out.a (or possibly even both).

Compensate for this to achieve constant magnitude in the final output.
The coefficients were determined experimentally as a compromise between
preventing colour banding with dark background content and tolerable
noise with bright background content.

This helps for the issue described in
https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7795 .

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3572>
2024-12-16 15:17:25 +00:00
Florian Müllner
cbfcf17002 breakManager: Fix (un)inhibiting unredirection
The BreakManager is a relatively recent addition, which is probably
why commit 4034e69d0d8e1 missed it.

Fixes: 4034e69d0d ("Adapt to fixed Meta functions namespace")
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3575>
2024-12-16 14:52:11 +01:00
Florian Müllner
f89276fc56 magnifier: Fix (un)inhibiting unredirection
The methods for (un)inhibiting unredirection are on the compositor,
not the display.

Fixes: 4034e69d0d ("Adapt to fixed Meta functions namespace")
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3575>
2024-12-16 14:40:45 +01:00