236 Commits

Author SHA1 Message Date
f675f95c67 Citadel changes to gnome-shell 2025-04-07 13:46:32 +00:00
Florian Müllner
a2ffd14a35
Bump version to 48.0
Update NEWS.
2025-03-16 15:30:51 +01:00
Florian Müllner
429f08b597
Bump version to 48.rc
Update NEWS.
2025-03-03 17:11:24 +01:00
Florian Müllner
38c6293f4f data: Generate dash/app-grid defaults from text files
Defining default apps as serialized GVariants isn't very human-friendly,
which likely contributes to the fact that the lists are in parts horribly
outdated (Books! Cheese! Screenshot! gedit!).

Instead, generate the lists at build time from simple text files, which
should be much easier to update.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3632>
2025-02-13 19:59:17 +00:00
Florian Müllner
9ecc278e29
Bump version to 48.beta
Update NEWS.
2025-02-05 00:36:41 +01:00
Philip Withnall
73565e582c timeLimitsManager: Simple split of enabled setting in two
As described and motivated in
https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/3306, it
turns out that we want to be able to save screen time usage data while
not enabling limits based on that usage.

Bump the shell’s dependency on gsettings-desktop-schemas to get the
split setting, and roughly adapt the existing `timeLimitsManager` code
to use the new setting names. The code currently treats the two settings
as equivalent / expects them both to be set the same. The following
commits will refine that behaviour.

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

Helps: https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/3306
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3610>
2025-01-28 16:19:21 +00:00
Florian Müllner
b426119a7e
Bump version to 48.alpha
Update NEWS.
2025-01-13 15:48:30 +01: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
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
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
Philip Withnall
df3b4d302d breakManager: Add new state machine for screen time/health breaks
This implements health break reminder support in gnome-shell. It depends
on a
few bits and bobs from other modules:
 - New settings schemas in gsettings-desktop-schemas (released in
   47.beta, which Mutter already depends on)
 - 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 `BreakManager`, which is a state
machine which uses the Mutter `IdleMonitor` to track whether the user
is, or should be, in a screen time break.

The `BreakDispatcher` is based on top of this, and controls showing
notifications, countdown timers, screen fades, the lock shield, etc. to
make the user aware of upcoming or due breaks, as per their notification
preferences.

Unit tests are included to check that `BreakManager` works. These
provide mock implementations of basic GLib clock functions, the
`IdleMonitor` 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/3251>
2024-11-28 10:44:10 +00:00
Florian Müllner
86be4e31a6 build: Use SPDX identifier for license field
SPDX has become the established standard for expressing FLOSS
licenses, and is what meson itself strongly recommends for the
license field.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3521>
2024-10-21 10:57:21 +00:00
Florian Müllner
bf848a629a build: Rename meson_options.txt to meson.options
The name is a bit cleaner, and has been the preferred option(!)
since meson 1.1.

Mutter recently updated the name, so follow suite.

The meson version bump shouldn't be an issue, given that several
hard dependencies like mutter and glib already require higher
versions.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3515>
2024-10-18 17:22:04 +02:00
Bilal Elmoussaoui
9b58704c5d build: Replace cogl-pango with pango dependency
As CoglPango will be merged with Clutter and GNOME Shell
only uses Pango directly, so depend on that instead

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3494>
2024-10-02 22:54:59 +02:00
Robert Mader
fa3124568c build: Disable asserts and cast checks
For non-debug and non-plain cases - i.e. mainly release builds - in
order to mirror Mutter.

One advantage of doing this is that it allows us to use non-trivial
asserts more generously, such as calling `g_list_length()`.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3099>
2024-10-02 08:56:23 +00:00
Florian Müllner
58f8987c07 build: Bump mutter API version
We have branched, so mutter's API version was bumped for GNOME 48.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3482>
2024-09-23 13:31:25 +02:00
Florian Müllner
957504b1f6
Bump version to 47.0
Update NEWS.
2024-09-14 17:17:32 +02:00
Florian Müllner
092fd6334d
Bump version to 47.rc
Update NEWS.
2024-09-01 13:53:34 +02:00
Florian Müllner
e2ce7e3f0f man: Port the man pages to reStructuredText
It's as human-readable as asciidoc and produces the same results,
but the tooling is more widely supported. Also both GLib and GTK
switched to it for their man pages, so rst2man is already a
dependency of the platform.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3454>
2024-08-28 19:49:45 +00:00
Florian Müllner
1f2f2d0de1 build: Stop pre-generating man pages
The original asciidoc project is still stuck on python2, so on
distros that didn't switch to a fork (like Fedora), it pulls
in over 100M of legacy dependencies.

However we are about to move our man pages to reStructuredText
which doesn't have that issue, and which is already used for
GLib's and GTK's man pages.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3454>
2024-08-28 19:49:45 +00:00
Florian Müllner
2ce940fd9b
Bump version to 47.beta
Update NEWS.
2024-08-03 20:12:28 +02:00
Florian Müllner
1403747863 build: Add option to disable portal-helper
The portal login window uses WebKit, which is a security-sensitive
component that not all vendors want to support.

Support that case with a build option, and update the captive
portal handler to use the user's default browser if the portal-helper
is disabled.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3408>
2024-07-25 01:51:17 +00:00
Florian Müllner
e997a0a724
Bump version to 47.alpha
Update NEWS.
2024-06-29 21:45:07 +02:00
Bilal Elmoussaoui
446bee5f1d build: Allow to disable x11
By detecting whether libmutter was built with x11 or xwayland support
and disabling relavant code paths

Part-of:
<https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3362>
2024-06-27 16:39:08 +02:00
Florian Müllner
b7a18a28e7 Bump mutter API version
It's time :-)

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3385>
2024-06-22 19:45:00 +02:00
Alice Mikhaylenko
ec9217bc0d st/settings: Add :accent-color
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2715>
2024-06-20 13:18:00 +00:00
Florian Müllner
55027bb084 shell/app: Remove some dead code
`g_desktop_app_info_launch_uris_as_manager_with_fds()` was added
in GIO 2.57.2. We now depend on at least 2.79.2, so we no longer
need a fallback path for the case the function isn't available.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3361>
2024-06-13 18:21:01 +00:00
Bilal Elmoussaoui
c0c4572ed5 build: Remove unnused dependencies
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3344>
2024-05-25 10:28:51 +02:00
Florian Müllner
151e2faa0f build: Set up jasmine for unit testing
Jasmine[0] is a popular testing framework for javascript, which
gjs itself has used in a heavily customized form for its own
unit tests for years.

It's far superior to the very rudimentary `jsUnit` module that
is still included with gjs, and the jasmine-gjs project provides
a general-purpose wrapper for gjs apps.

Set up the necessary build infrastructure to run unit tests
through jasmine. That allows for existing unit tests to be
ported one-by-one.

[0] https://jasmine.github.io/index.html

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3164>
2024-05-21 13:42:28 +00:00
Sebastian Wick
beb3f120dd tests: Make sure XDG_CURRENT_DESKTOP is set to an empty string
gsettings overrides can be in affect when XDG_CURRENT_DESKTOP is set. We
need predictable default values for predictable tests in mutter and thus
mutter will start asserting that GSETTINGS_BACKEND='memory' and
XDG_CURRENT_DESKTOP=''.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3329>
2024-05-21 12:17:31 +02:00
Sebastian Keller
80a37bcf53 js: Update for Gio/GioUnix split
GLib 2.79.2 split out the platform specific Gio APIs into a separate
GIRs, while still keeping a copy in the Gio GIR. gjs then added warnings
about the APIs being moved.

This bumps the Gio(Unix) version requirement to 2.79.2 and switches to
using the new GioUnix GIR.

See: https://gitlab.gnome.org/GNOME/glib/-/merge_requests/3892
See: https://gitlab.gnome.org/GNOME/gjs/-/merge_requests/918
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7539
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3288>
2024-04-29 16:48:07 +02:00
Florian Müllner
0d0aadf013
Bump version to 46.1
Update NEWS.
2024-04-21 14:24:51 +02:00
Florian Müllner
0463511457
Bump version to 46.0
Update NEWS.
2024-03-16 01:56:52 +01:00
Florian Müllner
dfb0f96f29
Bump version to 46.rc
Update NEWS.
2024-03-03 15:37:13 +01:00
Florian Müllner
d15f6c75b1 build: Bump gsettings-desktop-schemas requirement
Needed for the `xkb-model` and `show-status-shapes` settings.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3191>
2024-02-14 21:14:32 +01:00
Florian Müllner
fbe3c4120f Bump version to 46.beta
Update NEWS.
2024-02-11 17:54:00 +01:00
Florian Müllner
569293fad6 build: Remove dummy gi-docgen dependency
Instead, add a provide to the wrap that allows it to be pulled in
by the `find_program('gi-docgen')` call.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3131>
2024-01-26 13:43:28 +00:00
Georges Basile Stavracas Neto
36b3a995eb data: Remove gnome-shell.portal
Now that xdg-desktop-portal-gnome implements the Access portal
interface, GNOME Shell doesn't have to be the portal backend for
that anymore.

The D-Bus implementation is still preserved, because internally,
xdg-desktop-portal-gnome may still proxy the Access call to GNOME
Shell when the parent window is not available. That's a private
exchange between xdg-desktop-portal-gnome and GNOME Shell though,
and doesn't require GNOME Shell to be a full portal backend.

See https://gitlab.gnome.org/GNOME/xdg-desktop-portal-gnome/-/merge_requests/140

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3106>
2024-01-10 15:36:01 +00:00
robert.mader@collabora.com
0ffddb0cd2 build: Enable no-omit-frame-pointer for all non-plain builds
To mirror Mutter.

This is useful for local installations with e.g. the `release`
buildtype.
Further more, Fedora has been doing the same system wide and it
apparently was helpful in various ways.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2982>
2024-01-09 17:41:12 +01:00
Florian Müllner
99f3b24911 Bump version to 46.alpha
Update NEWS.
2024-01-07 11:16:54 +01:00
Florian Müllner
b4ea92562e Bump mutter API version
We forgot to do this when branching, so let's get it done now
before the alpha release.
2024-01-07 11:14:59 +01:00
Zander Brown
4373a91911 doc: Switch documentation to gi-docgen
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1873>
2023-12-13 14:52:48 +01:00
Florian Müllner
2127c62b21 Bump version to 45.0
Update NEWS.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2960>
2023-09-16 20:27:58 +02:00
Florian Müllner
f83dae197f Bump version to 45.rc
Update NEWS.
2023-09-06 13:55:22 +02:00
Bilal Elmoussaoui
80237b1082 Adapt to the new Mtk library
As we plan to slowly phase out Cairo where possible in libmutter
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3128

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2873>
2023-08-31 03:44:32 +00:00
Carlos Garnacho
412fad5643 Bump version to 45.beta.1
Update NEWS.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2882>
2023-08-11 01:22:08 +02:00
Florian Müllner
add49bcba1 Bump version to 45.beta
Update NEWS.
2023-08-08 12:36:03 +02:00
robert.mader@collabora.com
d09d24666a shell: Add device monitor for cameras
Pipewire allows us to easily track whether any cameras are in used by
checking the state of camera nodes. Add a simple camera monitor to the
shell, allowing us to show e.g. a status indicator.

Naturally the monitor is limited to apps using Pipewire for camera
access and thus subject to the same chicken-egg problem like the camera
portal - it could confuse users that apps may use the camera without
being noticed by the monitor. The hope and assumption here is that a
better shell integration might speed up adoption of the new camera APIs

Pipewire 0.3.49 is required for refcounted `pw_init()`/`pw_deinit()`.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2840>
2023-07-29 13:55:15 +03:00
Florian Müllner
0c6c45d426 Bump version to 45.alpha
Update NEWS.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2817>
2023-07-06 19:23:10 +02:00
Florian Müllner
479b1d3043 build: Bump mutter API version
This slipped so far this cycle, let's do it in time for the alpha
release.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2817>
2023-07-06 19:20:48 +02:00