♻️ Move user-specific gnome config out of global context

This commit is contained in:
Jo 2025-12-16 01:40:19 +01:00
parent c046f4ae17
commit 8a3989ce0b
7 changed files with 45 additions and 81 deletions

View file

@ -1,4 +1,32 @@
{ ... }:
{
puzzlevision.desktop.gnome.wallpaper = ../wallpapers/macchiato-waves.jpg;
puzzlevision.desktop.gnome = {
favorite-apps = [
"org.gnome.Nautilus.desktop"
"obsidian.desktop"
"firefox.desktop"
"dev.zed.Zed.desktop"
];
wallpaper = ../wallpapers/macchiato-waves.jpg;
};
dconf.settings = {
"org/gnome/shell/extensions/unite" = {
show-window-buttons = "never";
hide-window-titlebars = "maximized";
use-activities-text = false;
extend-left-box = false;
reduce-panel-spacing = false;
show-legacy-tray = false;
show-appmenu-button = false;
show-desktop-name = false;
enable-titlebar-actions = false;
restrict-to-primary-screen = false;
hide-activities-button = "never";
autofocus-windows = true;
notifications-position = "right";
};
};
}

View file

@ -7,7 +7,7 @@
...
}:
let
inherit (lib) mkIf mkOption;
inherit (lib) mkIf;
inherit (self) namespace;
inherit (self.lib) mkOpt;
@ -15,58 +15,21 @@ let
in
{
options.${namespace}.desktop.gnome = with lib.types; {
enabled-extensions = mkOption {
type = listOf package;
default = with pkgs.gnomeExtensions; [
user-themes
blur-my-shell
appindicator
unite
color-picker
clipboard-history
];
example = [
dash-to-dock
blur-my-shell
];
description = "Specify gnome extensions to install.";
};
favorite-apps = mkOption {
type = listOf str;
default = [
"org.gnome.Nautilus.desktop"
"obsidian.desktop"
"firefox.desktop"
"dev.zed.Zed.desktop"
];
example = [
"org.gnome.Nautilus.desktop"
"obsidian.desktop"
];
description = "Specify your favorite apps (sorted left to right).";
};
extensions = {
unite = {
show-window-buttons = mkOption {
type = str;
default = "never";
example = "never | maximized | tiled | both | always";
description = "Specify when Unite should display window buttons within the top panel.";
};
hide-window-titlebars = mkOption {
type = str;
default = "maximized";
example = "never | maximized | tiled | both | always";
description = "Specify when Unite should hide window titlebars.";
};
};
blur-my-shell = {
enable-blur = mkOpt bool false "Whether to enable blur-my-shell application blur.";
};
};
wallpaper =
mkOpt path ../wallpapers/building_top_sit_dusk.jpg
"Specify the path of your prefered Gnome wallpaper.";
enabled-extensions = mkOpt (listOf package) (with pkgs.gnomeExtensions; [
user-themes
blur-my-shell
appindicator
unite
color-picker
clipboard-history
]) "Specify gnome extensions to install.";
favorite-apps = mkOpt (listOf str) [
"org.gnome.Nautilus.desktop"
"firefox.desktop"
] "Specify your favorite apps (sorted left to right).";
wallpaper = mkOpt path ./wallpaper.jpg "Specify the path of your prefered Gnome wallpaper.";
};
config = mkIf osConfig.${namespace}.desktop.gnome.enable {
@ -78,33 +41,6 @@ in
enabled-extensions = lib.forEach cfg.enabled-extensions (x: x.extensionUuid);
disabled-extensions = [ ]; # Make sure none of our extensions are disabled on system rebuild
};
"org/gnome/shell/extensions/unite" =
mkIf (builtins.elem pkgs.gnomeExtensions.unite cfg.enabled-extensions)
{
show-window-buttons = cfg.extensions.unite.show-window-buttons;
hide-window-titlebars = cfg.extensions.unite.hide-window-titlebars;
use-activities-text = false;
extend-left-box = false;
reduce-panel-spacing = false;
show-legacy-tray = false;
show-appmenu-button = false;
show-desktop-name = false;
enable-titlebar-actions = false;
restrict-to-primary-screen = false;
hide-activities-button = "never";
autofocus-windows = true;
notifications-position = "right";
};
"org/gnome/shell/extensions/blur-my-shell/applications" =
mkIf cfg.extensions.blur-my-shell.enable-blur
{
blur = true;
sigma = 30;
opacity = 230;
enable-all = true;
dynamic-opacity = false;
};
"org/gnome/desktop/background" = {
picture-uri = "file://${cfg.wallpaper}";
picture-uri-dark = "file://${cfg.wallpaper}";

View file

Before

Width:  |  Height:  |  Size: 2.8 MiB

After

Width:  |  Height:  |  Size: 2.8 MiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 186 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 702 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB