From 26fd86bc0a2970b8250a3e318c845ecf27896aab Mon Sep 17 00:00:00 2001 From: atagen Date: Fri, 16 Jun 2023 19:44:53 +1000 Subject: [PATCH] auto gtk theme, unique palette --- gtk-theme.nix | 68 ++++++++++++++++++++++++++++++++++++++++ home/home.nix | 68 +++++++++++++++++++++++++++++++++------- pal.conf | 26 +++++++++++++++ rice.nix | 48 +++++++++++++--------------- system/configuration.nix | 1 + 5 files changed, 172 insertions(+), 39 deletions(-) create mode 100644 gtk-theme.nix create mode 100644 pal.conf diff --git a/gtk-theme.nix b/gtk-theme.nix new file mode 100644 index 0000000..71801f0 --- /dev/null +++ b/gtk-theme.nix @@ -0,0 +1,68 @@ +{ pkgs }: +{ palette }: + +let + rendersvg = pkgs.runCommand "rendersvg" { } '' + mkdir -p $out/bin + ln -s ${pkgs.resvg}/bin/resvg $out/bin/rendersvg + ''; +in +pkgs.stdenv.mkDerivation rec { + name = "generated-gtk-theme-nix-rice"; + src = pkgs.fetchFromGitHub { + owner = "nana-4"; + repo = "materia-theme"; + rev = "76cac96ca7fe45dc9e5b9822b0fbb5f4cad47984"; + sha256 = "sha256-0eCAfm/MWXv6BbCl2vbVbvgv8DiUH09TAUhoKq7Ow0k="; + }; + buildInputs = with pkgs; [ + sassc + bc + which + rendersvg + meson + ninja + nodePackages.sass + gtk4.dev + optipng + ]; + phases = [ "unpackPhase" "installPhase" ]; + installPhase = '' + HOME=/build + chmod 777 -R . + patchShebangs . + mkdir -p $out/share/themes + mkdir bin + sed -e 's/handle-horz-.*//' -e 's/handle-vert-.*//' -i ./src/gtk-2.0/assets.txt + + cat > /build/gtk-colors << EOF + BTN_BG=${palette.bright.black} + BTN_FG=${palette.normal.blue} + FG=${palette.util.fg} + BG=${palette.util.bg} + HDR_BTN_BG=${palette.bright.black} + HDR_BTN_FG=${palette.normal.blue} + ACCENT_BG=${palette.bright.black} + ACCENT_FG=${palette.normal.yellow} + HDR_FG=${palette.util.fg} + HDR_BG=${palette.util.bg} + MATERIA_SURFACE=${palette.normal.black} + MATERIA_VIEW=${palette.util.bg} + MENU_BG=${palette.util.bg} + MENU_FG=${palette.util.fg} + SEL_BG=${palette.normal.black} + SEL_FG=${palette.normal.yellow} + TXT_BG=${palette.util.bg} + TXT_FG=${palette.util.fg} + WM_BORDER_FOCUS=${palette.normal.yellow} + WM_BORDER_UNFOCUS=${palette.normal.black} + UNITY_DEFAULT_LAUNCHER_STYLE=False + NAME="nix-rice" + MATERIA_STYLE_COMPACT=True + EOF + + echo "Changing colours:" + ./change_color.sh -o nix-rice /build/gtk-colors -i False -t "$out/share/themes" + chmod 555 -R . + ''; +} diff --git a/home/home.nix b/home/home.nix index 3e3a359..529790e 100644 --- a/home/home.nix +++ b/home/home.nix @@ -22,6 +22,7 @@ in { clementine inkscape xfce.thunar + feh zathura @@ -98,8 +99,8 @@ in { gtk-theme.name fonts.sans.name icons.name - palette-shex.util.fg - palette-shex.normal.black + palette-shex.bright.yellow + palette-shex.util.bg (builtins.toString borders.thickness) (builtins.toString borders.rounding) (builtins.toString borders.gaps_in) @@ -265,9 +266,9 @@ in { "${pkgs.wlogout}/share/wlogout" "${pkgs.wlogout}/etc/wlogout" util.bg - util.fg - util.bg_sel - normal.yellow + normal.white + normal.black + normal.red ] (builtins.readFile dots/wlogout/style.css)); }; @@ -289,13 +290,13 @@ in { radius = rounding; }; colors = { - background = lib.strings.concatStrings [palette-hex.util.bg "FF"]; + background = lib.strings.concatStrings [palette-hex.util.bg "A0"]; text = lib.strings.concatStrings [palette-hex.util.fg "FF"]; - selection = lib.strings.concatStrings [palette-hex.util.bg_sel "FF"]; - selection-text = lib.strings.concatStrings [palette-hex.bright.black "FF"]; - selection-match = lib.strings.concatStrings [palette-hex.bright.green "FF"]; - match = lib.strings.concatStrings [palette-hex.util.fg_sel "FF"]; - border = lib.strings.concatStrings [palette-hex.util.fg "FF"]; + selection = lib.strings.concatStrings [palette-hex.bright.yellow "FF"]; + selection-text = lib.strings.concatStrings [palette-hex.util.bg "FF"]; + selection-match = lib.strings.concatStrings [palette-hex.normal.green"FF"]; + match = lib.strings.concatStrings [palette-hex.bright.green "FF"]; + border = lib.strings.concatStrings [palette-hex.bright.yellow "FF"]; }; }; }; @@ -341,8 +342,51 @@ in { programs.helix = { enable = true; + themes = with palette-hex; { + nix-rice = { + "ui.background" = { bg = util.bg; }; + "ui.menu" = { fg = bright.cyan; bg = normal.black; }; + "ui.menu.selected" = { modifiers = [ "reversed" ]; }; + "ui.linenr" = { fg = bright.cyan; bg = normal.black; }; + "ui.popup" = { bg = bright.black; }; + "ui.linenr.selected" = { fg = normal.yellow; bg = normal.black; modifiers = [ "bold" ]; }; + "ui.selection" = { fg = bright.yellow; bg = normal.blue; }; + "ui.selection.primary" = { modifiers = [ "reversed" ]; }; + "comment" = { fg = bright.magenta; modifiers = [ "italics" ]; }; + "ui.statusline" = { fg = bright.cyan; bg = normal.black; }; + "ui.statusline.inactive" = { modifiers = [ "reversed" ]; }; + "ui.help" = { fg = normal.white; bg = bright.black; }; + "ui.cursor" = { modifiers = [ "reversed" ]; }; + "variable" = normal.green; + "variable.builtin" = normal.green; + "constant.numeric" = normal.blue; + "constant" = normal.cyan; + "attributes" = normal.yellow; + "type" = normal.yellow; + "ui.cursor.match" = { fg = normal.yellow; modifiers = [ "underlined" ]; }; + "string" = normal.green; + "variable.other.member" = normal.red; + "constant.character.escape" = normal.cyan; + "function" = bright.blue; + "constructor" = normal.blue; + "special" = normal.blue; + "keyword" = normal.magenta; + "label" = normal.magenta; + "namespace" = normal.blue; + "diff.plus" = normal.green; + "diff.delta" = normal.yellow; + "diff.minus" = normal.red; + "diagnostic" = { modifiers = [ "underlined" ]; }; + "ui.gutter" = { bg = normal.black; }; + "info" = normal.blue; + "hint" = normal.magenta; + "debug" = normal.magenta; + "warning" = normal.yellow; + "error" = normal.red; + }; + }; settings = { - theme = "everforest_dark"; + theme = "nix-rice"; editor.lsp.display-messages = true; }; }; diff --git a/pal.conf b/pal.conf new file mode 100644 index 0000000..b1326f8 --- /dev/null +++ b/pal.conf @@ -0,0 +1,26 @@ + +color0 #12282a +color8 #202e2f +color1 #da5143 +color9 #da827a +color2 #8cc992 +color10 #c2dab0 +color3 #ffb852 +color11 #ffd292 +color4 #5299ff +color12 #92beff +color5 #645ac9 +color13 #928cc9 +color6 #5abfc9 +color14 #8cc4c9 +color7 #b0c2da +color15 #caccce + +background #272a2a +foreground #cecbca + +selection_background #272a2a +selection_foreground #5299ff + +cursor #da827a +cursor_text_color #529ff diff --git a/rice.nix b/rice.nix index d7d5e8b..ad218fc 100644 --- a/rice.nix +++ b/rice.nix @@ -1,12 +1,9 @@ final: prev: with prev.lib.nix-rice; let - # theme = kitty-themes.parseTheme ( - # builtins.fetchurl { - # url = "https://github.com/rebelot/kanagawa.nvim/blob/master/extras/kanagawa.conf?raw=true"; - # sha256 = "1r95lkq24a2ygrjv1mkqfrksgfvnyc16xrsldw04phnsa555x51l"; - # } - # ); - theme = kitty-themes.getThemeByName "everforest_dark_hard"; + theme = kitty-themes.parseTheme ( + ./pal.conf + ); + # theme = kitty-themes.getThemeByName "everforest_dark_hard"; in rec { rice = { palette = @@ -24,23 +21,17 @@ in rec { white = theme.color7; }; bright = - palette.brighten 15 normal + palette.defaultPalette // { black = theme.color8; + red = theme.color9; + green = theme.color10; + yellow = theme.color11; + blue = theme.color12; + magenta = theme.color13; + cyan = theme.color14; white = theme.color15; }; - # bright = - # palette.defaultPalette - # // { - # black = theme.color8; - # red = theme.color9; - # green = theme.color10; - # yellow = theme.color11; - # blue = theme.color12; - # magenta = theme.color13; - # cyan = theme.color14; - # white = theme.color15; - # }; util = palette.defaultPalette // { @@ -49,7 +40,7 @@ in rec { fg_sel = theme.selection_foreground; bg_sel = theme.selection_background; cursor = theme.cursor; - url = theme.url_color; + # url = theme.url_color; }; } // theme; @@ -95,8 +86,10 @@ in rec { }; gtk-theme = { - name = "Everforest-Dark"; - package = final.everforest-theme; + name = "nix-rice"; + package = (prev.callPackage ./gtk-theme.nix {} { palette = palette.toRGBShortHex final.rice.palette; }); + # name = "Everforest-Dark"; + # package = final.everforest-theme; }; @@ -108,10 +101,11 @@ in rec { }; bg = { - image = prev.fetchurl { - url = "https://github.com/Apeiros-46B/everforest-walls/blob/main/close_up/circuit_1.png?raw=true"; - sha256 = "sha256-5V9XlJtC8n3zZueg5y/pWW1Oz75YPcEydLU/E/+z+2k="; - }; + image = /home/bolt/Code/lutgen-rs/lutgen/wallhaven-rrokpj_custom.png; + # image = prev.fetchurl { + # url = "https://github.com/Apeiros-46B/everforest-walls/blob/main/close_up/circuit_1.png?raw=true"; + # sha256 = "sha256-5V9XlJtC8n3zZueg5y/pWW1Oz75YPcEydLU/E/+z+2k="; + # }; }; }; # /rice } diff --git a/system/configuration.nix b/system/configuration.nix index b29b931..4d30f54 100644 --- a/system/configuration.nix +++ b/system/configuration.nix @@ -128,6 +128,7 @@ }; users.defaultUserShell = pkgs.zsh; + services.tumbler.enable = true; # thumbnailer for thunar services.tailscale.enable = true; environment.systemPackages = with pkgs; [