refactor: removing needless module complexity

This commit is contained in:
cnst
2024-10-27 09:14:34 +01:00
parent d8f810ee05
commit 4887feccfd
175 changed files with 920 additions and 1118 deletions

View File

@@ -0,0 +1,140 @@
{
config,
pkgs,
lib,
...
}: let
inherit (lib) types mkOption mkIf;
cfg = config.home.userd.gtk;
in {
options = {
home.userd.gtk.enable = mkOption {
type = types.bool;
default = true;
description = "Enable GTK configuration.";
};
home.userd.gtk.theme = mkOption {
type = types.str;
default = "Orchis-Grey-Dark-Compact";
description = "GTK theme name.";
};
home.userd.gtk.themePackage = mkOption {
type = types.package;
default = pkgs.orchis-theme;
description = "GTK theme package.";
};
home.userd.gtk.iconTheme = mkOption {
type = types.str;
default = "Adwaita";
description = "GTK icon theme name.";
};
home.userd.gtk.iconThemePackage = mkOption {
type = types.package;
default = pkgs.adwaita-icon-theme;
description = "GTK icon theme package.";
};
home.userd.gtk.font = mkOption {
type = types.attrsOf types.anything;
default = {
name = "Input Sans Narrow Light";
size = 10;
};
description = "GTK font configuration.";
};
home.userd.gtk.cursorTheme = mkOption {
type = types.attrsOf types.anything;
default = {
name = "Adwaita";
size = 28;
package = pkgs.adwaita-icon-theme;
};
description = "Cursor theme configuration.";
};
};
config = mkIf cfg.enable {
home = {
packages = [pkgs.glib];
pointerCursor = {
package = cfg.cursorTheme.package;
name = cfg.cursorTheme.name;
size = cfg.cursorTheme.size;
gtk.enable = true;
x11.enable = true;
};
};
gtk = {
enable = true;
theme = {
package = cfg.themePackage;
name = cfg.theme;
};
iconTheme = {
package = cfg.iconThemePackage;
name = cfg.iconTheme;
};
font = {
name = cfg.font.name;
size = cfg.font.size;
};
cursorTheme = {
package = cfg.cursorTheme.package;
name = cfg.cursorTheme.name;
size = cfg.cursorTheme.size;
};
gtk2 = {
extraConfig = ''
gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle="hintslight"
gtk-xft-rgba="rgb"
'';
};
gtk3.extraConfig = {
gtk-application-prefer-dark-theme = true;
gtk-decoration-layout = "appmenu:none";
gtk-toolbar-style = "GTK_TOOLBAR_BOTH";
gtk-toolbar-icon-size = "GTK_ICON_SIZE_LARGE_TOOLBAR";
gtk-button-images = 1;
gtk-menu-images = 1;
gtk-error-bell = 0;
gtk-enable-event-sounds = 0;
gtk-enable-input-feedback-sounds = 0;
gtk-xft-antialias = 1;
gtk-xft-hinting = 1;
gtk-xft-hintstyle = "hintslight";
};
gtk4.extraConfig = {
gtk-application-prefer-dark-theme = true;
gtk-decoration-layout = "appmenu:none";
gtk-error-bell = 0;
gtk-enable-event-sounds = 0;
gtk-enable-input-feedback-sounds = 0;
gtk-xft-antialias = 1;
gtk-xft-hinting = 1;
gtk-xft-hintstyle = "hintslight";
};
};
};
}