From 4eed50664211e318f3eb0ed207cbbcaf322f5a62 Mon Sep 17 00:00:00 2001 From: Christoph Urlacher Date: Sat, 19 Jul 2025 15:47:20 +0200 Subject: [PATCH] Modules/Color: Add hex string representation (e.g. "#123456" instead of "123456") --- home/modules/color/default.nix | 63 +++++++++++++++++++++------------- home/modules/color/options.nix | 5 +++ 2 files changed, 44 insertions(+), 24 deletions(-) diff --git a/home/modules/color/default.nix b/home/modules/color/default.nix index 0841f259..eb3b8e61 100644 --- a/home/modules/color/default.nix +++ b/home/modules/color/default.nix @@ -16,46 +16,61 @@ in { colorKeys = builtins.attrNames lightDefs; mkColorAssignment = defs: key: {${key} = defs.${key};}; + mkStringColorAssignment = defs: key: {${key} = "#${defs.${key}}";}; mkRgbColorAssignment = defs: key: {${key} = mylib.color.hexToRGB defs.${key};}; mkRgbStringColorAssignment = defs: key: {${key} = mylib.color.hexToRGBString "," defs.${key};}; in { # This module sets its own options # to the values specified in a colorscheme file. + # TODO: This is fucking stupid. Add an option to set a colorscheme, + # then provide a single hex/rgb/rgbString set, not this light/dark shit. modules.color = { hex = { - light = lib.pipe colorKeys [ - (builtins.map (mkColorAssignment lightDefs)) - lib.mergeAttrsList - ]; + light = + colorKeys + |> builtins.map (mkColorAssignment lightDefs) + |> lib.mergeAttrsList; - dark = lib.pipe colorKeys [ - (builtins.map (mkColorAssignment darkDefs)) - lib.mergeAttrsList - ]; + dark = + colorKeys + |> builtins.map (mkColorAssignment darkDefs) + |> lib.mergeAttrsList; + }; + + hexString = { + light = + colorKeys + |> builtins.map (mkStringColorAssignment lightDefs) + |> lib.mergeAttrsList; + + dark = + colorKeys + |> builtins.map (mkStringColorAssignment darkDefs) + |> lib.mergeAttrsList; }; rgb = { - light = lib.pipe colorKeys [ - (builtins.map (mkRgbColorAssignment lightDefs)) - lib.mergeAttrsList - ]; + light = + colorKeys + |> builtins.map (mkRgbColorAssignment lightDefs) + |> lib.mergeAttrsList; - dark = lib.pipe colorKeys [ - (builtins.map (mkRgbColorAssignment darkDefs)) - lib.mergeAttrsList - ]; + dark = + colorKeys + |> builtins.map (mkRgbColorAssignment darkDefs) + |> lib.mergeAttrsList; }; rgbString = { - light = lib.pipe colorKeys [ - (builtins.map (mkRgbStringColorAssignment lightDefs)) - lib.mergeAttrsList - ]; + light = + colorKeys + |> builtins.map (mkRgbStringColorAssignment lightDefs) + |> lib.mergeAttrsList; - dark = lib.pipe colorKeys [ - (builtins.map (mkRgbStringColorAssignment darkDefs)) - lib.mergeAttrsList - ]; + dark = + colorKeys + |> builtins.map (mkRgbStringColorAssignment darkDefs) + |> lib.mergeAttrsList; }; }; }; diff --git a/home/modules/color/options.nix b/home/modules/color/options.nix index 682cf6b6..7979efe5 100644 --- a/home/modules/color/options.nix +++ b/home/modules/color/options.nix @@ -33,6 +33,11 @@ with mylib.modules; { description = "Colors in \"RRGGBB\" hexadecimal format"; }; + hexString = mkOption { + type = types.attrs; + description = "Colors in \"#RRGGBB\" hexadecimal format"; + }; + rgbString = mkOption { type = types.attrs; description = "Colors in \"RR,GG,BB\" decimal format";