From ef4a5c8ae6f6b98068012f6d0a907abac535d89c Mon Sep 17 00:00:00 2001 From: Anthony Rodriguez Date: Tue, 4 Feb 2025 21:19:05 +0100 Subject: [PATCH] services/gtk: use base16 colors for gtk --- modules/services/default.nix | 2 +- modules/services/{gtk.nix => gtk/default.nix} | 9 +- modules/services/gtk/style.nix | 94 +++++++++++++++++++ 3 files changed, 101 insertions(+), 4 deletions(-) rename modules/services/{gtk.nix => gtk/default.nix} (80%) create mode 100644 modules/services/gtk/style.nix diff --git a/modules/services/default.nix b/modules/services/default.nix index 1610824..ea088ba 100644 --- a/modules/services/default.nix +++ b/modules/services/default.nix @@ -1,5 +1,6 @@ { imports = [ + ./gtk ./swaync ./brightness.nix @@ -10,7 +11,6 @@ ./gammastep.nix ./gnome.nix ./greetd.nix - ./gtk.nix ./keyd.nix ./kmscon.nix ./location.nix diff --git a/modules/services/gtk.nix b/modules/services/gtk/default.nix similarity index 80% rename from modules/services/gtk.nix rename to modules/services/gtk/default.nix index 150a232..10287f2 100644 --- a/modules/services/gtk.nix +++ b/modules/services/gtk/default.nix @@ -1,6 +1,7 @@ # heavily borrowed from https://github.com/Lunarnovaa/nixconf/blob/f88254f1938211853f6005426fe19ba4b889e854/modules/desktop/theming/gtk.nix { lib, + pkgs, config, lib', ... @@ -19,7 +20,9 @@ in { config = with styleCfg; lib.mkIf styleCfg.enable { - hjem.users.${username} = { + hjem.users.${username} = let + gtkCss = pkgs.writeText "gtk-colors" (import ./style.nix lib' styleCfg.scheme.palette); + in { files = { ".gtkrc-2.0".text = finalGtk2Text {attrs = gtkSettings;}; ".config/gtk-3.0/settings.ini".text = toGtk3Ini { @@ -28,11 +31,11 @@ in { ".config/gtk-4.0/settings.ini".text = toGtk3Ini { Settings = gtkSettings; }; - ".config/gtk-4.0/gtk.css".source = with styleCfg; "${gtk.theme.package}/share/themes/${gtk.theme.name}/gtk-4.0/gtk-dark.css"; + ".config/gtk-3.0/gtk.css".source = gtkCss; + ".config/gtk-4.0/gtk.css".source = gtkCss; }; packages = with styleCfg; [ cursorTheme.package - gtk.theme.package gtk.iconTheme.package ]; }; diff --git a/modules/services/gtk/style.nix b/modules/services/gtk/style.nix new file mode 100644 index 0000000..aabb67b --- /dev/null +++ b/modules/services/gtk/style.nix @@ -0,0 +1,94 @@ +lib': palette: let + inherit (lib') rgba; + black = "#000000"; +in + with palette; '' + @define-color accent_color ${base0D}; + @define-color accent_bg_color ${base0D}; + @define-color accent_fg_color ${base00}; + @define-color destructive_color ${base08}; + @define-color destructive_bg_color ${base08}; + @define-color destructive_fg_color ${base00}; + @define-color success_color ${base0B}; + @define-color success_bg_color ${base0B}; + @define-color success_fg_color ${base00}; + @define-color warning_color ${base0E}; + @define-color warning_bg_color ${base0E}; + @define-color warning_fg_color ${base00}; + @define-color error_color ${base08}; + @define-color error_bg_color ${base08}; + @define-color error_fg_color ${base00}; + @define-color window_bg_color ${base00}; + @define-color window_fg_color ${base05}; + @define-color view_bg_color ${base00}; + @define-color view_fg_color ${base05}; + @define-color headerbar_bg_color ${base01}; + @define-color headerbar_fg_color ${base05}; + @define-color headerbar_border_color ${rgba base01 0.7}; + @define-color headerbar_backdrop_color @window_bg_color; + @define-color headerbar_shade_color ${rgba black 0.07}; + @define-color headerbar_darker_shade_color ${rgba black 0.07}; + @define-color sidebar_bg_color ${base01}; + @define-color sidebar_fg_color ${base05}; + @define-color sidebar_backdrop_color @window_bg_color; + @define-color sidebar_shade_color ${rgba black 0.07}; + @define-color secondary_sidebar_bg_color @sidebar_bg_color; + @define-color secondary_sidebar_fg_color @sidebar_fg_color; + @define-color secondary_sidebar_backdrop_color @sidebar_backdrop_color; + @define-color secondary_sidebar_shade_color @sidebar_shade_color; + @define-color card_bg_color ${base01}; + @define-color card_fg_color ${base05}; + @define-color card_shade_color ${rgba black 0.07}; + @define-color dialog_bg_color ${base01}; + @define-color dialog_fg_color ${base05}; + @define-color popover_bg_color ${base01}; + @define-color popover_fg_color ${base05}; + @define-color popover_shade_color ${rgba black 0.07}; + @define-color shade_color ${rgba black 0.07}; + @define-color scrollbar_outline_color ${base02}; + @define-color blue_1 ${base0D}; + @define-color blue_2 ${base0D}; + @define-color blue_3 ${base0D}; + @define-color blue_4 ${base0D}; + @define-color blue_5 ${base0D}; + @define-color green_1 ${base0B}; + @define-color green_2 ${base0B}; + @define-color green_3 ${base0B}; + @define-color green_4 ${base0B}; + @define-color green_5 ${base0B}; + @define-color yellow_1 ${base0A}; + @define-color yellow_2 ${base0A}; + @define-color yellow_3 ${base0A}; + @define-color yellow_4 ${base0A}; + @define-color yellow_5 ${base0A}; + @define-color orange_1 ${base09}; + @define-color orange_2 ${base09}; + @define-color orange_3 ${base09}; + @define-color orange_4 ${base09}; + @define-color orange_5 ${base09}; + @define-color red_1 ${base08}; + @define-color red_2 ${base08}; + @define-color red_3 ${base08}; + @define-color red_4 ${base08}; + @define-color red_5 ${base08}; + @define-color purple_1 ${base0E}; + @define-color purple_2 ${base0E}; + @define-color purple_3 ${base0E}; + @define-color purple_4 ${base0E}; + @define-color purple_5 ${base0E}; + @define-color brown_1 ${base0F}; + @define-color brown_2 ${base0F}; + @define-color brown_3 ${base0F}; + @define-color brown_4 ${base0F}; + @define-color brown_5 ${base0F}; + @define-color light_1 ${base01}; + @define-color light_2 ${base01}; + @define-color light_3 ${base01}; + @define-color light_4 ${base01}; + @define-color light_5 ${base01}; + @define-color dark_1 ${base01}; + @define-color dark_2 ${base01}; + @define-color dark_3 ${base01}; + @define-color dark_4 ${base01}; + @define-color dark_5 ${base01}; + ''