inputs: { config, lib, pkgs, ... }: let gtk3Colors = ./gtk-colors.scss; gtk3CssFile = pkgs.stdenv.mkDerivation ({ name = "gtk3.css"; src = pkgs.gtk3.src; nativeBuildInputs = with pkgs; [sassc]; patchPhase = '' cp -f ${gtk3Colors} gtk/theme/Adwaita/_colors.scss substituteAllInPlace gtk/theme/Adwaita/_colors.scss ''; dontConfigure = true; dontInstall = true; buildPhase = '' sassc -a -M -t expanded gtk/theme/Adwaita/gtk-contained-dark.scss $out # These lines contains includes of assets sed -i -e '/-gtk-icon/d' $out; ''; } // config.theme.colors); gtk4NamedColors = with config.theme.colors; { # From the main CSS # ----------------- # TODO: 2 and 4 blue_1 = fadedBlue; blue_3 = neutralBlue; blue_5 = brightBlue; green_1 = fadedGreen; green_3 = neutralGreen; green_5 = brightGreen; yellow_1 = fadedYellow; yellow_3 = neutralYellow; yellow_5 = brightYellow; orange_1 = fadedOrange; orange_3 = neutralOrange; orange_5 = brightOrange; red_1 = fadedRed; red_3 = neutralRed; red_5 = brightRed; purple_1 = fadedMagenta; purple_3 = neutralMagenta; purple_5 = brightMagenta; # TODO: brown # From the dark theme CSS # ----------------------- # TODO: bright dominant accent_color = "#8ec07c"; destructive_color = neutralOrange; error_color = neutralOrange; warning_bg_color = neutralYellow; view_bg_color = background0; view_fg_color = foreground; window_bg_color = background1; window_fg_color = foreground; headerbar_bg_color = softBackground; headerbar_fg_color = foreground; dialog_bg_color = background2; dialog_fg_color = foreground; popover_bg_color = background2; popover_fg_color = foreground; }; gtk4Css = lib.concatStringsSep "\n" (lib.mapAttrsToList (name: value: "@define-color ${name} ${value};") gtk4NamedColors); gtk4CssFile = pkgs.writeText "gtk4.css" gtk4Css; in { home-manager.users.minijackson = { gtk = { enable = true; iconTheme = { # TODO: properly modify the colors # High priority, because gnome-themes-extra below also pulls the # Adwaita icon theme, which leads to a conflict package = lib.hiPrio (pkgs.tela-circle-icon-theme.override { colorVariants = ["brown"]; }); name = "Tela-circle-brown-dark"; }; theme = { package = pkgs.gnome.gnome-themes-extra; name = "Adwaita-dark"; }; gtk3.extraConfig.gtk-application-prefer-dark-theme = true; }; dconf.settings = { "org/gnome/desktop/interface" = { color-scheme = "prefer-dark"; }; }; xdg.configFile = { "gtk-3.0/gtk.css".source = gtk3CssFile; "gtk-4.0/gtk.css".source = gtk4CssFile; }; }; }