From 61f486bd8f241eceb2b120886f383d26dd13e73e Mon Sep 17 00:00:00 2001 From: Gabriel Arazas Date: Fri, 23 Feb 2024 20:37:06 +0800 Subject: [PATCH] bahaghari/lib/tinted-theming: refactor --- subprojects/bahaghari/lib/tinted-theming.nix | 25 +++++++++----------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/subprojects/bahaghari/lib/tinted-theming.nix b/subprojects/bahaghari/lib/tinted-theming.nix index b6d74ba5..68b82186 100644 --- a/subprojects/bahaghari/lib/tinted-theming.nix +++ b/subprojects/bahaghari/lib/tinted-theming.nix @@ -1,5 +1,13 @@ { pkgs, lib }: +let + isBaseX = i: palette: + let + paletteNames = pkgs.lib.attrNames palette; + schemeNames = builtins.map (number: "base${number}") (lib.hex.range 0 (i - 1)); + in + (pkgs.lib.count (name: pkgs.lib.elem name schemeNames) paletteNames) == i; +in { # TODO: Return a derivation containing all of the template output from the # given schemes. @@ -13,19 +21,8 @@ # A very naive implementation of checking if a Tinted Theming scheme is a # Base16 scheme. - isBase16 = palette: - let - paletteNames = pkgs.lib.attrNames palette; - schemeNames = builtins.map (number: "base${number}") (lib.hex.range 1 16); - in - (pkgs.lib.count (name: pkgs.lib.elem name schemeNames) paletteNames) == 16; + isBase16 = isBaseX 16; - # A very naive implementation of checking if a Tinted Theming scheme is a - # Base24 scheme. - isBase24 = palette: - let - paletteNames = pkgs.lib.attrNames palette; - schemeNames = builtins.map (number: "base${number}") (pkgs.lib.hex.range 1 24); - in - (pkgs.lib.count (name: pkgs.lib.elem name schemeNames) paletteNames) == 24; + # Same but with Base24 scheme. + isBase24 = isBaseX 24; }