diff --git a/.gitignore b/.gitignore index 0da54ae..0c56106 100644 --- a/.gitignore +++ b/.gitignore @@ -241,3 +241,4 @@ gnome-shell-2.31.5.tar.bz2 /gnome-shell-47.8.tar.xz /gnome-shell-47.9.tar.xz /gnome-shell-47.10.tar.xz +/gnome-shell-49.1.tar.xz diff --git a/0001-Revert-Require-gjs-1.81.2-for-build-because-Intl.Seg.patch b/0001-Revert-Require-gjs-1.81.2-for-build-because-Intl.Seg.patch index 2bceca3..b67e36d 100644 --- a/0001-Revert-Require-gjs-1.81.2-for-build-because-Intl.Seg.patch +++ b/0001-Revert-Require-gjs-1.81.2-for-build-because-Intl.Seg.patch @@ -1,4 +1,4 @@ -From 0bdde770a36e0c43b7f2ff580aa80cb6ef1583da Mon Sep 17 00:00:00 2001 +From 67bb91b741b5a30624c02cbc65c9f2a1bfe4ac6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 27 Aug 2025 13:25:01 +0200 Subject: [PATCH] Revert "Require gjs >= 1.81.2 for build because @@ -10,18 +10,18 @@ This reverts commit 9ce0cf036e4b22b6933e5425a0604fd0135d8b31. 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build -index aed3f89611..10428ea96f 100644 +index 327e5f0b7e..f1df40f702 100644 --- a/meson.build +++ b/meson.build -@@ -24,7 +24,7 @@ eds_req = '>= 3.33.1' +@@ -23,7 +23,7 @@ eds_req = '>= 3.33.1' gcr_req = '>= 3.90.0' gio_req = '>= 2.79.2' gi_req = '>= 1.49.1' -gjs_req = '>= 1.81.2' +gjs_req = '>= 1.73.1' gtk_req = '>= 4.0' - mutter_req = '>= 47.0' + mutter_req = '>= 49.0' polkit_req = '>= 0.100' -- -2.50.1 +2.51.1 diff --git a/0001-Revert-status-keyboard-Limit-the-input-method-indica.patch b/0001-Revert-status-keyboard-Limit-the-input-method-indica.patch index ba5397c..655f3f0 100644 --- a/0001-Revert-status-keyboard-Limit-the-input-method-indica.patch +++ b/0001-Revert-status-keyboard-Limit-the-input-method-indica.patch @@ -1,6 +1,6 @@ -From 8db86cefa58d5538aec7c4b24cd19e8f9f47d8d3 Mon Sep 17 00:00:00 2001 +From df7e3d8e4e4f5d6d875d1c1a48d23475dc98dc80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= -Date: Wed, 13 Aug 2025 13:44:30 +0200 +Date: Fri, 7 Nov 2025 19:57:25 +0100 Subject: [PATCH] Revert "status/keyboard: Limit the input method indicator to < 3 grapheme clusters" @@ -8,16 +8,16 @@ The change requires support for Intl.Segmenter that was introduced in mozjs-125. RHEL still includes an older gjs release based on mozjs-115, so revert the change. -This reverts commit a06400649de640e633247ebbfff56ebbfbda9933. +This reverts commit f2246442a0ade263a1f9e775f02818bbd2862ae8. --- js/ui/status/keyboard.js | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/js/ui/status/keyboard.js b/js/ui/status/keyboard.js -index df6c51c5d0..68a8044d0d 100644 +index 62f1e731db..7f00e289e3 100644 --- a/js/ui/status/keyboard.js +++ b/js/ui/status/keyboard.js -@@ -996,12 +996,6 @@ class InputSourceIndicator extends PanelMenu.Button { +@@ -1005,12 +1005,6 @@ class InputSourceIndicator extends PanelMenu.Button { } } @@ -30,7 +30,7 @@ index df6c51c5d0..68a8044d0d 100644 _buildPropSubMenu(menu, props) { if (!props) return; -@@ -1025,8 +1019,7 @@ class InputSourceIndicator extends PanelMenu.Button { +@@ -1034,8 +1028,7 @@ class InputSourceIndicator extends PanelMenu.Button { let currentSource = this._inputSourceManager.currentSource; if (currentSource) { let indicatorLabel = this._indicatorLabels[currentSource.index]; @@ -41,5 +41,5 @@ index df6c51c5d0..68a8044d0d 100644 } } -- -2.50.1 +2.51.1 diff --git a/0001-app-Fall-back-to-window-title-instead-of-WM_CLASS.patch b/0001-app-Fall-back-to-window-title-instead-of-WM_CLASS.patch index cdee8c9..283cb56 100644 --- a/0001-app-Fall-back-to-window-title-instead-of-WM_CLASS.patch +++ b/0001-app-Fall-back-to-window-title-instead-of-WM_CLASS.patch @@ -1,4 +1,4 @@ -From 55c1dfed04084e9dbaf034263172bc745f905718 Mon Sep 17 00:00:00 2001 +From 9529c76492722852802aa7aa8d351e98610487ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 20 May 2015 16:44:00 +0200 Subject: [PATCH] app: Fall back to window title instead of WM_CLASS @@ -11,10 +11,10 @@ a .desktop file ... 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/shell-app.c b/src/shell-app.c -index 04d0ab508b..4a55daf809 100644 +index 916783a597..9a90daa1dc 100644 --- a/src/shell-app.c +++ b/src/shell-app.c -@@ -247,7 +247,7 @@ shell_app_get_name (ShellApp *app) +@@ -262,7 +262,7 @@ shell_app_get_name (ShellApp *app) const char *name = NULL; if (window) @@ -24,5 +24,5 @@ index 04d0ab508b..4a55daf809 100644 name = C_("program", "Unknown"); return name; -- -2.45.2 +2.51.1 diff --git a/0001-build-Lower-gsettings-desktop-schemas-requirement.patch b/0001-build-Lower-gsettings-desktop-schemas-requirement.patch new file mode 100644 index 0000000..54dc1c7 --- /dev/null +++ b/0001-build-Lower-gsettings-desktop-schemas-requirement.patch @@ -0,0 +1,27 @@ +From 196fce5906753d6dad766dac4494038ff89599c8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Florian=20M=C3=BCllner?= +Date: Mon, 10 Nov 2025 12:43:12 +0100 +Subject: [PATCH] build: Lower gsettings-desktop-schemas requirement + +The module won't be rebased to 49.x, instead the required schema +additions have been backported. +--- + meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/meson.build b/meson.build +index f1df40f702..decb2ba136 100644 +--- a/meson.build ++++ b/meson.build +@@ -27,7 +27,7 @@ gjs_req = '>= 1.73.1' + gtk_req = '>= 4.0' + mutter_req = '>= 49.0' + polkit_req = '>= 0.100' +-schemas_req = '>= 49.alpha' ++schemas_req = '>= 47.0' + systemd_req = '>= 246' + gnome_desktop_req = '>= 40' + pipewire_req = '>= 0.3.49' +-- +2.51.1 + diff --git a/0001-data-Update-generated-stylesheets.patch b/0001-data-Update-generated-stylesheets.patch index 69c870f..5390c42 100644 --- a/0001-data-Update-generated-stylesheets.patch +++ b/0001-data-Update-generated-stylesheets.patch @@ -1,4 +1,4 @@ -From 170ccbd3d237bf980f46ae87e3da8238df9f8a3c Mon Sep 17 00:00:00 2001 +From be6698d9c8f7fbd164ac1d49b1b56b6a1cb0a059 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Tue, 16 Apr 2024 20:49:40 +0200 Subject: [PATCH] data: Update generated stylesheets @@ -10,10 +10,10 @@ Subject: [PATCH] data: Update generated stylesheets 3 files changed, 9 insertions(+) diff --git a/data/theme/gnome-shell-dark.css b/data/theme/gnome-shell-dark.css -index 339adf7e7b..5dd7d29a3a 100644 +index 75dc5c6582..dc4921c8a5 100644 --- a/data/theme/gnome-shell-dark.css +++ b/data/theme/gnome-shell-dark.css -@@ -1720,6 +1720,9 @@ StScrollBar { +@@ -1836,6 +1836,9 @@ StScrollBar { min-width: 0.5455em; min-height: 0.5455em; background-color: #ffffff; } @@ -24,10 +24,10 @@ index 339adf7e7b..5dd7d29a3a 100644 spacing: 0.409em; } #panel .panel-button.screen-recording-indicator StIcon, #panel .panel-button.screen-sharing-indicator StIcon { diff --git a/data/theme/gnome-shell-high-contrast.css b/data/theme/gnome-shell-high-contrast.css -index 4bb622aa26..8f94fa4101 100644 +index 69749c1df4..118f15ba8d 100644 --- a/data/theme/gnome-shell-high-contrast.css +++ b/data/theme/gnome-shell-high-contrast.css -@@ -1897,6 +1897,9 @@ StScrollBar { +@@ -2032,6 +2032,9 @@ StScrollBar { min-width: 0.5455em; min-height: 0.5455em; background-color: #ffffff; } @@ -38,13 +38,13 @@ index 4bb622aa26..8f94fa4101 100644 spacing: 0.409em; } #panel .panel-button.screen-recording-indicator StIcon, #panel .panel-button.screen-sharing-indicator StIcon { diff --git a/data/theme/gnome-shell-light.css b/data/theme/gnome-shell-light.css -index 82a5b0bc18..128aa93dea 100644 +index 174d723cfe..579f909d79 100644 --- a/data/theme/gnome-shell-light.css +++ b/data/theme/gnome-shell-light.css -@@ -1720,6 +1720,9 @@ StScrollBar { +@@ -1837,6 +1837,9 @@ StScrollBar { min-width: 0.5455em; min-height: 0.5455em; - background-color: #282828; } + background-color: #222226; } + #panel .panel-button#panelActivities .activities-logo { + icon-size: 1.36375em; + padding: 0 6px; } @@ -52,5 +52,5 @@ index 82a5b0bc18..128aa93dea 100644 spacing: 0.409em; } #panel .panel-button.screen-recording-indicator StIcon, #panel .panel-button.screen-sharing-indicator StIcon { -- -2.45.2 +2.51.1 diff --git a/0001-extensionDownloader-Refuse-to-override-system-extens.patch b/0001-extensionDownloader-Refuse-to-override-system-extens.patch index ae5a764..2cd3853 100644 --- a/0001-extensionDownloader-Refuse-to-override-system-extens.patch +++ b/0001-extensionDownloader-Refuse-to-override-system-extens.patch @@ -1,4 +1,4 @@ -From 7e82f0a73a1d1576e94b17e21d07fd3978ba7c33 Mon Sep 17 00:00:00 2001 +From aab759b25529480698b745393067d60b48b04e3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Mon, 1 Feb 2021 18:26:00 +0100 Subject: [PATCH] extensionDownloader: Refuse to override system extensions @@ -13,10 +13,10 @@ already installed system-wide. 1 file changed, 9 insertions(+) diff --git a/js/ui/extensionDownloader.js b/js/ui/extensionDownloader.js -index 0366c5dfa8..5b27543aa6 100644 +index fe687cba43..cc6cd0a0b5 100644 --- a/js/ui/extensionDownloader.js +++ b/js/ui/extensionDownloader.js -@@ -39,6 +39,15 @@ export async function installExtension(uuid, invocation) { +@@ -37,6 +37,15 @@ export async function installExtension(uuid, invocation) { return; } @@ -33,5 +33,5 @@ index 0366c5dfa8..5b27543aa6 100644 uuid, shell_version: Config.PACKAGE_VERSION, -- -2.45.2 +2.51.1 diff --git a/0001-gdm-Work-around-failing-fingerprint-auth.patch b/0001-gdm-Work-around-failing-fingerprint-auth.patch index 2baa7b6..5d73d00 100644 --- a/0001-gdm-Work-around-failing-fingerprint-auth.patch +++ b/0001-gdm-Work-around-failing-fingerprint-auth.patch @@ -1,4 +1,4 @@ -From ff73f820b1398e5d60b8984b0003db46ad70b8ec Mon Sep 17 00:00:00 2001 +From 5293ee585f876169e31f3b6af737a42d30302f71 Mon Sep 17 00:00:00 2001 From: Benjamin Berg Date: Wed, 28 Apr 2021 16:50:03 +0200 Subject: [PATCH] gdm: Work around failing fingerprint auth @@ -13,7 +13,7 @@ failure instead. 1 file changed, 18 insertions(+) diff --git a/js/gdm/util.js b/js/gdm/util.js -index 97df6d687e..371953cb25 100644 +index f6b797c321..aced46e78c 100644 --- a/js/gdm/util.js +++ b/js/gdm/util.js @@ -109,6 +109,7 @@ export class ShellUserVerifier extends Signals.EventEmitter { @@ -24,7 +24,7 @@ index 97df6d687e..371953cb25 100644 this._messageQueue = []; this._messageQueueTimeoutId = 0; -@@ -669,6 +670,10 @@ export class ShellUserVerifier extends Signals.EventEmitter { +@@ -670,6 +671,10 @@ export class ShellUserVerifier extends Signals.EventEmitter { this._hold.acquire(); try { this._activeServices.add(serviceName); @@ -35,7 +35,7 @@ index 97df6d687e..371953cb25 100644 if (this._userName) { await this._userVerifier.call_begin_verification_for_user( serviceName, this._userName, this._cancellable); -@@ -763,6 +768,7 @@ export class ShellUserVerifier extends Signals.EventEmitter { +@@ -764,6 +769,7 @@ export class ShellUserVerifier extends Signals.EventEmitter { const cancellable = this._cancellable; this._fingerprintFailedId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, FINGERPRINT_ERROR_TIMEOUT_WAIT, () => { @@ -43,7 +43,7 @@ index 97df6d687e..371953cb25 100644 this._fingerprintFailedId = 0; if (!cancellable.is_cancelled()) this._verificationFailed(serviceName, false); -@@ -829,6 +835,18 @@ export class ShellUserVerifier extends Signals.EventEmitter { +@@ -837,6 +843,18 @@ export class ShellUserVerifier extends Signals.EventEmitter { if (serviceName === FINGERPRINT_SERVICE_NAME) { if (this._fingerprintFailedId) GLib.source_remove(this._fingerprintFailedId); @@ -63,5 +63,5 @@ index 97df6d687e..371953cb25 100644 // For Not Listed / enterprise logins, immediately reset -- -2.43.2 +2.51.1 diff --git a/0001-main-Dump-stack-on-segfaults-by-default.patch b/0001-main-Dump-stack-on-segfaults-by-default.patch index a18c992..d979608 100644 --- a/0001-main-Dump-stack-on-segfaults-by-default.patch +++ b/0001-main-Dump-stack-on-segfaults-by-default.patch @@ -1,4 +1,4 @@ -From 2060b040f91c3751861a1c1b985c5fe8cc891d58 Mon Sep 17 00:00:00 2001 +From e50bb4482d8171b3cad748706b930684e0edccae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Thu, 29 Oct 2020 18:21:06 +0100 Subject: [PATCH] main: Dump stack on segfaults by default @@ -8,10 +8,10 @@ Subject: [PATCH] main: Dump stack on segfaults by default 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main.c b/src/main.c -index 4be47258eb..b324b6b96a 100644 +index af4fa8597e..03772ec7fb 100644 --- a/src/main.c +++ b/src/main.c -@@ -47,6 +47,7 @@ static char *script_path = NULL; +@@ -46,6 +46,7 @@ static char *script_path = NULL; #define DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER 1 #define DBUS_REQUEST_NAME_REPLY_ALREADY_OWNER 4 @@ -19,7 +19,7 @@ index 4be47258eb..b324b6b96a 100644 enum { SHELL_DEBUG_BACKTRACE_WARNINGS = 1, SHELL_DEBUG_BACKTRACE_SEGFAULTS = 2, -@@ -381,8 +382,11 @@ shell_init_debug (const char *debug_env) +@@ -364,8 +365,11 @@ shell_init_debug (const char *debug_env) { "backtrace-segfaults", SHELL_DEBUG_BACKTRACE_SEGFAULTS }, }; @@ -34,5 +34,5 @@ index 4be47258eb..b324b6b96a 100644 static GLogWriterOutput -- -2.45.2 +2.51.1 diff --git a/0001-panel-Use-branding-in-activities-button.patch b/0001-panel-Use-branding-in-activities-button.patch index fb3ce1c..ebeedbe 100644 --- a/0001-panel-Use-branding-in-activities-button.patch +++ b/0001-panel-Use-branding-in-activities-button.patch @@ -1,4 +1,4 @@ -From c0b2f60108e7b8cffa10306ef54c620fe71a6735 Mon Sep 17 00:00:00 2001 +From 755bd786c49c0b37c06aac781d2a7ec34357b49a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 22 May 2024 18:42:06 +0200 Subject: [PATCH] panel: Use branding in activities button @@ -10,10 +10,10 @@ Replace the upstream workspace dots with a red hat. 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/data/theme/gnome-shell-sass/widgets/_panel.scss b/data/theme/gnome-shell-sass/widgets/_panel.scss -index 2a29eee9da..02f8232de6 100644 +index 1b84dc201f..1514d3ead2 100644 --- a/data/theme/gnome-shell-sass/widgets/_panel.scss +++ b/data/theme/gnome-shell-sass/widgets/_panel.scss -@@ -58,6 +58,11 @@ $panel_transition_duration: 250ms; // same as the overview transition duration +@@ -56,6 +56,11 @@ $panel_transition_duration: 250ms; // same as the overview transition duration min-height: $scalable_icon_size * 0.5; background-color: $panel_fg_color; } @@ -26,10 +26,10 @@ index 2a29eee9da..02f8232de6 100644 // screen activity indicators diff --git a/js/ui/panel.js b/js/ui/panel.js -index 62c8ebb31a..1d11cc1b5f 100644 +index bdb6f7b197..5be0c477c6 100644 --- a/js/ui/panel.js +++ b/js/ui/panel.js -@@ -425,7 +425,15 @@ class ActivitiesButton extends PanelMenu.Button { +@@ -208,7 +208,15 @@ class ActivitiesButton extends PanelMenu.Button { accessible_name: _('Activities'), }); @@ -47,5 +47,5 @@ index 62c8ebb31a..1d11cc1b5f 100644 Main.overview.connectObject('showing', () => this.add_style_pseudo_class('checked'), -- -2.45.2 +2.51.1 diff --git a/0001-screenShield-unblank-when-inserting-smartcard.patch b/0001-screenShield-unblank-when-inserting-smartcard.patch index 6b1d735..3177504 100644 --- a/0001-screenShield-unblank-when-inserting-smartcard.patch +++ b/0001-screenShield-unblank-when-inserting-smartcard.patch @@ -1,4 +1,4 @@ -From 17e77f1729b8542c46d5020d55edce4daf7ab24a Mon Sep 17 00:00:00 2001 +From 688687465d7f45da81847554221fb8c72d079510 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Fri, 3 Jul 2015 13:54:36 -0400 Subject: [PATCH] screenShield: unblank when inserting smartcard @@ -13,10 +13,10 @@ action to get the screen to unblank. 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/js/ui/screenShield.js b/js/ui/screenShield.js -index d2236fb900..b62440dff6 100644 +index 2087c393ed..428421b370 100644 --- a/js/ui/screenShield.js +++ b/js/ui/screenShield.js -@@ -94,8 +94,10 @@ export class ScreenShield extends Signals.EventEmitter { +@@ -92,8 +92,10 @@ export class ScreenShield extends Signals.EventEmitter { this._smartcardManager = SmartcardManager.getSmartcardManager(); this._smartcardManager.connect('smartcard-inserted', (manager, token) => { @@ -29,5 +29,5 @@ index d2236fb900..b62440dff6 100644 this._credentialManagers = {}; -- -2.45.2 +2.51.1 diff --git a/0001-st-texture-cache-purge-on-resume.patch b/0001-st-texture-cache-purge-on-resume.patch index 6ac3d68..3f88c94 100644 --- a/0001-st-texture-cache-purge-on-resume.patch +++ b/0001-st-texture-cache-purge-on-resume.patch @@ -1,4 +1,4 @@ -From 0bd4ecbbcc47a8574edae46b56695572a846a1e2 Mon Sep 17 00:00:00 2001 +From b434e61f95b1bb63b8f5e027a718091482be232a Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Tue, 15 Jan 2019 12:54:32 -0500 Subject: [PATCH] st-texture-cache: purge on resume @@ -12,10 +12,10 @@ so the texture cache needs to evict all textures in that situation. 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/js/ui/main.js b/js/ui/main.js -index 73980edb88..5c17258177 100644 +index 40898e15c2..bb6d8f6723 100644 --- a/js/ui/main.js +++ b/js/ui/main.js -@@ -263,7 +263,11 @@ async function _initializeUI() { +@@ -298,7 +298,11 @@ async function _initializeUI() { return true; }); @@ -29,7 +29,7 @@ index 73980edb88..5c17258177 100644 global.context.connect('notify::unsafe-mode', () => { if (!global.context.unsafe_mode) diff --git a/src/st/st-texture-cache.c b/src/st/st-texture-cache.c -index e03ec44619..ac19e98cf5 100644 +index 2c7601da1a..0df930ad43 100644 --- a/src/st/st-texture-cache.c +++ b/src/st/st-texture-cache.c @@ -131,6 +131,16 @@ st_texture_cache_class_init (StTextureCacheClass *klass) @@ -50,17 +50,17 @@ index e03ec44619..ac19e98cf5 100644 static void st_texture_cache_evict_icons (StTextureCache *cache) diff --git a/src/st/st-texture-cache.h b/src/st/st-texture-cache.h -index 7ca08ab34a..f600938047 100644 +index 4158298042..5a77165813 100644 --- a/src/st/st-texture-cache.h +++ b/src/st/st-texture-cache.h -@@ -42,6 +42,7 @@ typedef enum { +@@ -43,6 +43,7 @@ typedef enum { } StTextureCachePolicy; StTextureCache* st_texture_cache_get_default (void); +void st_texture_cache_clear (StTextureCache *cache); - ClutterActor * - st_texture_cache_load_sliced_image (StTextureCache *cache, + ClutterActor *st_texture_cache_load_gicon (StTextureCache *cache, + StThemeNode *theme_node, -- -2.47.1 +2.51.1 diff --git a/0001-systemActions-Optionally-allow-restart-shutdown-on-l.patch b/0001-systemActions-Optionally-allow-restart-shutdown-on-l.patch deleted file mode 100644 index fc75bf0..0000000 --- a/0001-systemActions-Optionally-allow-restart-shutdown-on-l.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 193b664c7daa2ea7707e8b7fba03afe07e2cbd2a Mon Sep 17 00:00:00 2001 -From: Joan Torres Lopez -Date: Tue, 15 Jul 2025 11:27:01 +0200 -Subject: [PATCH] systemActions: Optionally allow restart/shutdown on lock - screen - -Support the new 'restart-enabled' setting from 'org.gnome.desktop.screensaver' -to optionally allow restart/shutdown from the lock screen. - -Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/1584 -Part-of: ---- - js/misc/systemActions.js | 9 ++++++++- - 1 file changed, 8 insertions(+), 1 deletion(-) - -diff --git a/js/misc/systemActions.js b/js/misc/systemActions.js -index a027a8134..c24d254b4 100644 ---- a/js/misc/systemActions.js -+++ b/js/misc/systemActions.js -@@ -12,10 +12,12 @@ import * as Screenshot from '../ui/screenshot.js'; - - const LOCKDOWN_SCHEMA = 'org.gnome.desktop.lockdown'; - const LOGIN_SCREEN_SCHEMA = 'org.gnome.login-screen'; -+const SCREENSAVER_SCHEMA = 'org.gnome.desktop.screensaver'; - const DISABLE_USER_SWITCH_KEY = 'disable-user-switching'; - const DISABLE_LOCK_SCREEN_KEY = 'disable-lock-screen'; - const DISABLE_LOG_OUT_KEY = 'disable-log-out'; - const DISABLE_RESTART_KEY = 'disable-restart-buttons'; -+const RESTART_ENABLED_KEY = 'restart-enabled'; - const ALWAYS_SHOW_LOG_OUT_KEY = 'always-show-log-out'; - - const POWER_OFF_ACTION_ID = 'power-off'; -@@ -153,6 +155,7 @@ const SystemActions = GObject.registerClass({ - this._loginScreenSettings = new Gio.Settings({schema_id: LOGIN_SCREEN_SCHEMA}); - this._lockdownSettings = new Gio.Settings({schema_id: LOCKDOWN_SCHEMA}); - this._orientationSettings = new Gio.Settings({schema_id: 'org.gnome.settings-daemon.peripherals.touchscreen'}); -+ this._screenSaverSettings = new Gio.Settings({schema_id: SCREENSAVER_SCHEMA}); - - this._session = new GnomeSession.SessionManager(); - this._loginManager = LoginManager.getLoginManager(); -@@ -182,6 +185,9 @@ const SystemActions = GObject.registerClass({ - this._lockdownSettings.connect(`changed::${DISABLE_LOG_OUT_KEY}`, - () => this._updateHaveShutdown()); - -+ this._screenSaverSettings.connect(`changed::${RESTART_ENABLED_KEY}`, -+ () => this._updateHaveShutdown()); -+ - this.forceUpdate(); - - this._orientationSettings.connect('changed::orientation-lock', () => { -@@ -347,7 +353,8 @@ const SystemActions = GObject.registerClass({ - } - - _updatePowerOff() { -- let disabled = Main.sessionMode.isLocked || -+ let disabled = (Main.sessionMode.isLocked && -+ !this._screenSaverSettings.get_boolean(RESTART_ENABLED_KEY)) || - (Main.sessionMode.isGreeter && - this._loginScreenSettings.get_boolean(DISABLE_RESTART_KEY)); - this._actions.get(POWER_OFF_ACTION_ID).available = this._canHavePowerOff && !disabled; --- -2.49.0 - diff --git a/0001-theme-Welcome-Illustration.patch b/0001-theme-Welcome-Illustration.patch index e3b48fe..9cb1668 100644 --- a/0001-theme-Welcome-Illustration.patch +++ b/0001-theme-Welcome-Illustration.patch @@ -1,4 +1,4 @@ -From 2c43d26950c709020ba78fdc2742adc4fd2841e5 Mon Sep 17 00:00:00 2001 +From a25806709e5cf5d73c2f261f89e8b7be1759d7c7 Mon Sep 17 00:00:00 2001 From: Jakub Steiner Date: Tue, 20 Aug 2024 09:30:36 +0200 Subject: [PATCH] theme: Welcome Illustration @@ -9,7 +9,7 @@ Subject: [PATCH] theme: Welcome Illustration 1 file changed, 106 insertions(+), 245 deletions(-) diff --git a/data/theme/gnome-shell-start.svg b/data/theme/gnome-shell-start.svg -index af139cf0d..609880493 100644 +index af139cf0da..6098804938 100644 --- a/data/theme/gnome-shell-start.svg +++ b/data/theme/gnome-shell-start.svg @@ -1,67 +1,37 @@ @@ -459,5 +459,5 @@ index af139cf0d..609880493 100644 + inkscape:original="M 313.48633 103.79883 L 305.27734 108.99023 L 317.28516 113.2793 L 278.90234 137.55273 L 287.01172 144.30859 L 334.9043 114.01953 L 329.75391 109.73047 L 313.48633 103.79883 z M 339.08398 126.42578 C 336.58186 126.44685 334.02099 126.72082 331.4043 127.24805 C 326.21038 128.33537 321.15063 130.43744 316.22461 133.55273 C 311.3442 136.63918 307.7837 139.98905 305.54297 143.60352 C 303.38732 147.22202 302.62161 150.82875 303.24609 154.42383 C 303.95565 158.02294 306.10659 161.31916 309.69727 164.31055 C 313.32741 167.33481 317.52958 169.33062 322.30469 170.30078 C 327.16487 171.27497 332.19279 171.22013 337.38672 170.13281 C 342.66571 169.04952 347.74459 166.9634 352.625 163.87695 C 357.55102 160.76166 361.0924 157.39584 363.24805 153.77734 C 365.44315 150.19171 366.18612 146.59911 365.47656 143 C 364.85208 139.40492 362.72389 136.09458 359.09375 133.07031 C 355.50307 130.07892 351.27814 128.09723 346.41797 127.12305 C 344.03041 126.63796 341.58611 126.40471 339.08398 126.42578 z M 339.03711 134.75977 C 340.59668 134.65532 342.09264 134.71475 343.52344 134.9375 C 346.38503 135.38301 348.86185 136.47651 350.95312 138.21875 C 353.08387 139.99386 354.25653 141.94201 354.47266 144.06055 C 354.6888 146.17909 353.95735 148.37553 352.27734 150.65234 C 350.68241 152.93318 348.17475 155.15496 344.75391 157.31836 C 341.37867 159.45291 338.0017 160.95311 334.625 161.81641 C 331.28776 162.71258 328.18972 162.9377 325.32812 162.49219 C 322.46654 162.04668 319.96863 160.93528 317.83789 159.16016 C 315.74662 157.41792 314.59309 155.48768 314.37695 153.36914 C 314.16081 151.2506 314.87313 149.0382 316.51367 146.72852 C 318.19368 144.4517 320.72242 142.24587 324.09766 140.11133 C 327.5185 137.94792 330.87439 136.43177 334.16602 135.56445 C 335.85437 135.1328 337.47754 134.86421 339.03711 134.75977 z " + d="m 314.52344,100.95703 a 3.0252571,3.0252571 0 0 0 -2.6543,0.28516 l -8.20898,5.1914 a 3.0252571,3.0252571 0 0 0 0.59961,5.40625 l 6.1621,2.20118 -33.13671,20.95507 a 3.0252571,3.0252571 0 0 0 -0.31836,4.88086 l 8.10937,6.75586 a 3.0252571,3.0252571 0 0 0 3.55274,0.23242 l 47.89257,-30.28906 a 3.0252571,3.0252571 0 0 0 0.31836,-4.88086 l -5.15039,-4.28906 a 3.0252571,3.0252571 0 0 0 -0.89843,-0.51758 z m 24.53515,22.44336 c -2.70552,0.0228 -5.45955,0.32018 -8.25195,0.88281 a 3.0252571,3.0252571 0 0 0 -0.0215,0.004 c -5.57359,1.1668 -10.9804,3.42211 -16.17774,6.70898 -5.15435,3.2597 -9.07893,6.89093 -11.63476,11.01368 a 3.0252571,3.0252571 0 0 0 -0.0293,0.0449 c -2.44678,4.10719 -3.43195,8.54475 -2.67774,12.88672 a 3.0252571,3.0252571 0 0 0 0.0117,0.0684 c 0.86616,4.39343 3.51054,8.31439 7.48438,11.625 4.00932,3.34015 8.71238,5.56847 13.9414,6.63085 a 3.0252571,3.0252571 0 0 0 0.008,0.002 c 5.27203,1.05674 10.73013,0.98909 16.2832,-0.17188 0.001,-2.8e-4 0.003,-0.002 0.004,-0.002 5.65232,-1.16046 11.08416,-3.3969 16.24414,-6.66016 5.19597,-3.28601 9.11209,-6.93484 11.59179,-11.08789 2.49319,-4.07791 3.46133,-8.54055 2.61524,-12.89062 -0.77549,-4.41697 -3.41096,-8.36912 -7.41992,-11.70899 -3.98043,-3.31609 -8.70902,-5.52412 -14.00977,-6.58789 -6.3e-4,-1.3e-4 -0.001,1.3e-4 -0.002,0 -2.59631,-0.52736 -5.25296,-0.7806 -7.95899,-0.75781 z m 0.17969,14.37695 c 1.35455,-0.0907 2.62538,-0.0376 3.82031,0.14844 2.38032,0.37058 4.29192,1.22835 5.95899,2.61719 1.71385,1.4278 2.3223,2.61846 2.44531,3.82422 0.12477,1.22298 -0.24192,2.62183 -1.61914,4.48828 a 3.0252571,3.0252571 0 0 0 -0.0449,0.0625 c -1.27029,1.81658 -3.46759,3.82347 -6.66211,5.84375 -3.14603,1.98959 -6.23089,3.34817 -9.26172,4.12305 a 3.0252571,3.0252571 0 0 0 -0.0352,0.01 c -3.00691,0.80747 -5.66623,0.98001 -8.04687,0.60938 -2.37037,-0.36904 -4.30499,-1.23959 -6.01953,-2.66797 -1.66738,-1.3891 -2.26205,-2.55145 -2.38672,-3.77344 -0.12591,-1.23411 0.24428,-2.66937 1.58203,-4.56055 1.37458,-1.85462 3.60235,-3.84584 6.74609,-5.83398 3.20097,-2.02436 6.27281,-3.3982 9.21094,-4.17383 1.52545,-0.3894 2.96138,-0.62632 4.3125,-0.7168 z" /> -- -2.46.2 +2.51.1 diff --git a/0001-windowMenu-Bring-back-workspaces-submenu-for-static-.patch b/0001-windowMenu-Bring-back-workspaces-submenu-for-static-.patch index f7ece9e..e1b4d58 100644 --- a/0001-windowMenu-Bring-back-workspaces-submenu-for-static-.patch +++ b/0001-windowMenu-Bring-back-workspaces-submenu-for-static-.patch @@ -1,4 +1,4 @@ -From 15df1086028087e5a81830323137a8730d2c5888 Mon Sep 17 00:00:00 2001 +From 29f77afc6d76cadf3f0cac7b0e741049af21e86d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Tue, 14 Mar 2017 17:04:36 +0100 Subject: [PATCH] windowMenu: Bring back workspaces submenu for static @@ -13,10 +13,10 @@ are used. 1 file changed, 17 insertions(+) diff --git a/js/ui/windowMenu.js b/js/ui/windowMenu.js -index c69c183d7c..2db3962012 100644 +index c140dee4dd..6e28244723 100644 --- a/js/ui/windowMenu.js +++ b/js/ui/windowMenu.js -@@ -153,6 +153,23 @@ export class WindowMenu extends PopupMenu.PopupMenu { +@@ -138,6 +138,23 @@ export class WindowMenu extends PopupMenu.PopupMenu { window.change_workspace(workspace.get_neighbor(dir)); }); } @@ -41,5 +41,5 @@ index c69c183d7c..2db3962012 100644 } -- -2.45.2 +2.51.1 diff --git a/3939-rediffed.patch b/3939-rediffed.patch new file mode 100644 index 0000000..4d2a9eb --- /dev/null +++ b/3939-rediffed.patch @@ -0,0 +1,57 @@ +From a3d658851992b27ad2e0d8f9efeb680b4085d27f Mon Sep 17 00:00:00 2001 +From: Sebastian Keller +Date: Tue, 28 Oct 2025 23:22:26 +0100 +Subject: [PATCH 1/1] Revert "status/keyboard: Track + ::layout-layout-group-changed for changes" + +This reverts commit e8d73262c73246205e8f7887d99aeb2356cfa89e. + +The commit was causing freezes when changing layouts in some situations +and not all of these were adressed by f643915b, such as when switching +from the 3rd to the 4th layout using a xkb shortcut in the X11 session +with 4 layouts. + +It was also breaking the order of switching layouts using modifier-only +xkb shortcuts to switch to the next group, which it caused to advance +multiple groups because of the shortcut being handled via both +_modifiersSwitcher() and _layoutGroupChanged(). + +Further it was possible for _layoutGroupChanged() to trigger an error +due to the locale layout added by _buildGroupStrings() at the end of the +xkb layout list being accessible via the xkb shortcuts. That layout was +not present in _inputSources, leading to "is" being undefined. + +Reopens: https://gitlab.gnome.org/GNOME/mutter/-/issues/3926 +Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8738 +Related: https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3930 +--- + js/ui/status/keyboard.js | 7 ------- + 1 file changed, 7 deletions(-) + +diff --git a/js/ui/status/keyboard.js b/js/ui/status/keyboard.js +index 88e6e93975..2f6773c8c0 100644 +--- a/js/ui/status/keyboard.js ++++ b/js/ui/status/keyboard.js +@@ -380,7 +380,6 @@ export class InputSourceManager extends Signals.EventEmitter { + this._ibusManager.connect('set-content-type', this._ibusSetContentType.bind(this)); + + global.display.connect('modifiers-accelerator-activated', this._modifiersSwitcher.bind(this)); +- global.backend.connect('keymap-layout-group-changed', this._layoutGroupChanged.bind(this)); + + this._sourcesPerWindow = false; + this._focusWindowNotifyId = 0; +@@ -429,12 +428,6 @@ export class InputSourceManager extends Signals.EventEmitter { + return true; + } + +- _layoutGroupChanged(backend, idx) { +- const is = this._inputSources[idx]; +- this._currentInputSourceChanged(is); +- this._keyboardManager.apply(is.xkbId); +- } +- + _switchInputSource(display, window, event, binding) { + if (this._mruSources.length < 2) + return; +-- +GitLab diff --git a/disable-unlock-entry-until-question.patch b/disable-unlock-entry-until-question.patch index 4c6e599..b948ab2 100644 --- a/disable-unlock-entry-until-question.patch +++ b/disable-unlock-entry-until-question.patch @@ -1,4 +1,4 @@ -From 7a4f4400b2f10a813cf28bb7518c370482935c1f Mon Sep 17 00:00:00 2001 +From 2af9a2832992b7b89465b47cf9adb979b8d6b087 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Wed, 30 Sep 2015 12:51:24 -0400 Subject: [PATCH 1/3] authPrompt: don't fade out auth messages if user types @@ -12,10 +12,10 @@ front, before a password is asked. 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/gdm/authPrompt.js b/js/gdm/authPrompt.js -index d264717238..c7354e2664 100644 +index 800e2f1851..7ee8186dcc 100644 --- a/js/gdm/authPrompt.js +++ b/js/gdm/authPrompt.js -@@ -215,7 +215,7 @@ export const AuthPrompt = GObject.registerClass({ +@@ -217,7 +217,7 @@ export const AuthPrompt = GObject.registerClass({ [this._textEntry, this._passwordEntry].forEach(entry => { entry.clutter_text.connect('text-changed', () => { @@ -25,10 +25,10 @@ index d264717238..c7354e2664 100644 }); -- -2.51.0 +2.51.1 -From 5b72139b23b5884aa118e7bc9510bc994a057a6e Mon Sep 17 00:00:00 2001 +From 691685e9582e23cce382841c1d66c44ea56ceb33 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Wed, 30 Sep 2015 14:36:33 -0400 Subject: [PATCH 2/3] authPrompt: don't spin unless answering question @@ -38,10 +38,10 @@ Subject: [PATCH 2/3] authPrompt: don't spin unless answering question 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/js/gdm/authPrompt.js b/js/gdm/authPrompt.js -index c7354e2664..92ad4eff30 100644 +index 7ee8186dcc..97b276dbf9 100644 --- a/js/gdm/authPrompt.js +++ b/js/gdm/authPrompt.js -@@ -279,13 +279,14 @@ export const AuthPrompt = GObject.registerClass({ +@@ -281,13 +281,14 @@ export const AuthPrompt = GObject.registerClass({ this.verificationStatus = AuthPromptStatus.VERIFICATION_IN_PROGRESS; this.updateSensitivity(false); @@ -61,10 +61,10 @@ index c7354e2664..92ad4eff30 100644 this.emit('next'); } -- -2.51.0 +2.51.1 -From b5509ccdda2da8e43716f8810a27153a96fd5c7d Mon Sep 17 00:00:00 2001 +From 60c374af34ec60a3aa0403888d70a835774209af Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Mon, 5 Oct 2015 15:26:18 -0400 Subject: [PATCH 3/3] authPrompt: stop accepting preemptive answer if user @@ -82,7 +82,7 @@ all. 1 file changed, 36 insertions(+) diff --git a/js/gdm/authPrompt.js b/js/gdm/authPrompt.js -index 92ad4eff30..0fbfb6800e 100644 +index 97b276dbf9..2bf722b140 100644 --- a/js/gdm/authPrompt.js +++ b/js/gdm/authPrompt.js @@ -69,6 +69,8 @@ export const AuthPrompt = GObject.registerClass({ @@ -109,7 +109,7 @@ index 92ad4eff30..0fbfb6800e 100644 this._userVerifier.destroy(); this._userVerifier = null; this._entry = null; -@@ -286,6 +294,11 @@ export const AuthPrompt = GObject.registerClass({ +@@ -288,6 +296,11 @@ export const AuthPrompt = GObject.registerClass({ this._userVerifier.answerQuery(this._queryingService, this._entry.text); } else { this._preemptiveAnswer = this._entry.text; @@ -121,7 +121,7 @@ index 92ad4eff30..0fbfb6800e 100644 } this.emit('next'); -@@ -508,6 +521,11 @@ export const AuthPrompt = GObject.registerClass({ +@@ -510,6 +523,11 @@ export const AuthPrompt = GObject.registerClass({ } setQuestion(question) { @@ -133,7 +133,7 @@ index 92ad4eff30..0fbfb6800e 100644 this._entry.hint_text = question; this._authList.hide(); -@@ -630,6 +648,19 @@ export const AuthPrompt = GObject.registerClass({ +@@ -639,6 +657,19 @@ export const AuthPrompt = GObject.registerClass({ this._updateEntry(false); } @@ -153,7 +153,7 @@ index 92ad4eff30..0fbfb6800e 100644 reset() { let oldStatus = this.verificationStatus; this.verificationStatus = AuthPromptStatus.NOT_VERIFYING; -@@ -637,6 +668,11 @@ export const AuthPrompt = GObject.registerClass({ +@@ -646,6 +677,11 @@ export const AuthPrompt = GObject.registerClass({ this.cancelButton.can_focus = this._hasCancelButton; this._preemptiveAnswer = null; @@ -166,5 +166,5 @@ index 92ad4eff30..0fbfb6800e 100644 this._userVerifier.cancel(); -- -2.51.0 +2.51.1 diff --git a/enforce-smartcard-at-unlock.patch b/enforce-smartcard-at-unlock.patch index 037104f..78533bb 100644 --- a/enforce-smartcard-at-unlock.patch +++ b/enforce-smartcard-at-unlock.patch @@ -1,4 +1,4 @@ -From 2ee01f8104aeca3ae5f404e83159670a0792db26 Mon Sep 17 00:00:00 2001 +From 54a9bed1caa83ee00ca95f3431a3ee2a15a1ee82 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Mon, 28 Sep 2015 10:57:02 -0400 Subject: [PATCH 1/3] smartcardManager: add way to detect if user logged using @@ -32,10 +32,10 @@ index b886110d91..51471e51d4 100644 + } } -- -2.51.0 +2.51.1 -From 368cc7d44849824933c3b9ddf7fd363bbb13c03e Mon Sep 17 00:00:00 2001 +From bdbed658d7a2fa48b9e7195691f0db3c8f4868e3 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Mon, 28 Sep 2015 19:56:53 -0400 Subject: [PATCH 2/3] gdm: only unlock with smartcard, if smartcard used for @@ -48,10 +48,10 @@ gets used for unlock, too. 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/js/gdm/util.js b/js/gdm/util.js -index 395bce5e67..668cf51979 100644 +index aced46e78c..28190660e8 100644 --- a/js/gdm/util.js +++ b/js/gdm/util.js -@@ -463,6 +463,8 @@ export class ShellUserVerifier extends Signals.EventEmitter { +@@ -465,6 +465,8 @@ export class ShellUserVerifier extends Signals.EventEmitter { this.smartcardDetected = false; this._checkForSmartcard(); @@ -60,7 +60,7 @@ index 395bce5e67..668cf51979 100644 this._smartcardManager.connectObject( 'smartcard-inserted', () => this._checkForSmartcard(), 'smartcard-removed', () => this._checkForSmartcard(), this); -@@ -641,7 +643,9 @@ export class ShellUserVerifier extends Signals.EventEmitter { +@@ -643,7 +645,9 @@ export class ShellUserVerifier extends Signals.EventEmitter { } _getDetectedDefaultService() { @@ -72,10 +72,10 @@ index 395bce5e67..668cf51979 100644 else if (this._smartcardManager) return SMARTCARD_SERVICE_NAME; -- -2.51.0 +2.51.1 -From 5745d60258729b67c972488e7a889ca356b1902e Mon Sep 17 00:00:00 2001 +From 2cae726f8e9887c5f49254f9af39bada00e81ca7 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Mon, 28 Sep 2015 19:57:36 -0400 Subject: [PATCH 3/3] gdm: update default service when smartcard inserted @@ -88,10 +88,10 @@ after we get a smartcard insertion event. 1 file changed, 2 insertions(+) diff --git a/js/gdm/util.js b/js/gdm/util.js -index 668cf51979..97f1bfccb2 100644 +index 28190660e8..c87690f859 100644 --- a/js/gdm/util.js +++ b/js/gdm/util.js -@@ -488,6 +488,8 @@ export class ShellUserVerifier extends Signals.EventEmitter { +@@ -490,6 +490,8 @@ export class ShellUserVerifier extends Signals.EventEmitter { else if (this._preemptingService === SMARTCARD_SERVICE_NAME) this._preemptingService = null; @@ -101,5 +101,5 @@ index 668cf51979..97f1bfccb2 100644 } } -- -2.51.0 +2.51.1 diff --git a/fix-some-js-warnings.patch b/fix-some-js-warnings.patch index 9c313a2..eda858a 100644 --- a/fix-some-js-warnings.patch +++ b/fix-some-js-warnings.patch @@ -1,4 +1,4 @@ -From 04bf0729ed6ae75736e297a10603bcb0a564cb28 Mon Sep 17 00:00:00 2001 +From cbb32cb80221d04121d4942bf41a23dd44ada9a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Tue, 9 Jun 2020 19:42:21 +0200 Subject: [PATCH 1/2] popupMenu: Guard against non-menu-item children @@ -9,10 +9,10 @@ This avoid a harmless but annoying warning. 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/js/ui/popupMenu.js b/js/ui/popupMenu.js -index b6ad545087..cbbcfea1ff 100644 +index 0426ce5452..2c882c1067 100644 --- a/js/ui/popupMenu.js +++ b/js/ui/popupMenu.js -@@ -951,7 +951,8 @@ export class PopupMenuBase extends Signals.EventEmitter { +@@ -967,7 +967,8 @@ export class PopupMenuBase extends Signals.EventEmitter { } _getMenuItems() { @@ -23,10 +23,10 @@ index b6ad545087..cbbcfea1ff 100644 }); } -- -2.45.2 +2.51.1 -From cffe984d9b85494fcf34500e78875b66c1cec534 Mon Sep 17 00:00:00 2001 +From 406c67ea0877384d85e5dcb5be644acf491cbd4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Tue, 9 Jun 2020 19:48:06 +0200 Subject: [PATCH 2/2] st/shadow: Check pipeline when painting @@ -38,10 +38,10 @@ called before paint() or that the pipeline was created successfully. 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/st/st-shadow.c b/src/st/st-shadow.c -index a406b61532..574445aeac 100644 +index 0e7908ac1d..280562b5b7 100644 --- a/src/st/st-shadow.c +++ b/src/st/st-shadow.c -@@ -294,9 +294,10 @@ st_shadow_helper_paint (StShadowHelper *helper, +@@ -288,9 +288,10 @@ st_shadow_helper_paint (StShadowHelper *helper, ClutterActorBox *actor_box, uint8_t paint_opacity) { @@ -58,5 +58,5 @@ index a406b61532..574445aeac 100644 + paint_opacity); } -- -2.45.2 +2.51.1 diff --git a/gdm-support-banner-message-file.patch b/gdm-support-banner-message-file.patch deleted file mode 100644 index 5157f26..0000000 --- a/gdm-support-banner-message-file.patch +++ /dev/null @@ -1,232 +0,0 @@ -From f328eee88c4e700a29625e87fd6fc997a138c66b Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Florian=20M=C3=BCllner?= -Date: Fri, 22 Nov 2024 19:23:59 +0100 -Subject: [PATCH 1/3] loginDialog: Split out getBannerText() helper - -The new methods will make it easier to add alternative sources -for the banner text. - -Part-of: ---- - js/gdm/loginDialog.js | 13 ++++++++++--- - 1 file changed, 10 insertions(+), 3 deletions(-) - -diff --git a/js/gdm/loginDialog.js b/js/gdm/loginDialog.js -index 27baae83ad..c3c397c0d1 100644 ---- a/js/gdm/loginDialog.js -+++ b/js/gdm/loginDialog.js -@@ -873,11 +873,18 @@ export const LoginDialog = GObject.registerClass({ - this._authPrompt.cancelButton.visible = cancelVisible; - } - -+ _getBannerText() { -+ const enabled = this._settings.get_boolean(GdmUtil.BANNER_MESSAGE_KEY); -+ if (!enabled) -+ return null; -+ -+ return this._settings.get_string(GdmUtil.BANNER_MESSAGE_TEXT_KEY); -+ } -+ - _updateBanner() { -- let enabled = this._settings.get_boolean(GdmUtil.BANNER_MESSAGE_KEY); -- let text = this._settings.get_string(GdmUtil.BANNER_MESSAGE_TEXT_KEY); -+ const text = this._getBannerText(); - -- if (enabled && text) { -+ if (text) { - this._bannerLabel.set_text(text); - this._bannerLabel.show(); - } else { --- -2.48.1 - - -From 5f92c12c727bd447d7e539b1e6c8f3ac6ddf715a Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Florian=20M=C3=BCllner?= -Date: Fri, 22 Nov 2024 19:36:42 +0100 -Subject: [PATCH 2/3] loginDialog: Update banner asynchronously - -We will soon allow reading the banner text from a file. Prepare -for that by making the method asynchronous. - -Part-of: ---- - js/gdm/loginDialog.js | 15 +++++++++------ - 1 file changed, 9 insertions(+), 6 deletions(-) - -diff --git a/js/gdm/loginDialog.js b/js/gdm/loginDialog.js -index c3c397c0d1..125cf299fa 100644 ---- a/js/gdm/loginDialog.js -+++ b/js/gdm/loginDialog.js -@@ -505,9 +505,9 @@ export const LoginDialog = GObject.registerClass({ - this._settings = new Gio.Settings({schema_id: GdmUtil.LOGIN_SCREEN_SCHEMA}); - - this._settings.connect(`changed::${GdmUtil.BANNER_MESSAGE_KEY}`, -- this._updateBanner.bind(this)); -+ () => this._updateBanner().catch(logError)); - this._settings.connect(`changed::${GdmUtil.BANNER_MESSAGE_TEXT_KEY}`, -- this._updateBanner.bind(this)); -+ () => this._updateBanner().catch(logError)); - this._settings.connect(`changed::${GdmUtil.DISABLE_USER_LIST_KEY}`, - this._updateDisableUserList.bind(this)); - this._settings.connect(`changed::${GdmUtil.LOGO_KEY}`, -@@ -576,7 +576,7 @@ export const LoginDialog = GObject.registerClass({ - this._bannerLabel.clutter_text.line_wrap = true; - this._bannerLabel.clutter_text.ellipsize = Pango.EllipsizeMode.NONE; - bannerBox.add_child(this._bannerLabel); -- this._updateBanner(); -+ this._updateBanner().catch(logError); - - this._sessionMenuButton = new SessionMenuButton(); - this._sessionMenuButton.connect('session-activated', -@@ -873,16 +873,19 @@ export const LoginDialog = GObject.registerClass({ - this._authPrompt.cancelButton.visible = cancelVisible; - } - -- _getBannerText() { -+ async _getBannerText() { - const enabled = this._settings.get_boolean(GdmUtil.BANNER_MESSAGE_KEY); - if (!enabled) - return null; - -+ // placeholder -+ await false; -+ - return this._settings.get_string(GdmUtil.BANNER_MESSAGE_TEXT_KEY); - } - -- _updateBanner() { -- const text = this._getBannerText(); -+ async _updateBanner() { -+ const text = await this._getBannerText(); - - if (text) { - this._bannerLabel.set_text(text); --- -2.48.1 - - -From a73a4f8455b1374b38724a532137a9b614a7fb19 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Florian=20M=C3=BCllner?= -Date: Fri, 22 Nov 2024 19:17:44 +0100 -Subject: [PATCH 3/3] loginDialog: Support loading banner message from file - -Support the new `banner-message-path` and `banner-message-source` -settings, which allows loading the banner message from a path -instead of GSettings. This is mainly useful for `/etc/motd` and -similar mechanisms, to show the same message for both graphical -and non-graphical logins. - -Part-of: ---- - js/gdm/loginDialog.js | 53 +++++++++++++++++++++++++++++++++++++++++-- - js/gdm/util.js | 2 ++ - 2 files changed, 53 insertions(+), 2 deletions(-) - -diff --git a/js/gdm/loginDialog.js b/js/gdm/loginDialog.js -index 125cf299fa..fa91615026 100644 ---- a/js/gdm/loginDialog.js -+++ b/js/gdm/loginDialog.js -@@ -46,6 +46,8 @@ const _SCROLL_ANIMATION_TIME = 500; - const _TIMED_LOGIN_IDLE_THRESHOLD = 5.0; - const _CONFLICTING_SESSION_DIALOG_TIMEOUT = 60; - -+Gio._promisify(Gio.File.prototype, 'load_contents_async'); -+ - export const UserListItem = GObject.registerClass({ - Signals: {'activate': {}}, - }, class UserListItem extends St.Button { -@@ -508,6 +510,16 @@ export const LoginDialog = GObject.registerClass({ - () => this._updateBanner().catch(logError)); - this._settings.connect(`changed::${GdmUtil.BANNER_MESSAGE_TEXT_KEY}`, - () => this._updateBanner().catch(logError)); -+ this._settings.connect(`changed::${GdmUtil.BANNER_MESSAGE_SOURCE_KEY}`, -+ () => { -+ if (this._updateBannerMessageFile()) -+ this._updateBanner().catch(logError); -+ }); -+ this._settings.connect(`changed::${GdmUtil.BANNER_MESSAGE_PATH_KEY}`, -+ () => { -+ if (this._updateBannerMessageFile()) -+ this._updateBanner().catch(logError); -+ }); - this._settings.connect(`changed::${GdmUtil.DISABLE_USER_LIST_KEY}`, - this._updateDisableUserList.bind(this)); - this._settings.connect(`changed::${GdmUtil.LOGO_KEY}`, -@@ -576,6 +588,8 @@ export const LoginDialog = GObject.registerClass({ - this._bannerLabel.clutter_text.line_wrap = true; - this._bannerLabel.clutter_text.ellipsize = Pango.EllipsizeMode.NONE; - bannerBox.add_child(this._bannerLabel); -+ -+ this._updateBannerMessageFile(); - this._updateBanner().catch(logError); - - this._sessionMenuButton = new SessionMenuButton(); -@@ -873,13 +887,48 @@ export const LoginDialog = GObject.registerClass({ - this._authPrompt.cancelButton.visible = cancelVisible; - } - -+ _updateBannerMessageFile() { -+ const path = this._settings.get_string(GdmUtil.BANNER_MESSAGE_SOURCE_KEY) === 'file' -+ ? this._settings.get_string(GdmUtil.BANNER_MESSAGE_PATH_KEY) -+ : null; -+ const file = path -+ ? Gio.File.new_for_path(path) -+ : null; -+ -+ if (!file && !this._bannerMessageFile) -+ return false; -+ -+ if (file && this._bannerMessageFile && this._bannerMessageFile.equal(file)) -+ return false; -+ -+ this._bannerMessageMonitor?.disconnectObject(this); -+ this._bannerMessageMonitor = null; -+ -+ this._bannerMessageFile = file; -+ -+ if (file) { -+ this._bannerMessageMonitor = file.monitor_file(Gio.FileMonitorFlags.NONE, null); -+ this._bannerMessageMonitor.connectObject( -+ 'changed', () => this._updateBanner().catch(logError), this); -+ } -+ -+ return true; -+ } -+ - async _getBannerText() { - const enabled = this._settings.get_boolean(GdmUtil.BANNER_MESSAGE_KEY); - if (!enabled) - return null; - -- // placeholder -- await false; -+ if (this._bannerMessageFile) { -+ try { -+ const [contents] = await this._bannerMessageFile.load_contents_async(null); -+ return new TextDecoder().decode(contents); -+ } catch (e) { -+ console.error(`Failed to read banner from ${this._bannerMessageFile.get_path()}: ${e.message}`); -+ return null; -+ } -+ } - - return this._settings.get_string(GdmUtil.BANNER_MESSAGE_TEXT_KEY); - } -diff --git a/js/gdm/util.js b/js/gdm/util.js -index 1e0154f36f..f6b797c321 100644 ---- a/js/gdm/util.js -+++ b/js/gdm/util.js -@@ -33,7 +33,9 @@ export const PASSWORD_AUTHENTICATION_KEY = 'enable-password-authentication'; - export const FINGERPRINT_AUTHENTICATION_KEY = 'enable-fingerprint-authentication'; - export const SMARTCARD_AUTHENTICATION_KEY = 'enable-smartcard-authentication'; - export const BANNER_MESSAGE_KEY = 'banner-message-enable'; -+export const BANNER_MESSAGE_SOURCE_KEY = 'banner-message-source'; - export const BANNER_MESSAGE_TEXT_KEY = 'banner-message-text'; -+export const BANNER_MESSAGE_PATH_KEY = 'banner-message-path'; - export const ALLOWED_FAILURES_KEY = 'allowed-failures'; - - export const LOGO_KEY = 'logo'; --- -2.48.1 - diff --git a/gnome-shell-enabled-extensions-background-logos.patch b/gnome-shell-enabled-extensions-background-logos.patch index 759f383..d11bdb8 100644 --- a/gnome-shell-enabled-extensions-background-logos.patch +++ b/gnome-shell-enabled-extensions-background-logos.patch @@ -1,4 +1,4 @@ -From 8fcaf1708fee86b1c16c9749dc1794be5a2a86fd Mon Sep 17 00:00:00 2001 +From f8340bf01c7520af83a3098e7c574c67facbde1e Mon Sep 17 00:00:00 2001 From: rpm-build Date: Mon, 28 Feb 2022 10:27:09 -0500 Subject: [PATCH] data: Enable logo extension out of the box @@ -12,7 +12,7 @@ This commit makes sure it gets enabled out of the box. 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/org.gnome.shell.gschema.xml.in b/data/org.gnome.shell.gschema.xml.in -index 3dd9d2d86b..fe1e266f8c 100644 +index 9a55ee71db..1f9862a779 100644 --- a/data/org.gnome.shell.gschema.xml.in +++ b/data/org.gnome.shell.gschema.xml.in @@ -12,7 +12,7 @@ @@ -25,5 +25,5 @@ index 3dd9d2d86b..fe1e266f8c 100644 GNOME Shell extensions have a UUID property; this key lists extensions -- -2.45.2 +2.51.1 diff --git a/gnome-shell-favourite-apps-firefox.patch b/gnome-shell-favourite-apps-firefox.patch index efbf8bb..bd49906 100644 --- a/gnome-shell-favourite-apps-firefox.patch +++ b/gnome-shell-favourite-apps-firefox.patch @@ -1,35 +1,22 @@ -From 8a6298a1e7f7d46abf86ddec8ca2c8edbe4a589f Mon Sep 17 00:00:00 2001 +From 723135b8a757c02e7f598a0a95f99287dda805cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 17 Sep 2014 07:11:12 +0200 Subject: [PATCH] Replace Web with Firefox in default favorites --- data/default-apps/dash.txt | 2 +- - js/ui/appFavorites.js | 1 + - 2 files changed, 2 insertions(+), 1 deletion(-) + 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/default-apps/dash.txt b/data/default-apps/dash.txt -index d0c2c21eb8..a926311701 100644 +index 3687574be8..cdd8ef04e3 100644 --- a/data/default-apps/dash.txt +++ b/data/default-apps/dash.txt @@ -1,4 +1,4 @@ -org.gnome.Epiphany.desktop +org.mozilla.Firefox.desktop org.gnome.Calendar.desktop - org.gnome.Music.desktop - gnome.Nautilus.desktop -diff --git a/js/ui/appFavorites.js b/js/ui/appFavorites.js -index e3a76dce96..b6525f3cc9 100644 ---- a/js/ui/appFavorites.js -+++ b/js/ui/appFavorites.js -@@ -48,6 +48,7 @@ const RENAMED_DESKTOP_IDS = { - 'gnotski.desktop': 'org.gnome.Klotski.desktop', - 'gtali.desktop': 'org.gnome.Tali.desktop', - 'iagno.desktop': 'org.gnome.Reversi.desktop', -+ 'firefox.desktop': 'org.mozilla.firefox.desktop', - 'nautilus.desktop': 'org.gnome.Nautilus.desktop', - 'org.gnome.gnome-2048.desktop': 'org.gnome.TwentyFortyEight.desktop', - 'org.gnome.taquin.desktop': 'org.gnome.Taquin.desktop', + org.gnome.Nautilus.desktop + org.gnome.Software.desktop -- -2.48.1 +2.51.1 diff --git a/gnome-shell-favourite-apps-terminal.patch b/gnome-shell-favourite-apps-terminal.patch index eefbf01..2082bfa 100644 --- a/gnome-shell-favourite-apps-terminal.patch +++ b/gnome-shell-favourite-apps-terminal.patch @@ -1,4 +1,4 @@ -From c20b996f0cf89d4620d01fa777787b80b15c8a37 Mon Sep 17 00:00:00 2001 +From 578b2f5c52ab55ae1839f9d055c56762f13e01cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Thu, 9 Mar 2017 14:44:32 +0100 Subject: [PATCH] appFavorites: Add terminal @@ -8,16 +8,16 @@ Subject: [PATCH] appFavorites: Add terminal 1 file changed, 1 insertion(+) diff --git a/data/default-apps/dash.txt b/data/default-apps/dash.txt -index a926311701..5178256f6a 100644 +index cdd8ef04e3..4ab3f2913f 100644 --- a/data/default-apps/dash.txt +++ b/data/default-apps/dash.txt -@@ -3,5 +3,6 @@ org.gnome.Calendar.desktop - org.gnome.Music.desktop - gnome.Nautilus.desktop +@@ -2,5 +2,6 @@ org.mozilla.Firefox.desktop + org.gnome.Calendar.desktop + org.gnome.Nautilus.desktop org.gnome.Software.desktop +org.gnome.Ptyxis.desktop org.gnome.TextEditor.desktop org.gnome.Calculator.desktop -- -2.48.1 +2.51.1 diff --git a/gnome-shell.spec b/gnome-shell.spec index d65e7dd..0df7359 100644 --- a/gnome-shell.spec +++ b/gnome-shell.spec @@ -8,7 +8,7 @@ %endif Name: gnome-shell -Version: 47.10 +Version: 49.1 Release: %autorelease Summary: Window management and application launching for GNOME @@ -18,21 +18,34 @@ Source0: https://download.gnome.org/sources/gnome-shell/%{major_version}/ # Replace Epiphany with Firefox in the default favourite apps list, etc # and enable background extension by default -Patch: tweak-app-defaults.patch Patch: gnome-shell-favourite-apps-firefox.patch Patch: gnome-shell-favourite-apps-terminal.patch Patch: gnome-shell-enabled-extensions-background-logos.patch +# girpository-2.0 port would require updates to both gjs and glib2, +# so revert it +Patch: revert-gir-2.0-port.patch + +# Required schemas have been backported +Patch: 0001-build-Lower-gsettings-desktop-schemas-requirement.patch + # Some users might have a broken PAM config, so we really need this # downstream patch to stop trying on configuration errors. Patch: 0001-gdm-Work-around-failing-fingerprint-auth.patch +# https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3939 +# https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8738#note_2589102 +# https://discussion.fedoraproject.org/t/169999 +# Reverts some xkb changes that turned out to cause way more problems +# than they solved +# Rediffed on 49.1 - we include only the first revert, as the second +# commit was post-49.1 so there's nothing to revert +Patch: 3939-rediffed.patch + # GDM/Lock stuff Patch: 0001-screenShield-unblank-when-inserting-smartcard.patch Patch: enforce-smartcard-at-unlock.patch Patch: disable-unlock-entry-until-question.patch -Patch: gdm-support-banner-message-file.patch -Patch: 0001-systemActions-Optionally-allow-restart-shutdown-on-l.patch # Extensions Patch: 0001-extensionDownloader-Refuse-to-override-system-extens.patch @@ -57,16 +70,16 @@ Patch: 0001-Revert-Require-gjs-1.81.2-for-build-because-Intl.Seg.patch %define gjs_version 1.73.1 %define gtk4_version 4.0.0 %define adwaita_version 1.5.0 -%define mutter_version 47.0 +%define mutter_version 49.0 %define polkit_version 0.100 %define gsettings_desktop_schemas_version 47~alpha %define ibus_version 1.5.2 %define gnome_bluetooth_version 1:42.3 %define gstreamer_version 1.4.5 -%define pipewire_version 0.3.0 +%define pipewire_version 0.3.49 %define gnome_settings_daemon_version 3.37.1 -BuildRequires: bash-completion +BuildRequires: pkgconfig(bash-completion) BuildRequires: gcc BuildRequires: meson BuildRequires: git @@ -104,7 +117,6 @@ BuildRequires: pkgconfig(libpulse) BuildRequires: gnome-bluetooth-libs-devel >= %{gnome_bluetooth_version} %endif # Bootstrap requirements -BuildRequires: gtk-doc %ifnarch s390 s390x Recommends: gnome-bluetooth%{?_isa} >= %{gnome_bluetooth_version} %endif @@ -135,7 +147,9 @@ Requires: xdg-user-dirs-gtk # needed for schemas Requires: at-spi2-atk%{?_isa} # needed for on-screen keyboard -Requires: ibus%{?_isa} >= %{ibus_version} +Recommends: ibus%{?_isa} >= %{ibus_version} +# needed for gobject-introspection typelib +Requires: ibus-libs%{?_isa} >= %{ibus_version} # needed for "show keyboard layout" Requires: tecla # needed for the user menu @@ -223,7 +237,6 @@ mkdir -p %{buildroot}%{_datadir}/gnome-shell/search-providers %find_lang %{name} %check -desktop-file-validate %{buildroot}%{_datadir}/applications/org.gnome.Shell.desktop desktop-file-validate %{buildroot}%{_datadir}/applications/org.gnome.Shell.Extensions.desktop %if %{portal_helper} @@ -241,7 +254,6 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/org.gnome.Shell.Porta %{_datadir}/glib-2.0/schemas/*.xml %{_datadir}/glib-2.0/schemas/00_org.gnome.shell.gschema.override %{_datadir}/applications/org.gnome.Shell.Extensions.desktop -%{_datadir}/applications/org.gnome.Shell.desktop %{_datadir}/bash-completion/completions/gnome-extensions %{_datadir}/bash-completion/completions/gnome-screenshot-tool %{_datadir}/gnome-control-center/keybindings/50-gnome-shell-launchers.xml @@ -254,13 +266,17 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/org.gnome.Shell.Porta %{_datadir}/dbus-1/services/org.gnome.Shell.HotplugSniffer.service %{_datadir}/dbus-1/services/org.gnome.Shell.Notifications.service %{_datadir}/dbus-1/services/org.gnome.Shell.Screencast.service +%{_datadir}/dbus-1/interfaces/org.gnome.Shell.Brightness.xml %{_datadir}/dbus-1/interfaces/org.gnome.Shell.Extensions.xml %{_datadir}/dbus-1/interfaces/org.gnome.Shell.Introspect.xml %{_datadir}/dbus-1/interfaces/org.gnome.Shell.PadOsd.xml %{_datadir}/dbus-1/interfaces/org.gnome.Shell.Screencast.xml %{_datadir}/dbus-1/interfaces/org.gnome.Shell.Screenshot.xml +%{_datadir}/dbus-1/interfaces/org.gnome.Shell.ScreenTime.xml %{_datadir}/dbus-1/interfaces/org.gnome.ShellSearchProvider.xml %{_datadir}/dbus-1/interfaces/org.gnome.ShellSearchProvider2.xml +%{_datadir}/desktop-directories/X-GNOME-Shell-System.directory +%{_datadir}/desktop-directories/X-GNOME-Shell-Utilities.directory %{_datadir}/icons/hicolor/scalable/apps/org.gnome.Shell.Extensions.svg %{_datadir}/icons/hicolor/symbolic/apps/org.gnome.Shell.Extensions-symbolic.svg %{_userunitdir}/org.gnome.Shell-disable-extensions.service diff --git a/revert-gir-2.0-port.patch b/revert-gir-2.0-port.patch new file mode 100644 index 0000000..fc38431 --- /dev/null +++ b/revert-gir-2.0-port.patch @@ -0,0 +1,199 @@ +From 445bf69e9aafa8ad76e0b4bc70cd56359f717776 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Florian=20M=C3=BCllner?= +Date: Thu, 6 Nov 2025 15:20:15 +0100 +Subject: [PATCH 1/3] Revert "build: Depend on GLib 2.86.0" + +This reverts commit 02d9487c1992972a344cac5866f0aedd357827ee. +--- + meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/meson.build b/meson.build +index 0cc6cceb94..ff5fc88734 100644 +--- a/meson.build ++++ b/meson.build +@@ -21,7 +21,7 @@ libmutter_test_pc = 'libmutter-test-' + mutter_api_version + ecal_req = '>= 3.33.1' + eds_req = '>= 3.33.1' + gcr_req = '>= 3.90.0' +-gio_req = '>= 2.86.0' ++gio_req = '>= 2.85.1' + gjs_req = '>= 1.85.90' + gtk_req = '>= 4.0' + mutter_req = '>= 49.0' +-- +2.51.1 + + +From f4a4ce8a0608d8fb8c39cf7b81c828a22e305e63 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Florian=20M=C3=BCllner?= +Date: Thu, 6 Nov 2025 15:21:29 +0100 +Subject: [PATCH 2/3] Revert "build: Depend on gjs 1.85.90" + +This reverts commit 08563fae7cd392527b0712c583750add21ac97d7. +--- + meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/meson.build b/meson.build +index ff5fc88734..5bc23778ef 100644 +--- a/meson.build ++++ b/meson.build +@@ -22,7 +22,7 @@ ecal_req = '>= 3.33.1' + eds_req = '>= 3.33.1' + gcr_req = '>= 3.90.0' + gio_req = '>= 2.85.1' +-gjs_req = '>= 1.85.90' ++gjs_req = '>= 1.85.1' + gtk_req = '>= 4.0' + mutter_req = '>= 49.0' + polkit_req = '>= 0.100' +-- +2.51.1 + + +From 6f94c04657a9013dd9ca2e5366e6118d8cb96b20 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Florian=20M=C3=BCllner?= +Date: Thu, 6 Nov 2025 15:27:19 +0100 +Subject: [PATCH 3/3] Revert "Port to gjs-1.85/girepository-2.0" + +This reverts commit c8e28918aa96c53333ea7019eb24642b7878b548. +--- + meson.build | 7 ++++--- + src/main.c | 23 ++++++++++------------- + src/run-js-test.c | 9 +++------ + 3 files changed, 17 insertions(+), 22 deletions(-) + +diff --git a/meson.build b/meson.build +index 5bc23778ef..ddd7d2c6e4 100644 +--- a/meson.build ++++ b/meson.build +@@ -21,8 +21,9 @@ libmutter_test_pc = 'libmutter-test-' + mutter_api_version + ecal_req = '>= 3.33.1' + eds_req = '>= 3.33.1' + gcr_req = '>= 3.90.0' +-gio_req = '>= 2.85.1' +-gjs_req = '>= 1.85.1' ++gio_req = '>= 2.79.2' ++gi_req = '>= 1.49.1' ++gjs_req = '>= 1.81.2' + gtk_req = '>= 4.0' + mutter_req = '>= 49.0' + polkit_req = '>= 0.100' +@@ -72,7 +73,7 @@ ecal_dep = dependency('libecal-2.0', version: ecal_req) + eds_dep = dependency('libedataserver-1.2', version: eds_req) + gcr_dep = dependency('gcr-4', version: gcr_req) + gdk_pixbuf_dep = dependency('gdk-pixbuf-2.0') +-gi_dep = dependency('girepository-2.0', version: gio_req) ++gi_dep = dependency('gobject-introspection-1.0', version: gi_req) + gio_dep = dependency('gio-2.0', version: gio_req) + gio_unix_dep = dependency('gio-unix-2.0', version: gio_req) + gjs_dep = dependency('gjs-1.0', version: gjs_req) +diff --git a/src/main.c b/src/main.c +index 99eca3e3c9..af4fa8597e 100644 +--- a/src/main.c ++++ b/src/main.c +@@ -13,7 +13,7 @@ + #include + #include + #include +-#include ++#include + #include + #include + #include +@@ -133,7 +133,7 @@ shell_dbus_init (gboolean replace) + + #ifdef HAVE_EXE_INTROSPECTION + static void +-maybe_add_rpath_introspection_paths (GIRepository *repo) ++maybe_add_rpath_introspection_paths (void) + { + ElfW (Dyn) *dyn; + ElfW (Dyn) *rpath = NULL; +@@ -210,8 +210,8 @@ maybe_add_rpath_introspection_paths (GIRepository *repo) + g_debug ("Prepending RPATH directory '%s' " + "to introsepciton library search path", + rpath_dir->str); +- gi_repository_prepend_search_path (repo, rpath_dir->str); +- gi_repository_prepend_library_path (repo, rpath_dir->str); ++ g_irepository_prepend_search_path (rpath_dir->str); ++ g_irepository_prepend_library_path (rpath_dir->str); + } + } + #endif /* HAVE_EXE_INTROSPECTION */ +@@ -219,23 +219,20 @@ maybe_add_rpath_introspection_paths (GIRepository *repo) + static void + shell_introspection_init (void) + { +- g_autoptr (GIRepository) repo = NULL; + +- repo = gi_repository_dup_default (); +- +- gi_repository_prepend_search_path (repo, MUTTER_TYPELIB_DIR); +- gi_repository_prepend_search_path (repo, SHELL_TYPELIB_DIR); ++ g_irepository_prepend_search_path (MUTTER_TYPELIB_DIR); ++ g_irepository_prepend_search_path (SHELL_TYPELIB_DIR); + + /* We need to explicitly add the directories where the private libraries are + * installed to the GIR's library path, so that they can be found at runtime + * when linking using DT_RUNPATH (instead of DT_RPATH), which is the default + * for some linkers (e.g. gold) and in some distros (e.g. Debian). + */ +- gi_repository_prepend_library_path (repo, MUTTER_TYPELIB_DIR); +- gi_repository_prepend_library_path (repo, GNOME_SHELL_PKGLIBDIR); ++ g_irepository_prepend_library_path (MUTTER_TYPELIB_DIR); ++ g_irepository_prepend_library_path (GNOME_SHELL_PKGLIBDIR); + + #ifdef HAVE_EXE_INTROSPECTION +- maybe_add_rpath_introspection_paths (repo); ++ maybe_add_rpath_introspection_paths (); + #endif + } + +@@ -614,7 +611,7 @@ main (int argc, char **argv) + context = meta_create_context (WM_NAME); + meta_context_add_option_entries (context, gnome_shell_options, + GETTEXT_PACKAGE); +- meta_context_add_option_group (context, gi_repository_get_option_group ()); ++ meta_context_add_option_group (context, g_irepository_get_option_group ()); + + session_mode = (char *) g_getenv ("GNOME_SHELL_SESSION_MODE"); + +diff --git a/src/run-js-test.c b/src/run-js-test.c +index 7a539d3a23..4f795252c2 100644 +--- a/src/run-js-test.c ++++ b/src/run-js-test.c +@@ -30,7 +30,7 @@ + #include + #include + +-#include ++#include + #include + + #include "shell-global.h" +@@ -64,7 +64,6 @@ int + main (int argc, char **argv) + { + GOptionContext *context; +- g_autoptr (GIRepository) repo = NULL; + g_autoptr (GError) error = NULL; + ShellGlobal *global; + GjsContext *js_context; +@@ -86,10 +85,8 @@ main (int argc, char **argv) + global = shell_global_get (); + js_context = _shell_global_get_gjs_context (global); + +- repo = gi_repository_dup_default (); +- +- gi_repository_prepend_search_path (repo, MUTTER_TYPELIB_DIR); +- gi_repository_prepend_search_path (repo, SHELL_TYPELIB_DIR); ++ g_irepository_prepend_search_path (MUTTER_TYPELIB_DIR); ++ g_irepository_prepend_search_path (SHELL_TYPELIB_DIR); + + if (argc < 2) + { +-- +2.51.1 + diff --git a/screenshot-tool.patch b/screenshot-tool.patch index 38aa981..096b3a7 100644 --- a/screenshot-tool.patch +++ b/screenshot-tool.patch @@ -1,7 +1,37 @@ -From b1580fc69a8417b45367ed3a2dbd946f270ac683 Mon Sep 17 00:00:00 2001 +From 83a585f075bacf766e4cf40429fc41c217cf2e29 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Florian=20M=C3=BCllner?= +Date: Thu, 6 Nov 2025 15:17:41 +0100 +Subject: [PATCH 1/2] Revert "screenshot: Remove gnome-screenshot from allowed + senders" + +The following commit will add a CLI screenshot tool that reuses +the D-Bus name from gnome-screenshot, so re-allow the caller. + +This reverts commit c9944dbf9bd47a972eb4f3908fefe5878d315d6e. +--- + js/ui/screenshot.js | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/js/ui/screenshot.js b/js/ui/screenshot.js +index 209207710b..328080235c 100644 +--- a/js/ui/screenshot.js ++++ b/js/ui/screenshot.js +@@ -2450,6 +2450,7 @@ export class ScreenshotService { + this._senderChecker = new DBusSenderChecker([ + 'org.gnome.SettingsDaemon.MediaKeys', + 'org.freedesktop.impl.portal.desktop.gnome', ++ 'org.gnome.Screenshot', + ]); + + this._lockdownSettings = new Gio.Settings({schema_id: 'org.gnome.desktop.lockdown'}); +-- +2.51.1 + + +From 525260b46f147fd5272e9c5047a8263f4db1634f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Fri, 18 Jul 2025 21:34:36 +0200 -Subject: [PATCH] Add screenshot CLI tool +Subject: [PATCH 2/2] Add screenshot CLI tool The tool provides the same API as gnome-screenshot, but leverages GNOME's built-in screenshot UI instead of implementing its own @@ -100,10 +130,10 @@ index c61bf51513..cfb9c8e07f 100644 + ) +endforeach diff --git a/meson.build b/meson.build -index 561ab30832..aed3f89611 100644 +index ddd7d2c6e4..327e5f0b7e 100644 --- a/meson.build +++ b/meson.build -@@ -134,6 +134,8 @@ if get_option('man') +@@ -141,6 +141,8 @@ if get_option('man') subdir('man') endif @@ -385,10 +415,10 @@ index 0000000000..e29650abfe +if __name__ == "__main__": + main() diff --git a/src/meson.build b/src/meson.build -index 23d23b4f38..4ccdd3b055 100644 +index a4ce889eac..d83d84a5e9 100644 --- a/src/meson.build +++ b/src/meson.build -@@ -310,3 +310,29 @@ run_test = executable('run-js-test', 'run-js-test.c', +@@ -315,3 +315,29 @@ run_test = executable('run-js-test', 'run-js-test.c', include_directories: [conf_inc], build_rpath: mutter_typelibdir, ) @@ -419,5 +449,5 @@ index 23d23b4f38..4ccdd3b055 100644 + ) +endif -- -2.50.1 +2.51.1 diff --git a/sources b/sources index 7d6c4b3..f141cd6 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (gnome-shell-47.10.tar.xz) = ba8c15b0215da18c1a702ba5c9e59a042fba24099af896b45dcb02abbb67d0582af9f4f6e0f00b6e3de22d60472ec055780e3c034c6503512d6a246e38ebdcbd +SHA512 (gnome-shell-49.1.tar.xz) = 0a729c35669780b9b45fbc22497e9ba5e8e6b3c636f87bf54e372f9f261e364bee04352cfdb90f34fb574fe3ee272b3b248d296751521151f43c670f7f1bd381 diff --git a/tweak-app-defaults.patch b/tweak-app-defaults.patch deleted file mode 100644 index 431f705..0000000 --- a/tweak-app-defaults.patch +++ /dev/null @@ -1,384 +0,0 @@ -From cfeade9501e158b426f571d05ab15ee6dbe49e75 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Florian=20M=C3=BCllner?= -Date: Fri, 7 Feb 2025 15:01:48 +0100 -Subject: [PATCH 1/3] 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: ---- - data/default-apps/app-grid.txt | 21 ++++++++++++++ - data/default-apps/dash.txt | 6 ++++ - data/default-apps/utilities-folder.txt | 17 +++++++++++ - data/meson.build | 8 ++++++ - data/org.gnome.shell.gschema.xml.in | 28 +++--------------- - js/misc/config.js.in | 2 ++ - js/misc/meson.build | 4 +++ - js/ui/appDisplay.js | 19 ++---------- - meson.build | 1 + - meson/generate-app-list.py | 40 ++++++++++++++++++++++++++ - 10 files changed, 106 insertions(+), 40 deletions(-) - create mode 100644 data/default-apps/app-grid.txt - create mode 100644 data/default-apps/dash.txt - create mode 100644 data/default-apps/utilities-folder.txt - create mode 100755 meson/generate-app-list.py - -diff --git a/data/default-apps/app-grid.txt b/data/default-apps/app-grid.txt -new file mode 100644 -index 0000000000..d78ed165eb ---- /dev/null -+++ b/data/default-apps/app-grid.txt -@@ -0,0 +1,21 @@ -+org.gnome.Geary.desktop -+org.gnome.Contacts.desktop -+org.gnome.Weather.desktop -+org.gnome.clocks.desktop -+org.gnome.Maps.desktop -+org.gnome.Books.desktop -+org.gnome.Photos.desktop -+org.gnome.Totem.desktop -+org.gnome.Calculator.desktop -+org.gnome.gedit.desktop -+simple-scan.desktop -+org.gnome.Settings.desktop -+org.gnome.SystemMonitor.desktop -+org.gnome.Boxes.desktop -+org.gnome.Terminal.desktop -+Utilities # folder -+org.gnome.Characters.desktop -+yelp.desktop -+org.gnome.Screenshot.desktop -+org.gnome.Cheese.desktop -+org.gnome.font-viewer.desktop -diff --git a/data/default-apps/dash.txt b/data/default-apps/dash.txt -new file mode 100644 -index 0000000000..2a8e8bcd06 ---- /dev/null -+++ b/data/default-apps/dash.txt -@@ -0,0 +1,6 @@ -+org.gnome.Epiphany.desktop -+org.gnome.Calendar.desktop -+org.gnome.Music.desktop -+gnome.Nautilus.desktop -+org.gnome.Software.desktop -+org.gnome.TextEditor.desktop -diff --git a/data/default-apps/utilities-folder.txt b/data/default-apps/utilities-folder.txt -new file mode 100644 -index 0000000000..6169977751 ---- /dev/null -+++ b/data/default-apps/utilities-folder.txt -@@ -0,0 +1,17 @@ -+# Sorted by name as shown in menus, not filename -+nm-connection-editor.desktop # Advanced Network Configuration -+org.gnome.DejaDup.desktop # Backups -+org.gnome.Characters.desktop # Characters -+org.gnome.Connections.desktop # Connections -+org.gnome.DiskUtility.desktop # Disks -+org.gnome.baobab.desktop # Disk Usage Analyzer -+org.gnome.Evince.desktop # Document Viewer -+org.gnome.FileRoller.desktop # File Roller -+org.gnome.font-viewer.desktop # Fonts -+org.gnome.Loupe.desktop # Image Viewer -+org.gnome.Logs.desktop # Logs -+org.freedesktop.MalcontentControl.desktop # Parental Controls -+org.gnome.seahorse.Application.desktop # Passwords and Keys -+org.freedesktop.GnomeAbrt.desktop # Problem Reporting -+org.gnome.tweaks.desktop # Tweaks -+org.gnome.Usage.desktop # Usage -diff --git a/data/meson.build b/data/meson.build -index ed13b6baea..c7565ee810 100644 ---- a/data/meson.build -+++ b/data/meson.build -@@ -90,6 +90,14 @@ install_data(keybinding_files, install_dir: keysdir) - - schemaconf = configuration_data() - schemaconf.set('GETTEXT_PACKAGE', meson.project_name()) -+schemaconf.set('DASH_APPS', run_command( -+ generate_app_list, 'default-apps/dash.txt', -+ check: true, -+).stdout()) -+schemaconf.set('APP_GRID_APPS', run_command( -+ generate_app_list, '--pages', 'default-apps/app-grid.txt', -+ check: true, -+).stdout()) - schema = configure_file( - input: 'org.gnome.shell.gschema.xml.in', - output: 'org.gnome.shell.gschema.xml', -diff --git a/data/org.gnome.shell.gschema.xml.in b/data/org.gnome.shell.gschema.xml.in -index 3cd37692a7..b1c2534f9c 100644 ---- a/data/org.gnome.shell.gschema.xml.in -+++ b/data/org.gnome.shell.gschema.xml.in -@@ -61,7 +61,9 @@ - - - -- [ 'org.gnome.Epiphany.desktop', 'org.gnome.Calendar.desktop', 'org.gnome.Music.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Software.desktop', 'org.gnome.TextEditor.desktop'] -+ -+ @DASH_APPS@ -+ - List of desktop file IDs for favorite applications - - The applications corresponding to these identifiers -@@ -118,29 +120,7 @@ - - - }>, -- 'org.gnome.Contacts.desktop': <{'position': <1>}>, -- 'org.gnome.Weather.desktop': <{'position': <2>}>, -- 'org.gnome.clocks.desktop': <{'position': <3>}>, -- 'org.gnome.Maps.desktop': <{'position': <4>}>, -- 'org.gnome.Books.desktop': <{'position': <5>}>, -- 'org.gnome.Photos.desktop': <{'position': <6>}>, -- 'org.gnome.Totem.desktop': <{'position': <7>}>, -- 'org.gnome.Calculator.desktop': <{'position': <8>}>, -- 'org.gnome.gedit.desktop': <{'position': <9>}>, -- 'simple-scan.desktop': <{'position': <10>}>, -- 'org.gnome.Settings.desktop': <{'position': <11>}>, -- 'org.gnome.SystemMonitor.desktop': <{'position': <12>}>, -- 'org.gnome.Boxes.desktop': <{'position': <13>}>, -- 'org.gnome.Terminal.desktop': <{'position': <14>}>, -- 'Utilities': <{'position': <15>}>, -- 'org.gnome.Characters.desktop': <{'position': <16>}>, -- 'yelp.desktop': <{'position': <17>}>, -- 'org.gnome.Screenshot.desktop': <{'position': <18>}>, -- 'org.gnome.Cheese.desktop': <{'position': <19>}>, -- 'org.gnome.font-viewer.desktop': <{'position': <20>}> -- }] -+ @APP_GRID_APPS@ - ]]> - Layout of the app picker - -diff --git a/js/misc/config.js.in b/js/misc/config.js.in -index a5069e438a..6485d614f5 100644 ---- a/js/misc/config.js.in -+++ b/js/misc/config.js.in -@@ -20,3 +20,5 @@ export const LIBMUTTER_API_VERSION = '@LIBMUTTER_API_VERSION@'; - - export const HAVE_BLUETOOTH = pkg.checkSymbol('GnomeBluetooth', '3.0', - 'Client.default_adapter_state'); -+ -+export const UTILITIES_FOLDER_APPS = @UTILS_FOLDER_APPS@; -diff --git a/js/misc/meson.build b/js/misc/meson.build -index 5fc8ca433f..4b137ef3e6 100644 ---- a/js/misc/meson.build -+++ b/js/misc/meson.build -@@ -5,6 +5,10 @@ jsconf.set('GETTEXT_PACKAGE', meson.project_name()) - jsconf.set('LIBMUTTER_API_VERSION', mutter_api_version) - jsconf.set10('HAVE_NETWORKMANAGER', have_networkmanager) - jsconf.set10('HAVE_PORTAL_HELPER', have_portal_helper) -+jsconf.set('UTILS_FOLDER_APPS', run_command( -+ generate_app_list, '../../data/default-apps/utilities-folder.txt', -+ check: true, -+).stdout()) - jsconf.set('datadir', datadir) - jsconf.set('libexecdir', libexecdir) - -diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js -index bdce3bdeed..992004b8f9 100644 ---- a/js/ui/appDisplay.js -+++ b/js/ui/appDisplay.js -@@ -24,6 +24,8 @@ import * as SystemActions from '../misc/systemActions.js'; - - import * as Main from './main.js'; - -+import {UTILITIES_FOLDER_APPS} from '../misc/config.js'; -+ - const MENU_POPUP_TIMEOUT = 600; - const POPDOWN_DIALOG_TIMEOUT = 500; - -@@ -60,22 +62,7 @@ const DEFAULT_FOLDERS = { - 'Utilities': { - name: 'X-GNOME-Utilities.directory', - categories: ['X-GNOME-Utilities'], -- apps: [ -- 'org.freedesktop.GnomeAbrt.desktop', -- 'nm-connection-editor.desktop', -- 'org.gnome.baobab.desktop', -- 'org.gnome.Connections.desktop', -- 'org.gnome.DejaDup.desktop', -- 'org.gnome.DiskUtility.desktop', -- 'org.gnome.Evince.desktop', -- 'org.gnome.FileRoller.desktop', -- 'org.gnome.font-viewer.desktop', -- 'org.gnome.Loupe.desktop', -- 'org.freedesktop.MalcontentControl.desktop', -- 'org.gnome.seahorse.Application.desktop', -- 'org.gnome.tweaks.desktop', -- 'org.gnome.Usage.desktop', -- ], -+ apps: UTILITIES_FOLDER_APPS, - }, - 'YaST': { - name: 'suse-yast.directory', -diff --git a/meson.build b/meson.build -index c9955ca651..6f10a366bf 100644 ---- a/meson.build -+++ b/meson.build -@@ -137,6 +137,7 @@ endif - mutter_typelibdir = mutter_dep.get_variable('typelibdir') - python = find_program('python3') - gjs = find_program('gjs') -+generate_app_list = find_program('meson/generate-app-list.py') - - cc = meson.get_compiler('c') - -diff --git a/meson/generate-app-list.py b/meson/generate-app-list.py -new file mode 100755 -index 0000000000..067c36967c ---- /dev/null -+++ b/meson/generate-app-list.py -@@ -0,0 +1,40 @@ -+#!/usr/bin/env python3 -+ -+import argparse -+ -+def read_app_ids(path) -> str: -+ ids = [] -+ with open(path, "r") as file: -+ for line in file: -+ # strip comments -+ line, _, _ = line.partition('#'); -+ line = line.strip() -+ if len(line) > 0: -+ ids.append(line) -+ return ids -+ -+def print_as_array(ids): -+ mapped_ids = list(map(lambda i: f" '{i}'", ids)) -+ print('[') -+ print(',\n'.join(mapped_ids)) -+ print(']') -+ -+def print_as_pages(ids): -+ mapped_ids = [] -+ for i, id in enumerate(ids): -+ mapped_ids.append(f" '{id}': <{{'position': <{i}>}}>") -+ -+ print('[{') -+ print(',\n'.join(mapped_ids)) -+ print('}]') -+ -+parser = argparse.ArgumentParser() -+parser.add_argument('--pages', action='store_true') -+parser.add_argument('file') -+args = parser.parse_args() -+ -+ids = read_app_ids(args.file) -+if args.pages: -+ print_as_pages(ids) -+else: -+ print_as_array(ids) --- -2.48.1 - - -From aeb7adf061d74d75edc85f65520cb404e8a4361d Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Florian=20M=C3=BCllner?= -Date: Fri, 14 Feb 2025 15:44:30 +0100 -Subject: [PATCH 2/3] data: Tweak dash/app-grid defaults - -With the current RHEL 10 app set, the dash and app grid look -rather empty. - -Address this by - - adding Calculator to dash - - moving Characters and Baobab out of the Utilities folder - -With those changes, there are at least 5 apps in the dash and 2 rows -in the app grid. ---- - data/default-apps/dash.txt | 1 + - data/default-apps/utilities-folder.txt | 2 -- - 2 files changed, 1 insertion(+), 2 deletions(-) - -diff --git a/data/default-apps/dash.txt b/data/default-apps/dash.txt -index 2a8e8bcd06..d0c2c21eb8 100644 ---- a/data/default-apps/dash.txt -+++ b/data/default-apps/dash.txt -@@ -4,3 +4,4 @@ org.gnome.Music.desktop - gnome.Nautilus.desktop - org.gnome.Software.desktop - org.gnome.TextEditor.desktop -+org.gnome.Calculator.desktop -diff --git a/data/default-apps/utilities-folder.txt b/data/default-apps/utilities-folder.txt -index 6169977751..187e3cfc54 100644 ---- a/data/default-apps/utilities-folder.txt -+++ b/data/default-apps/utilities-folder.txt -@@ -1,10 +1,8 @@ - # Sorted by name as shown in menus, not filename - nm-connection-editor.desktop # Advanced Network Configuration - org.gnome.DejaDup.desktop # Backups --org.gnome.Characters.desktop # Characters - org.gnome.Connections.desktop # Connections - org.gnome.DiskUtility.desktop # Disks --org.gnome.baobab.desktop # Disk Usage Analyzer - org.gnome.Evince.desktop # Document Viewer - org.gnome.FileRoller.desktop # File Roller - org.gnome.font-viewer.desktop # Fonts --- -2.48.1 - - -From 7a21fca2f59d68896f54600b64e5d9a216203e9e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Florian=20M=C3=BCllner?= -Date: Fri, 7 Feb 2025 15:54:15 +0100 -Subject: [PATCH 3/3] appDisplay: Filter apps in default folder - -We currently create the default folder with the corresponding -app list, regardless of whether the apps are actually part of -the default install or not. - -This matters when a user explicitly install such an app later, -as it will be hidden away in the folder rather than appended -to the app grid as expected. - -To avoid that, only add currently-installed apps to the folder -when creating it. - -Part-of: ---- - js/ui/appDisplay.js | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - -diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js -index 992004b8f9..6bd2d899cd 100644 ---- a/js/ui/appDisplay.js -+++ b/js/ui/appDisplay.js -@@ -1419,12 +1419,16 @@ class AppDisplay extends BaseAppView { - if (this._folderSettings.get_strv('folder-children').length > 0) - return; - -+ const appSys = Shell.AppSystem.get_default(); - const folders = Object.keys(DEFAULT_FOLDERS); - this._folderSettings.set_strv('folder-children', folders); - - const {path} = this._folderSettings; - for (const folder of folders) { - const {name, categories, apps} = DEFAULT_FOLDERS[folder]; -+ const filteredApps = apps -+ ? apps.filter(id => appSys.lookup_app(id) != null) -+ : []; - const child = new Gio.Settings({ - schema_id: 'org.gnome.desktop.app-folders.folder', - path: `${path}folders/${folder}/`, -@@ -1432,8 +1436,8 @@ class AppDisplay extends BaseAppView { - child.set_string('name', name); - child.set_boolean('translate', true); - child.set_strv('categories', categories); -- if (apps) -- child.set_strv('apps', apps); -+ if (filteredApps.length > 0) -+ child.set_strv('apps', filteredApps); - } - } - --- -2.48.1 -