mirror of
https://github.com/nix-community/home-manager.git
synced 2025-11-08 19:46:05 +01:00
97 lines
2 KiB
Nix
97 lines
2 KiB
Nix
{ config, lib, ... }:
|
|
|
|
let
|
|
inherit (lib)
|
|
mkEnableOption
|
|
mkIf
|
|
mkOption
|
|
types
|
|
;
|
|
|
|
cfg = config.gtk;
|
|
cfg2 = config.gtk.gtk2;
|
|
cfg3 = config.gtk.gtk3;
|
|
cfg4 = config.gtk.gtk4;
|
|
|
|
gtkLib = import ./gtk/lib.nix { inherit lib; };
|
|
|
|
themeType = gtkLib.mkThemeType {
|
|
typeName = "theme";
|
|
packageExample = "pkgs.gnome.gnome-themes-extra";
|
|
};
|
|
|
|
iconThemeType = gtkLib.mkThemeType {
|
|
typeName = "icon theme";
|
|
packageExample = "pkgs.adwaita-icon-theme";
|
|
};
|
|
|
|
cursorThemeType = gtkLib.mkThemeType {
|
|
typeName = "cursor theme";
|
|
hasSize = true;
|
|
packageExample = "pkgs.vanilla-dmz";
|
|
nameExample = "Vanilla-DMZ";
|
|
};
|
|
|
|
in
|
|
|
|
{
|
|
meta.maintainers = with lib.maintainers; [
|
|
khaneliman
|
|
rycee
|
|
];
|
|
|
|
imports = [
|
|
./gtk/gtk2.nix
|
|
./gtk/gtk3.nix
|
|
./gtk/gtk4.nix
|
|
];
|
|
|
|
options.gtk = {
|
|
enable = mkEnableOption "GTK theming and configuration";
|
|
|
|
# Global settings that act as defaults for version-specific settings
|
|
font = mkOption {
|
|
type = types.nullOr lib.hm.types.fontType;
|
|
default = null;
|
|
description = "Default font for all GTK versions.";
|
|
};
|
|
|
|
theme = mkOption {
|
|
type = types.nullOr themeType;
|
|
default = null;
|
|
description = "Default theme for all GTK versions.";
|
|
};
|
|
|
|
iconTheme = mkOption {
|
|
type = types.nullOr iconThemeType;
|
|
default = null;
|
|
description = "Default icon theme for all GTK versions.";
|
|
};
|
|
|
|
cursorTheme = mkOption {
|
|
type = types.nullOr cursorThemeType;
|
|
default = null;
|
|
description = "Default cursor theme for all GTK versions.";
|
|
};
|
|
|
|
colorScheme = mkOption {
|
|
type = types.nullOr (
|
|
types.enum [
|
|
"dark"
|
|
"light"
|
|
]
|
|
);
|
|
default = null;
|
|
description = "Default color scheme for all GTK versions";
|
|
};
|
|
};
|
|
|
|
config = mkIf cfg.enable {
|
|
# Collect packages from all GTK versions
|
|
home.packages = gtkLib.collectGtkPackages [
|
|
cfg2
|
|
cfg3
|
|
cfg4
|
|
];
|
|
};
|
|
}
|