From 3f0e83cb4816e637d8c916fb77217e1c5824dbe5 Mon Sep 17 00:00:00 2001 From: Minijackson Date: Thu, 3 Dec 2020 16:45:06 +0100 Subject: initial commit: most of previous configuration reworked --- lib/theme.nix | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 lib/theme.nix (limited to 'lib') diff --git a/lib/theme.nix b/lib/theme.nix new file mode 100644 index 0000000..72e43bc --- /dev/null +++ b/lib/theme.nix @@ -0,0 +1,35 @@ +{ lib, ... }: + +with lib; +let + # Convert 2 consecutive characters from a string from hexadecimal to decimal + hex2dec = str: start: + let + conversionTable = { + "0" = 0; "1" = 1; "2" = 2; "3" = 3; "4" = 4; + "5" = 5; "6" = 6; "7" = 7; "8" = 8; "9" = 9; + "a" = 10; "b" = 11; "c" = 12; + "d" = 13; "e" = 14; "f" = 15; + }; + firstHexDigit = toLower (elemAt (stringToCharacters str) start); + secondHexDigit = toLower (elemAt (stringToCharacters str) (start + 1)); + in conversionTable.${firstHexDigit} * 16 + conversionTable.${secondHexDigit}; + + makeColorCode = color: + let genComponent = hex2dec color; + in "${toString (genComponent 1)};${toString (genComponent 3)};${toString (genComponent 5)}"; + + hex2RGB = color: + let genComponent = hex2dec color; + in { + red = genComponent 1; + green = genComponent 3; + blue = genComponent 5; + }; + + fgEscapeCode = hexCode: "[38;2;${makeColorCode hexCode}m"; + bgEscapeCode = hexCode: "[48;2;${makeColorCode hexCode}m"; +in +{ + inherit fgEscapeCode bgEscapeCode hex2RGB; +} -- cgit v1.2.3