From 8259bc0e1636e01222a5727bb73417c01534ea54 Mon Sep 17 00:00:00 2001 From: Minijackson Date: Thu, 15 Dec 2022 19:53:52 +0100 Subject: graphical/gtk: move from graphical.nix, set colors for GTK4 --- usecases/desktop/graphical.nix | 62 ++--------------------- usecases/desktop/graphical/gtk.nix | 101 +++++++++++++++++++++++++++++++++++++ 2 files changed, 105 insertions(+), 58 deletions(-) create mode 100644 usecases/desktop/graphical/gtk.nix (limited to 'usecases/desktop') diff --git a/usecases/desktop/graphical.nix b/usecases/desktop/graphical.nix index 8251a50..cee9186 100644 --- a/usecases/desktop/graphical.nix +++ b/usecases/desktop/graphical.nix @@ -7,6 +7,7 @@ inputs: { imports = [ (import ./graphical/alacritty.nix inputs) (import ./graphical/firefox.nix inputs) + (import ./graphical/gtk.nix inputs) (import ./graphical/mpv.nix inputs) (import ./graphical/rofi.nix inputs) (import ./graphical/sway.nix inputs) @@ -105,63 +106,8 @@ inputs: { } ]; - home-manager.users.minijackson = let - color = - if config.theme.colors.dominantName == "cyan" - then "teal" - else config.theme.colors.dominantName; - in { - 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"; - }; - - # theme = { - # package = - # (pkgs.unstable.graphite-gtk-theme.overrideAttrs (_old: { - # src = pkgs.fetchFromGitHub { - # owner = "vinceliuice"; - # repo = "graphite-gtk-theme"; - # rev = "a65fbec34f1ba1e9c7f7a86afc7c02d2210a11a4"; - # hash = "sha256-aJMSLWVDqsAx+3QYAAhGKddEaformlK28M7YSJ/v7sU="; - # }; - # })) - # .override { - # themeVariants = [color]; - # sizeVariants = ["compact"]; - # tweaks = ["normal" "rimless"]; - # }; - # name = "Graphite-${color}-Dark-compact"; - # }; - - # gtk4.extraConfig = { - # gtk-application-prefer-dark-theme = true; - # }; - - gtk3.extraConfig.gtk-application-prefer-dark-theme = true; - }; - - dconf.settings = { - "org/gnome/desktop/interface" = { - color-scheme = "prefer-dark"; - }; - }; - - # home.sessionVariables.GTK_THEME = "Graphite-${color}-Dark-compact"; - - services.kdeconnect = { - enable = true; - indicator = true; - }; + home-manager.users.minijackson.services.kdeconnect = { + enable = true; + indicator = true; }; } diff --git a/usecases/desktop/graphical/gtk.nix b/usecases/desktop/graphical/gtk.nix new file mode 100644 index 0000000..4a9f501 --- /dev/null +++ b/usecases/desktop/graphical/gtk.nix @@ -0,0 +1,101 @@ +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; + }; + }; +} -- cgit v1.2.3