refactor: move leftover gnome configuration to home module desktop.gnome

This commit is contained in:
Jo 2024-12-24 15:40:33 +01:00
parent 673421dec3
commit 2de665b3c6
3 changed files with 37 additions and 36 deletions

View file

@ -1,30 +0,0 @@
{
pkgs,
...
}: {
# Use `dconf watch /` to track stateful changes you are doing, then set them here.
dconf.settings = {
"org/gnome/desktop/wm/preferences" = {
workspace-names = [ "Main" ];
};
"org/gnome/shell/extensions/unite" = {
use-activities-text = false;
extend-left-box = false;
reduce-panel-spacing = false;
window-buttons-placement = "first";
show-legacy-tray = false;
show-appmenu-button = false;
show-desktop-name = false;
enable-titlebar-actions = false;
restrict-to-primary-screen = true;
hide-activities-button = "never";
hide-window-titlebars = "maximized";
show-window-title = false;
autofocus-windows = true;
show-window-buttons = "maximized";
notifications-position = "right";
window-buttons-theme = "catppuccin";
};
};
}

View file

@ -6,7 +6,6 @@
}: with lib; with lib.${namespace}; }: with lib; with lib.${namespace};
{ {
imports = [ imports = [
./apps/gnome.nix
./apps/vscodium.nix ./apps/vscodium.nix
]; ];

View file

@ -12,29 +12,61 @@ let
in in
{ {
options.${host}.desktop.gnome = with types; { options.${host}.desktop.gnome = with types; {
extensions = mkOption { enabled-extensions = mkOption {
type = listOf package; type = listOf package;
default = with pkgs.gnomeExtensions; [ dash-to-dock user-themes blur-my-shell appindicator unite color-picker clipboard-history ]; default = with pkgs.gnomeExtensions; [ dash-to-dock user-themes blur-my-shell appindicator unite color-picker clipboard-history ];
example = [ dash-to-dock blur-my-shell ]; example = [ dash-to-dock blur-my-shell ];
description = "Specify gnome extensions to install."; description = "Specify gnome extensions to install.";
}; };
favorite-apps = mkOption { favorite-apps = mkOption {
type = listOf string; type = listOf str;
default = ["org.gnome.Nautilus.desktop" "obsidian.desktop" "zen.desktop" "dev.zed.Zed.desktop"]; default = ["org.gnome.Nautilus.desktop" "obsidian.desktop" "zen.desktop" "dev.zed.Zed.desktop"];
example = ["org.gnome.Nautilus.desktop" "obsidian.desktop"]; example = ["org.gnome.Nautilus.desktop" "obsidian.desktop"];
description = "Specify your favorite apps (sorted left to right)"; 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.";
};
};
}; };
}; };
config = mkIf osConfig.${namespace}.desktop.gnome.enable { config = mkIf osConfig.${namespace}.desktop.gnome.enable {
home.packages = cfg.extensions; home.packages = cfg.enabled-extensions;
dconf.settings = { dconf.settings = {
"org/gnome/shell" = { "org/gnome/shell" = {
favorite-apps = cfg.favorite-apps; favorite-apps = cfg.favorite-apps;
enabled-extensions = forEach cfg.extensions (x: x.extensionUuid); enabled-extensions = forEach cfg.enabled-extensions (x: x.extensionUuid);
disabled-extensions = []; # Make sure none of our extensions are disabled on system rebuild 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";
};
}; };
}; };
} }