Set Logo Menu defaults and finalize flatpak setup

This commit is contained in:
randogoth 2026-02-03 17:58:54 +02:00
parent 6bea3e57a7
commit c24571128b
7 changed files with 189 additions and 5 deletions

View file

@ -5,6 +5,7 @@
inputs.lix-module.nixosModules.lixFromNixpkgs inputs.lix-module.nixosModules.lixFromNixpkgs
inputs.nix-index-database.nixosModules.nix-index inputs.nix-index-database.nixosModules.nix-index
inputs.nix-flatpak.nixosModules.nix-flatpak inputs.nix-flatpak.nixosModules.nix-flatpak
./nanuqsaurus-hardware.nix
../modules/system/flatpak.nix ../modules/system/flatpak.nix
../modules/system/base.nix ../modules/system/base.nix
../modules/system/packages.nix ../modules/system/packages.nix

View file

@ -1,12 +1,49 @@
{ pkgs, ... }: { pkgs, lib, ... }:
{ let
# Patched Logo Menu extension (same patch as installed system-wide).
logoMenuExtension = pkgs.gnomeExtensions.logo-menu.overrideAttrs (old: {
patches = (old.patches or []) ++ [ ./patches/logo-menu-custom-menu.patch ];
});
# Expose the extension schema in the layout expected by gsettings overrides.
logoMenuSchemas = pkgs.runCommand "logo-menu-gsettings-schemas" { } ''
schemaSrc="${logoMenuExtension}/share/gnome-shell/extensions/logomenu@aryan_k/schemas";
dest=$out/share/gsettings-schemas/logo-menu-gsettings-schemas/glib-2.0/schemas
mkdir -p "$dest"
cp -a "$schemaSrc"/*.xml "$dest"/
'';
in {
services.displayManager.gdm.enable = true; services.displayManager.gdm.enable = true;
services.desktopManager.gnome.enable = true; services.desktopManager.gnome.enable = true;
services.desktopManager.gnome.extraGSettingsOverridePackages = [
pkgs.gnome-shell
logoMenuSchemas
];
# Ensure GNOME sees the compiled overrides.
environment.profileRelativeEnvVars.XDG_DATA_DIRS = lib.mkAfter [
"/share/gsettings-schemas/nixos-gsettings-overrides"
];
services.gnome.core-developer-tools.enable = false; services.gnome.core-developer-tools.enable = false;
services.gnome.games.enable = false; services.gnome.games.enable = false;
# System default GNOME Shell extensions (user can still toggle/override).
services.desktopManager.gnome.extraGSettingsOverrides = ''
[org/gnome/shell]
disable-user-extensions=false
enabled-extensions=['all-in-one-clipboard@NiffirgkcaJ.github.com','AlphabeticalAppGrid@stuarthayhurst','app-hider@lynith.dev','apps@github.com.howbea','blur-my-shell@aunetx','caffeine@patapon.info','logomenu@aryan_k','places-menu@gnome-shell-extensions.gcampax.github.com','restartto@tiagoporsch.github.io']
favorite-apps=['firefox.desktop','org.gnome.Settings.desktop','org.gnome.Ptyxis.desktop','com.mattjakeman.ExtensionManager.desktop']
[org/gnome/shell/extensions/logo-menu]
menu-button-icon-image=51
menu-button-terminal='ghostty'
menu-button-system-monitor='flatpak run io.missioncenter.MissionCenter'
menu-button-extensions-app='com.mattjakeman.ExtensionManager.desktop'
hide-softwarecentre=true
'';
environment.gnome.excludePackages = with pkgs; [ environment.gnome.excludePackages = with pkgs; [
# comment out to include # comment out to include
gnome-tour gnome-tour

View file

@ -0,0 +1,132 @@
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
@@ -47,13 +47,8 @@
this.setIconSize();
this.add_child(this.icon);
- // Menu
- this._settings.connectObject('changed::hide-softwarecentre', () => this._displayMenuItems(), this);
- this._settings.connectObject('changed::show-power-options', () => this._displayMenuItems(), this);
- this._settings.connectObject('changed::hide-forcequit', () => this._displayMenuItems(), this);
- this._settings.connectObject('changed::show-lockscreen', () => this._displayMenuItems(), this);
- this._settings.connectObject('changed::show-activities-button', () => this._displayMenuItems(), this);
- this._displayMenuItems();
+ // Menu (custom layout)
+ this._displayMenuItems();
// bind middle click option to toggle overview
this.connect('button-press-event', this._buttonPressEvent.bind(this));
@@ -64,51 +59,19 @@
}
_displayMenuItems() {
- const showPowerOptions = this._settings.get_boolean('show-power-options');
- const showForceQuit = !this._settings.get_boolean('hide-forcequit');
- const showLockScreen = this._settings.get_boolean('show-lockscreen');
- const showSoftwareCenter = !this._settings.get_boolean('hide-softwarecentre');
- const showActivitiesButton = this._settings.get_boolean('show-activities-button');
-
- this.menu.removeAll();
-
- this._addItem(new MenuItem(_('About My System'), () => this._aboutThisDistro()));
- // this._addItem(new MenuItem(_('System Settings...'), () => this._systemPreferences()));
- this._addItem(new PopupMenu.PopupSeparatorMenuItem());
-
- if (!showActivitiesButton)
- this._addItem(new MenuItem(_('Activities'), () => this._overviewToggle()));
-
- this._addItem(new MenuItem(_('App Grid'), () => this._showAppGrid()));
- this._addItem(new PopupMenu.PopupSeparatorMenuItem());
-
- if (showSoftwareCenter)
- this._addItem(new MenuItem(_('Software Center'), () => this._openSoftwareCenter()));
-
- this._addItem(new MenuItem(_('System Monitor'), () => this._openSystemMonitor()));
- this._addItem(new MenuItem(_('Terminal'), () => this._openTerminal()));
- this._addItem(new MenuItem(_('Extensions'), () => this._openExtensionsApp()));
-
- if (showForceQuit) {
- this._addItem(new PopupMenu.PopupSeparatorMenuItem());
- this._addItem(new MenuItem(_('Force Quit App'), () => this._forceQuit()));
- }
-
- if (showPowerOptions) {
- this._addItem(new PopupMenu.PopupSeparatorMenuItem());
- this._addItem(new MenuItem(_('Sleep'), () => this._sleep()));
- this._addItem(new MenuItem(_('Restart...'), () => this._restart()));
- this._addItem(new MenuItem(_('Shut Down...'), () => this._shutdown()));
- this._addItem(new PopupMenu.PopupSeparatorMenuItem());
-
- if (showLockScreen)
- this._addItem(new MenuItem(_('Lock Screen'), () => this._lockScreen()));
-
- this._addItem(new MenuItem(_('Log Out...'), () => this._logOut()));
- } 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()));
}
_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
@@ -4,7 +4,7 @@
<schema path="/org/gnome/shell/extensions/Logo-menu/" id="org.gnome.shell.extensions.logo-menu">
<key type="i" name="menu-button-icon-image">
- <default>0</default>
+ <default>51</default>
<summary>Menu Button Icon Image</summary>
<description>Change the Menu Button Icon Image.</description>
</key>
@@ -22,7 +22,7 @@
</key>
<key type="s" name="menu-button-extensions-app">
- <default>"org.gnome.Extensions.desktop"</default>
+ <default>"com.mattjakeman.ExtensionManager.desktop"</default>
<summary>Preffered Extensions app</summary>
<description>Change to preffered Extensions app.</description>
</key>
@@ -34,7 +34,7 @@
</key>
<key type="s" name="menu-button-terminal">
- <default>"gnome-terminal"</default>
+ <default>"ghostty"</default>
<summary>Menu Button Terminal</summary>
<description>Change the Menu Button Terminal.</description>
</key>
@@ -70,7 +70,7 @@
</key>
<key type="b" name="hide-softwarecentre">
- <default>false</default>
+ <default>true</default>
<summary>Toggle Software Centre option visibility</summary>
<description>Toggle Software Centre option visibility.</description>
</key>
@@ -95,7 +95,7 @@
</key>
<key type="s" name="menu-button-system-monitor">
- <default>"gnome-system-monitor"</default>
+ <default>"flatpak run io.missioncenter.MissionCenter"</default>
<summary>Menu System Monitor</summary>
<description>Change the Menu System Monitor.</description>
</key>

View file

@ -20,6 +20,7 @@
packages = [ packages = [
"com.github.tchx84.Flatseal" "com.github.tchx84.Flatseal"
"io.github.kolunmi.Bazaar" "io.github.kolunmi.Bazaar"
"io.missioncenter.MissionCenter"
]; ];
}; };
} }

View file

@ -9,6 +9,19 @@
pkgs.flatpak pkgs.flatpak
pkgs.ghostty pkgs.ghostty
pkgs.git pkgs.git
pkgs.gnome-browser-connector # lets users install extensions from GNOME Extensions website
pkgs.gnome-extension-manager # GUI to browse/install GNOME Shell extensions
pkgs.gnomeExtensions.all-in-one-clipboard
pkgs.gnomeExtensions.alphabetical-app-grid
pkgs.gnomeExtensions.app-hider
pkgs.gnomeExtensions.apps
pkgs.gnomeExtensions.blur-my-shell
pkgs.gnomeExtensions.caffeine
(pkgs.gnomeExtensions.logo-menu.overrideAttrs (old: {
patches = (old.patches or []) ++ [ ../desktop/patches/logo-menu-custom-menu.patch ];
}))
pkgs.gnomeExtensions.places-status-indicator
pkgs.gnomeExtensions.restart-to
pkgs.home-manager pkgs.home-manager
pkgs.just pkgs.just
pkgs.libnotify pkgs.libnotify

View file

@ -61,8 +61,8 @@ notify() {
fi fi
} }
notify "System setup running" "Please wait until setup completes." notify "Reticulating Splines" "Bootstrapping. Please stay tuned."
trap 'notify "System setup finished" "You may continue using the system."' EXIT trap 'notify "Bootstrap finished" "Your system is fully hydrated. It is recommended to logout and back in."' EXIT
mkdir -p "$HOME/.config/home-manager" mkdir -p "$HOME/.config/home-manager"
for f in flake.nix home.nix; do for f in flake.nix home.nix; do

View file

@ -18,7 +18,7 @@
packages = [ ]; packages = [ ];
update = { update = {
auto.enable = true; auto.enable = true;
auto.onCalendar = "weekly"; auto.onCalendar = "daily";
onActivation = false; onActivation = false;
}; };
}; };