gnome: custom logo menu + dconf defaults

- Patch Logo Menu v38 to custom entries incl. Containers (DistroShelf)\n- Switch GNOME defaults to programs.dconf profile\n- Add desktop overrides for Thunar->Files and Ghostty->Terminal\n- Enable Thunar integration (gvfs/tumbler/xfconf) and add virt-manager tooling
This commit is contained in:
randogoth 2026-02-03 22:02:35 +02:00
parent c930b2a6bb
commit c299acb87d
5 changed files with 134 additions and 49 deletions

View file

@ -1,6 +1,6 @@
diff -ru orig/extension.js mod/extension.js
--- orig/extension.js 2026-02-03 17:53:49.513281802 +0200
+++ mod/extension.js 2026-02-03 17:53:49.528021029 +0200
diff -ru logo-menu-patch-orig/extension.js logo-menu-patch-mod/extension.js
--- logo-menu-patch-orig/extension.js 2026-02-03 21:59:13.353339473 +0200
+++ logo-menu-patch-mod/extension.js 2026-02-03 21:59:13.362477131 +0200
@@ -47,13 +47,8 @@
this.setIconSize();
this.add_child(this.icon);
@ -17,7 +17,7 @@ diff -ru orig/extension.js mod/extension.js
// bind middle click option to toggle overview
this.connect('button-press-event', this._buttonPressEvent.bind(this));
@@ -64,51 +59,19 @@
@@ -64,51 +59,40 @@
}
_displayMenuItems() {
@ -50,7 +50,17 @@ diff -ru orig/extension.js mod/extension.js
- this._addItem(new PopupMenu.PopupSeparatorMenuItem());
- this._addItem(new MenuItem(_('Force Quit App'), () => this._forceQuit()));
- }
-
+ this.menu.removeAll();
+
+ // Custom menu layout
+ this._addItem(new MenuItem(_('About My System'), () => this._aboutThisDistro()));
+ this._addItem(new MenuItem(_('System Settings'), () => this._systemPreferences()));
+
+ this._addItem(new PopupMenu.PopupSeparatorMenuItem());
+ this._addItem(new MenuItem(_('Extensions'), () => this._openExtensionsApp()));
+ this._addItem(new MenuItem(_('System Monitor'), () => this._openSystemMonitor()));
+ this._addItem(new MenuItem(_('Terminal'), () => this._openTerminal()));
- if (showPowerOptions) {
- this._addItem(new PopupMenu.PopupSeparatorMenuItem());
- this._addItem(new MenuItem(_('Sleep'), () => this._sleep()));
@ -65,26 +75,35 @@ diff -ru orig/extension.js mod/extension.js
- } else if (!showPowerOptions && showLockScreen) {
- this._addItem(new PopupMenu.PopupSeparatorMenuItem());
- this._addItem(new MenuItem(_('Lock Screen'), () => this._lockScreen()));
- }
+ this.menu.removeAll();
+
+ // Custom menu layout
+ this._addItem(new MenuItem(_('About My System'), () => this._aboutThisDistro()));
+ this._addItem(new MenuItem(_('System Settings'), () => this._systemPreferences()));
+
+ this._addItem(new PopupMenu.PopupSeparatorMenuItem());
+ this._addItem(new MenuItem(_('Extensions'), () => this._openExtensionsApp()));
+ this._addItem(new MenuItem(_('System Monitor'), () => this._openSystemMonitor()));
+ this._addItem(new MenuItem(_('Terminal'), () => this._openTerminal()));
+
+ this._addItem(new PopupMenu.PopupSeparatorMenuItem());
+ this._addItem(new MenuItem(_('Containers'), () => this._openContainers()));
+ }
+
+ _openContainers() {
+ // Prefer launching via desktop ID so we don't depend on PATH in the GNOME Shell env.
+ const appSys = Shell.AppSystem.get_default();
+ const app = appSys.lookup_app('com.ranfdev.DistroShelf.desktop');
+ if (app) {
+ try {
+ app.launch(
+ 0,
+ -1,
+ Shell.AppLaunchGpu.APP_PREF
+ );
+ return;
+ } catch (e) {
+ log(e);
+ }
}
+
+ // Fallback: direct command.
+ Util.trySpawnCommandLine('distroshelf');
}
_buttonPressEvent(actor, event) {
diff -ru orig/schemas/org.gnome.shell.extensions.logo-menu.gschema.xml mod/schemas/org.gnome.shell.extensions.logo-menu.gschema.xml
--- orig/schemas/org.gnome.shell.extensions.logo-menu.gschema.xml 2026-02-03 17:53:49.513219947 +0200
+++ mod/schemas/org.gnome.shell.extensions.logo-menu.gschema.xml 2026-02-03 17:53:49.531021112 +0200
diff -ru logo-menu-patch-orig/schemas/org.gnome.shell.extensions.logo-menu.gschema.xml logo-menu-patch-mod/schemas/org.gnome.shell.extensions.logo-menu.gschema.xml
--- logo-menu-patch-orig/schemas/org.gnome.shell.extensions.logo-menu.gschema.xml 2026-02-03 21:59:13.353462172 +0200
+++ logo-menu-patch-mod/schemas/org.gnome.shell.extensions.logo-menu.gschema.xml 2026-02-03 21:59:13.362611548 +0200
@@ -4,7 +4,7 @@
<schema path="/org/gnome/shell/extensions/Logo-menu/" id="org.gnome.shell.extensions.logo-menu">