Set Logo Menu defaults and finalize flatpak setup
This commit is contained in:
parent
6bea3e57a7
commit
c24571128b
7 changed files with 189 additions and 5 deletions
|
|
@ -5,6 +5,7 @@
|
|||
inputs.lix-module.nixosModules.lixFromNixpkgs
|
||||
inputs.nix-index-database.nixosModules.nix-index
|
||||
inputs.nix-flatpak.nixosModules.nix-flatpak
|
||||
./nanuqsaurus-hardware.nix
|
||||
../modules/system/flatpak.nix
|
||||
../modules/system/base.nix
|
||||
../modules/system/packages.nix
|
||||
|
|
|
|||
|
|
@ -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.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.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; [
|
||||
# comment out to include
|
||||
gnome-tour
|
||||
|
|
|
|||
132
modules/desktop/patches/logo-menu-custom-menu.patch
Normal file
132
modules/desktop/patches/logo-menu-custom-menu.patch
Normal 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>
|
||||
|
|
@ -20,6 +20,7 @@
|
|||
packages = [
|
||||
"com.github.tchx84.Flatseal"
|
||||
"io.github.kolunmi.Bazaar"
|
||||
"io.missioncenter.MissionCenter"
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,19 @@
|
|||
pkgs.flatpak
|
||||
pkgs.ghostty
|
||||
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.just
|
||||
pkgs.libnotify
|
||||
|
|
|
|||
|
|
@ -61,8 +61,8 @@ notify() {
|
|||
fi
|
||||
}
|
||||
|
||||
notify "System setup running" "Please wait until setup completes."
|
||||
trap 'notify "System setup finished" "You may continue using the system."' EXIT
|
||||
notify "Reticulating Splines" "Bootstrapping. Please stay tuned."
|
||||
trap 'notify "Bootstrap finished" "Your system is fully hydrated. It is recommended to logout and back in."' EXIT
|
||||
|
||||
mkdir -p "$HOME/.config/home-manager"
|
||||
for f in flake.nix home.nix; do
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
packages = [ ];
|
||||
update = {
|
||||
auto.enable = true;
|
||||
auto.onCalendar = "weekly";
|
||||
auto.onCalendar = "daily";
|
||||
onActivation = false;
|
||||
};
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue