puzzlevision/modules/home/desktop/gnome/default.nix

53 lines
1.4 KiB
Nix

{
lib,
pkgs,
self,
config,
osConfig,
...
}:
let
inherit (lib) mkIf;
inherit (self) namespace;
inherit (self.lib) mkOpt;
cfg = config.${namespace}.desktop.gnome;
in
{
options.${namespace}.desktop.gnome = with lib.types; {
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 {
home.packages = cfg.enabled-extensions;
dconf.settings = {
"org/gnome/shell" = {
favorite-apps = cfg.favorite-apps;
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/desktop/background" = {
picture-uri = "file://${cfg.wallpaper}";
picture-uri-dark = "file://${cfg.wallpaper}";
};
"org/gnome/desktop/interface" = {
color-scheme = "prefer-dark";
};
};
};
}