inputs: { config, lib, pkgs, ... }: let 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 package = pkgs.unstable.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 = gtkCssFile; "gtk-4.0/gtk.css".source = gtk4CssFile; }; }; }