From 8e65c018a91bfd2f59d5cb151e95d41a9e2442cb Mon Sep 17 00:00:00 2001 From: Christoph Urlacher Date: Mon, 14 Oct 2024 20:37:45 +0200 Subject: [PATCH] Color: Put hex colors under the color.hex key --- home/modules/color/default.nix | 18 ++++---- home/modules/color/options.nix | 15 +++---- home/modules/hyprland/default.nix | 40 ++++++++--------- home/modules/kitty/default.nix | 74 +++++++++++++++---------------- home/modules/neovim/default.nix | 44 +++++++++--------- home/modules/rofi/default.nix | 6 +-- home/modules/waybar/default.nix | 30 ++++++------- home/modules/zathura/default.nix | 12 ++--- 8 files changed, 118 insertions(+), 121 deletions(-) diff --git a/home/modules/color/default.nix b/home/modules/color/default.nix index 41466d48..aab2971b 100644 --- a/home/modules/color/default.nix +++ b/home/modules/color/default.nix @@ -53,15 +53,17 @@ in { # This module sets its own options # to the values specified in a colorscheme file. modules.color = { - light = lib.pipe colorKeys [ - (builtins.map (mkColorAssignment lightDefs)) - lib.mergeAttrsList - ]; + hex = { + light = lib.pipe colorKeys [ + (builtins.map (mkColorAssignment lightDefs)) + lib.mergeAttrsList + ]; - dark = lib.pipe colorKeys [ - (builtins.map (mkColorAssignment darkDefs)) - lib.mergeAttrsList - ]; + dark = lib.pipe colorKeys [ + (builtins.map (mkColorAssignment darkDefs)) + lib.mergeAttrsList + ]; + }; rgb = { light = lib.pipe colorKeys [ diff --git a/home/modules/color/options.nix b/home/modules/color/options.nix index 5edab17f..9f785c10 100644 --- a/home/modules/color/options.nix +++ b/home/modules/color/options.nix @@ -29,29 +29,26 @@ with mylib.modules; { default = "JetBrainsMono Nerd Font Mono"; }; + # Internal-only options + keys = mkOption { type = types.listOf types.str; description = "The names of all possible colors"; default = colorKeys; }; - light = mkOption { + hex = mkOption { type = types.attrs; - description = "Colors belonging to the selected light scheme"; - }; - - dark = mkOption { - type = types.attrs; - description = "Colors belonging to the selected dark scheme"; + description = "Colors in \"RRGGBB\" hexadecimal format"; }; rgbString = mkOption { type = types.attrs; - description = "Colors belonging to the selected light scheme in 'RR,GG,BB' format"; + description = "Colors in \"RR,GG,BB\" decimal format"; }; rgb = mkOption { type = types.attrs; - description = "Colors belonging to the selected light scheme in '[RR GG BB]' format"; + description = "Colors in [RR GG BB] decimal format"; }; } diff --git a/home/modules/hyprland/default.nix b/home/modules/hyprland/default.nix index b37b2189..71b1095c 100644 --- a/home/modules/hyprland/default.nix +++ b/home/modules/hyprland/default.nix @@ -188,11 +188,11 @@ in { enable = true; settings = { options = { - background = "${color.dark.text}"; + background = "${color.hex.dark.text}"; overlay = true; overlay_font = "${color.font}:12"; - overlay_text_color = "${color.dark.text}"; - overlay_background_color = "${color.dark.base}"; + overlay_text_color = "${color.hex.dark.text}"; + overlay_background_color = "${color.hex.dark.base}"; }; }; }; @@ -227,12 +227,12 @@ in { monitor = ""; dots_center = true; fade_on_empty = false; - font_color = "rgb(${color.dark.base})"; + font_color = "rgb(${color.hex.dark.base})"; font_family = "${color.font}"; - inner_color = "rgb(${color.dark.lavender})"; - outer_color = "rgb(${color.dark.base})"; + inner_color = "rgb(${color.hex.dark.lavender})"; + outer_color = "rgb(${color.hex.dark.base})"; outline_thickness = 2; - placeholder_text = "Password..."; + placeholder_text = "Password..."; shadow_passes = 0; rounding = 5; halign = "center"; @@ -246,7 +246,7 @@ in { position = "0, 300"; monitor = ""; text = ''cmd[update:1000] date -I''; - color = "rgba(${color.dark.text}AA)"; + color = "rgba(${color.hex.dark.text}AA)"; font_size = 22; font_family = "${color.font}"; halign = "center"; @@ -258,7 +258,7 @@ in { position = "0, 200"; monitor = ""; text = ''cmd[update:1000] date +"%-H:%M"''; - color = "rgba(${color.dark.text}AA)"; + color = "rgba(${color.hex.dark.text}AA)"; font_size = 95; font_family = "${color.font} Extrabold"; halign = "center"; @@ -323,23 +323,23 @@ in { monitor = waybar.monitor; font = "${color.font} 11"; offset = "10x10"; - background = "#${color.light.base}"; - foreground = "#${color.light.text}"; + background = "#${color.hex.light.base}"; + foreground = "#${color.hex.light.text}"; frame_width = 2; corner_radius = 5; separator_color = "frame"; }; urgency_low = { - frame_color = "#${color.light.green}"; + frame_color = "#${color.hex.light.green}"; }; urgency_normal = { - frame_color = "#${color.light.green}"; + frame_color = "#${color.hex.light.green}"; }; urgency_critical = { - frame_color = "#${color.light.red}"; + frame_color = "#${color.hex.light.red}"; }; }; }; @@ -358,8 +358,8 @@ in { gaps_out = 10; border_size = 2; - "col.active_border" = "rgb(${color.dark.lavender})"; - "col.inactive_border" = "rgba(${color.dark.base}AA)"; + "col.active_border" = "rgb(${color.hex.dark.lavender})"; + "col.inactive_border" = "rgba(${color.hex.dark.base}AA)"; }; group = { @@ -369,12 +369,12 @@ in { font_size = 10; gradients = false; - "col.active" = "rgb(${color.dark.lavender})"; - "col.inactive" = "rgba(${color.dark.base}AA)"; + "col.active" = "rgb(${color.hex.dark.lavender})"; + "col.inactive" = "rgba(${color.hex.dark.base}AA)"; }; - "col.border_active" = "rgb(${color.dark.lavender})"; - "col.border_inactive" = "rgba(${color.dark.base}AA)"; + "col.border_active" = "rgb(${color.hex.dark.lavender})"; + "col.border_inactive" = "rgba(${color.hex.dark.base}AA)"; }; input = { diff --git a/home/modules/kitty/default.nix b/home/modules/kitty/default.nix index 441c9049..a89c1913 100644 --- a/home/modules/kitty/default.nix +++ b/home/modules/kitty/default.nix @@ -46,74 +46,74 @@ in { # # The basic colors - foreground = "#${color.light.text}"; - background = "#${color.light.base}"; - selection_foreground = "#${color.light.base}"; - selection_background = "#${color.light.rosewater}"; + foreground = "#${color.hex.light.text}"; + background = "#${color.hex.light.base}"; + selection_foreground = "#${color.hex.light.base}"; + selection_background = "#${color.hex.light.rosewater}"; # Cursor colors - cursor = "#${color.light.rosewater}"; - cursor_text_color = "#${color.light.base}"; + cursor = "#${color.hex.light.rosewater}"; + cursor_text_color = "#${color.hex.light.base}"; # URL underline color when hovering with mouse - url_color = "#${color.light.rosewater}"; + url_color = "#${color.hex.light.rosewater}"; # Kitty window border colors - active_border_color = "#${color.light.lavender}"; - inactive_border_color = "#${color.light.overlay0}"; - bell_border_color = "#${color.light.yellow}"; + active_border_color = "#${color.hex.light.lavender}"; + inactive_border_color = "#${color.hex.light.overlay0}"; + bell_border_color = "#${color.hex.light.yellow}"; # OS Window titlebar colors wayland_titlebar_color = "system"; macos_titlebar_color = "system"; # Tab bar colors - active_tab_foreground = "#${color.dark.base}"; - active_tab_background = "#${color.dark.lavender}"; - inactive_tab_foreground = "#${color.dark.text}"; - inactive_tab_background = "#${color.dark.crust}"; - tab_bar_background = "#${color.light.base}"; + active_tab_foreground = "#${color.hex.dark.base}"; + active_tab_background = "#${color.hex.dark.lavender}"; + inactive_tab_foreground = "#${color.hex.dark.text}"; + inactive_tab_background = "#${color.hex.dark.crust}"; + tab_bar_background = "#${color.hex.light.base}"; # Color for marks (marked text in the terminal) - mark1_foreground = "#${color.light.base}"; - mark1_background = "#${color.light.lavender}"; - mark2_foreground = "#${color.light.base}"; - mark2_background = "#${color.light.mauve}"; - mark3_foreground = "#${color.light.base}"; - mark3_background = "#${color.light.sapphire}"; + mark1_foreground = "#${color.hex.light.base}"; + mark1_background = "#${color.hex.light.lavender}"; + mark2_foreground = "#${color.hex.light.base}"; + mark2_background = "#${color.hex.light.mauve}"; + mark3_foreground = "#${color.hex.light.base}"; + mark3_background = "#${color.hex.light.sapphire}"; # The 16 terminal colors # black - color0 = "#${color.light.subtext1}"; - color8 = "#${color.light.subtext0}"; + color0 = "#${color.hex.light.subtext1}"; + color8 = "#${color.hex.light.subtext0}"; # red - color1 = "#${color.light.red}"; - color9 = "#${color.light.red}"; + color1 = "#${color.hex.light.red}"; + color9 = "#${color.hex.light.red}"; # green - color2 = "#${color.light.green}"; - color10 = "#${color.light.green}"; + color2 = "#${color.hex.light.green}"; + color10 = "#${color.hex.light.green}"; # yellow - color3 = "#${color.light.yellow}"; - color11 = "#${color.light.yellow}"; + color3 = "#${color.hex.light.yellow}"; + color11 = "#${color.hex.light.yellow}"; # blue - color4 = "#${color.light.blue}"; - color12 = "#${color.light.blue}"; + color4 = "#${color.hex.light.blue}"; + color12 = "#${color.hex.light.blue}"; # magenta - color5 = "#${color.light.pink}"; - color13 = "#${color.light.pink}"; + color5 = "#${color.hex.light.pink}"; + color13 = "#${color.hex.light.pink}"; # cyan - color6 = "#${color.light.teal}"; - color14 = "#${color.light.teal}"; + color6 = "#${color.hex.light.teal}"; + color14 = "#${color.hex.light.teal}"; # white - color7 = "#${color.light.surface2}"; - color15 = "#${color.light.surface1}"; + color7 = "#${color.hex.light.surface2}"; + color15 = "#${color.hex.light.surface1}"; }; }; }; diff --git a/home/modules/neovim/default.nix b/home/modules/neovim/default.nix index 52c660a9..26966088 100644 --- a/home/modules/neovim/default.nix +++ b/home/modules/neovim/default.nix @@ -1102,40 +1102,40 @@ in { bubbles = '' { normal = { - a = { fg = "#${color.dark.base}", bg = "#${color.dark.lavender}", gui = "bold" }, - b = { fg = "#${color.dark.text}", bg = "#${color.dark.crust}" }, - c = { fg = "#${color.dark.text}", bg = "NONE" }, + a = { fg = "#${color.hex.dark.base}", bg = "#${color.hex.dark.lavender}", gui = "bold" }, + b = { fg = "#${color.hex.dark.text}", bg = "#${color.hex.dark.crust}" }, + c = { fg = "#${color.hex.dark.text}", bg = "NONE" }, }, insert = { - a = { fg = "#${color.dark.base}", bg = "#${color.dark.green}", gui = "bold" }, - b = { fg = "#${color.dark.green}", bg = "#${color.dark.crust}" }, + a = { fg = "#${color.hex.dark.base}", bg = "#${color.hex.dark.green}", gui = "bold" }, + b = { fg = "#${color.hex.dark.green}", bg = "#${color.hex.dark.crust}" }, }, visual = { - a = { fg = "#${color.dark.base}", bg = "#${color.dark.mauve}", gui = "bold" }, - b = { fg = "#${color.dark.mauve}", bg = "#${color.dark.crust}" }, + a = { fg = "#${color.hex.dark.base}", bg = "#${color.hex.dark.mauve}", gui = "bold" }, + b = { fg = "#${color.hex.dark.mauve}", bg = "#${color.hex.dark.crust}" }, }, replace = { - a = { fg = "#${color.dark.base}", bg = "#${color.dark.red}", gui = "bold" }, - b = { fg = "#${color.dark.red}", bg = "#${color.dark.crust}" }, + a = { fg = "#${color.hex.dark.base}", bg = "#${color.hex.dark.red}", gui = "bold" }, + b = { fg = "#${color.hex.dark.red}", bg = "#${color.hex.dark.crust}" }, }, -- terminal = { - -- a = { fg = "#${color.dark.base}", bg = "#${color.dark.green}", gui = "bold" }, - -- b = { fg = "#${color.dark.green}", bg = "#${color.dark.crust}" }, + -- a = { fg = "#${color.hex.dark.base}", bg = "#${color.hex.dark.green}", gui = "bold" }, + -- b = { fg = "#${color.hex.dark.green}", bg = "#${color.hex.dark.crust}" }, -- }, command = { - a = { fg = "#${color.dark.base}", bg = "#${color.dark.peach}", gui = "bold" }, - b = { fg = "#${color.dark.peach}", bg = "#${color.dark.crust}" }, + a = { fg = "#${color.hex.dark.base}", bg = "#${color.hex.dark.peach}", gui = "bold" }, + b = { fg = "#${color.hex.dark.peach}", bg = "#${color.hex.dark.crust}" }, }, inactive = { - a = { fg = "#${color.dark.text}", bg = "#${color.dark.base}" }, - b = { fg = "#${color.dark.text}", bg = "#${color.dark.base}" }, - c = { fg = "#${color.dark.text}", bg = "NONE" }, + a = { fg = "#${color.hex.dark.text}", bg = "#${color.hex.dark.base}" }, + b = { fg = "#${color.hex.dark.text}", bg = "#${color.hex.dark.base}" }, + c = { fg = "#${color.hex.dark.text}", bg = "NONE" }, }, } ''; @@ -1567,17 +1567,17 @@ in { opts = { line.__raw = '' function(line) - local base = { fg = "#${color.dark.base}", bg = "#${color.dark.base}" } - local crust = { fg = "#${color.dark.crust}", bg = "#${color.dark.crust}" } - local text = { fg = "#${color.dark.text}", bg = "#${color.dark.crust}" } - local lavender = { fg = "#${color.dark.lavender}", bg = "#${color.dark.lavender}" } + local base = { fg = "#${color.hex.dark.base}", bg = "#${color.hex.dark.base}" } + local crust = { fg = "#${color.hex.dark.crust}", bg = "#${color.hex.dark.crust}" } + local text = { fg = "#${color.hex.dark.text}", bg = "#${color.hex.dark.crust}" } + local lavender = { fg = "#${color.hex.dark.lavender}", bg = "#${color.hex.dark.lavender}" } local numtabs = vim.call("tabpagenr", "$") return { -- Head { - { " NEOVIM ", hl = { fg = "#${color.dark.base}", bg = "#${color.dark.lavender}", style = "bold" } }, + { " NEOVIM ", hl = { fg = "#${color.hex.dark.base}", bg = "#${color.hex.dark.lavender}", style = "bold" } }, -- The separator gets a foreground and background fill (each have fg + bg). -- line.sep("", lavender, lavender), @@ -1586,7 +1586,7 @@ in { -- Tabs line.tabs().foreach(function(tab) -- Switch out the start separator instead of the ending one because the last separator is different - local hl = tab.is_current() and { fg = "#${color.dark.lavender}", bg = "#${color.dark.crust}", style = "bold" } or text + local hl = tab.is_current() and { fg = "#${color.hex.dark.lavender}", bg = "#${color.hex.dark.crust}", style = "bold" } or text local sep_start = tab.number() == 1 and "" or "" local sep_end = tab.number() == numtabs and "" or "" diff --git a/home/modules/rofi/default.nix b/home/modules/rofi/default.nix index 6ccacefd..5c0097ea 100644 --- a/home/modules/rofi/default.nix +++ b/home/modules/rofi/default.nix @@ -39,9 +39,9 @@ in { in { "*" = { bg = mkLiteral "rgba(${color.rgbString.light.base}, 0.3)"; - hl = mkLiteral "#${color.dark.lavender}"; - hl-pink = mkLiteral "#${color.dark.pink}"; - text = mkLiteral "#${color.dark.base}"; + hl = mkLiteral "#${color.hex.dark.lavender}"; + hl-pink = mkLiteral "#${color.hex.dark.pink}"; + text = mkLiteral "#${color.hex.dark.base}"; trans = mkLiteral "rgba(0, 0, 0, 0)"; }; diff --git a/home/modules/waybar/default.nix b/home/modules/waybar/default.nix index 59cf7b02..dc2b9a15 100644 --- a/home/modules/waybar/default.nix +++ b/home/modules/waybar/default.nix @@ -85,7 +85,7 @@ in { style = '' /*Order is Top-Right-Bottom-Left for combined properties*/ * { - color: #${color.dark.base}; + color: #${color.hex.dark.base}; font-family: ${color.font}; font-weight: bold; } @@ -94,25 +94,23 @@ in { border-style: solid; border-width: 2px; border-radius: 6px; - border-color: #${color.dark.lavender}; - - /*Can't use color.light.base here because waybar doesn't support rrggbbaa :(*/ + border-color: #${color.hex.dark.lavender}; background-color: rgba(${color.rgbString.light.base}, 0.3); } /*Colors*/ - #custom-launcher {background-color: #${color.dark.lavender};} - #user {background-color: #${color.dark.pink};} - #window {background-color: #${color.dark.mauve};} - #workspaces button {background-color: #${color.dark.lavender};} - #workspaces button.active {background-color: #${color.dark.pink};} - #pulseaudio {background-color: #${color.dark.maroon};} - #network {background-color: #${color.dark.peach};} - #cpu {background-color: #${color.dark.yellow};} - #memory {background-color: #${color.dark.green};} - #temperature {background-color: #${color.dark.teal};} - #clock {background-color: #${color.dark.sky};} - #tray {background-color: #${color.dark.lavender};} + #custom-launcher {background-color: #${color.hex.dark.lavender};} + #user {background-color: #${color.hex.dark.pink};} + #window {background-color: #${color.hex.dark.mauve};} + #workspaces button {background-color: #${color.hex.dark.lavender};} + #workspaces button.active {background-color: #${color.hex.dark.pink};} + #pulseaudio {background-color: #${color.hex.dark.maroon};} + #network {background-color: #${color.hex.dark.peach};} + #cpu {background-color: #${color.hex.dark.yellow};} + #memory {background-color: #${color.hex.dark.green};} + #temperature {background-color: #${color.hex.dark.teal};} + #clock {background-color: #${color.hex.dark.sky};} + #tray {background-color: #${color.hex.dark.lavender};} /*Square Widgets*/ diff --git a/home/modules/zathura/default.nix b/home/modules/zathura/default.nix index 2040ca99..0d224893 100644 --- a/home/modules/zathura/default.nix +++ b/home/modules/zathura/default.nix @@ -25,20 +25,20 @@ in { window-title-home-tilde = statusbar-home-tilde; # Colorscheme - default-bg = "#${color.light.base}"; - default-fg = "#${color.light.text}"; + default-bg = "#${color.hex.light.base}"; + default-fg = "#${color.hex.light.text}"; highlight-color = "rgba(${color.rgbString.dark.lavender}, 0.5)"; highlight-fg = "rgba(${color.rgbString.dark.green}, 0.5)"; highlight-active-color = "rgba(${color.rgbString.dark.pink}, 0.5)"; - statusbar-bg = "#${color.dark.lavender}"; + statusbar-bg = "#${color.hex.dark.lavender}"; statusbar-fg = default-fg; inputbar-bg = statusbar-bg; inputbar-fg = statusbar-fg; - completion-bg = "#${color.light.surface0}"; + completion-bg = "#${color.hex.light.surface0}"; completion-fg = default-fg; completion-highlight-bg = statusbar-bg; completion-highlight-fg = completion-fg; @@ -48,9 +48,9 @@ in { notification-bg = completion-bg; notification-fg = default-fg; notification-warning-bg = notification-bg; - notification-warning-fg = "#${color.light.peach}"; + notification-warning-fg = "#${color.hex.light.peach}"; notification-error-bg = notification-bg; - notification-error-fg = "#${color.light.red}"; + notification-error-fg = "#${color.hex.light.red}"; recolor-lightcolor = default-bg; recolor-darkcolor = default-fg;