data: Tweak app defaults

Resolves: https://issues.redhat.com/browse/RHEL-16805
This commit is contained in:
Florian Müllner 2025-02-14 15:58:40 +01:00
parent 6aac151d76
commit 376e8d75fa
No known key found for this signature in database
4 changed files with 416 additions and 36 deletions

View File

@ -1,31 +1,28 @@
From 9bb33b1c8d0dba0d5c9e98d98b1063a1d0408414 Mon Sep 17 00:00:00 2001
From 8a6298a1e7f7d46abf86ddec8ca2c8edbe4a589f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Wed, 17 Sep 2014 07:11:12 +0200
Subject: [PATCH] Replace Web with Firefox in default favorites
---
data/org.gnome.shell.gschema.xml.in | 2 +-
js/ui/appFavorites.js | 1 +
data/default-apps/dash.txt | 2 +-
js/ui/appFavorites.js | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/data/org.gnome.shell.gschema.xml.in b/data/org.gnome.shell.gschema.xml.in
index 3cd37692a7..bd2bd5ead8 100644
--- a/data/org.gnome.shell.gschema.xml.in
+++ b/data/org.gnome.shell.gschema.xml.in
@@ -61,7 +61,7 @@
</description>
</key>
<key name="favorite-apps" type="as">
- <default>[ 'org.gnome.Epiphany.desktop', 'org.gnome.Calendar.desktop', 'org.gnome.Music.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Software.desktop', 'org.gnome.TextEditor.desktop']</default>
+ <default>[ 'org.mozilla.firefox.desktop', 'org.gnome.Calendar.desktop', 'org.gnome.Music.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Software.desktop', 'org.gnome.TextEditor.desktop']</default>
<summary>List of desktop file IDs for favorite applications</summary>
<description>
The applications corresponding to these identifiers
diff --git a/data/default-apps/dash.txt b/data/default-apps/dash.txt
index d0c2c21eb8..a926311701 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 576df3800d..a1deabde37 100644
index e3a76dce96..b6525f3cc9 100644
--- a/js/ui/appFavorites.js
+++ b/js/ui/appFavorites.js
@@ -51,6 +51,7 @@ const RENAMED_DESKTOP_IDS = {
@@ -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',
@ -34,5 +31,5 @@ index 576df3800d..a1deabde37 100644
'org.gnome.gnome-2048.desktop': 'org.gnome.TwentyFortyEight.desktop',
'org.gnome.taquin.desktop': 'org.gnome.Taquin.desktop',
--
2.45.2
2.48.1

View File

@ -1,25 +1,23 @@
From d4d39560f1694f06c3594f8d34eaa4b038804920 Mon Sep 17 00:00:00 2001
From c20b996f0cf89d4620d01fa777787b80b15c8a37 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Thu, 9 Mar 2017 14:44:32 +0100
Subject: [PATCH] appFavorites: Add terminal
---
data/org.gnome.shell.gschema.xml.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
data/default-apps/dash.txt | 1 +
1 file changed, 1 insertion(+)
diff --git a/data/org.gnome.shell.gschema.xml.in b/data/org.gnome.shell.gschema.xml.in
index bd2bd5ead8..4827fa5b79 100644
--- a/data/org.gnome.shell.gschema.xml.in
+++ b/data/org.gnome.shell.gschema.xml.in
@@ -61,7 +61,7 @@
</description>
</key>
<key name="favorite-apps" type="as">
- <default>[ 'org.mozilla.firefox.desktop', 'org.gnome.Calendar.desktop', 'org.gnome.Music.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Software.desktop', 'org.gnome.TextEditor.desktop']</default>
+ <default>[ 'org.mozilla.firefox.desktop', 'org.gnome.Calendar.desktop', 'org.gnome.Music.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Software.desktop', 'org.gnome.Ptyxis.desktop', 'org.gnome.TextEditor.desktop']</default>
<summary>List of desktop file IDs for favorite applications</summary>
<description>
The applications corresponding to these identifiers
diff --git a/data/default-apps/dash.txt b/data/default-apps/dash.txt
index a926311701..5178256f6a 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
org.gnome.Software.desktop
+org.gnome.Ptyxis.desktop
org.gnome.TextEditor.desktop
org.gnome.Calculator.desktop
--
2.45.2
2.48.1

View File

@ -18,6 +18,7 @@ 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

384
tweak-app-defaults.patch Normal file
View File

@ -0,0 +1,384 @@
From cfeade9501e158b426f571d05ab15ee6dbe49e75 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
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: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3632>
---
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 @@
</description>
</key>
<key name="favorite-apps" type="as">
- <default>[ 'org.gnome.Epiphany.desktop', 'org.gnome.Calendar.desktop', 'org.gnome.Music.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Software.desktop', 'org.gnome.TextEditor.desktop']</default>
+ <default>
+ @DASH_APPS@
+ </default>
<summary>List of desktop file IDs for favorite applications</summary>
<description>
The applications corresponding to these identifiers
@@ -118,29 +120,7 @@
</key>
<key name="app-picker-layout" type="aa{sv}">
<default><![CDATA[
- [{
- 'org.gnome.Geary.desktop': <{'position': <0>}>,
- '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@
]]></default>
<summary>Layout of the app picker</summary>
<description>
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?= <fmuellner@gnome.org>
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?= <fmuellner@gnome.org>
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: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3632>
---
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