aboutsummaryrefslogtreecommitdiff
path: root/modules/scheme/default.nix
diff options
context:
space:
mode:
authorStefan Weigl-Bosker <stefan@s00.xyz>2025-04-07 15:06:04 -0400
committerStefan Weigl-Bosker <stefan@s00.xyz>2025-04-07 15:06:04 -0400
commit52666e5590a4c24d1085c242918398b9e1be741a (patch)
tree398c829241ca1cee55b2fc0f1f9bb828c446515c /modules/scheme/default.nix
parenta88fbe4bc93c44dd84ec3dee2b981c46881416d6 (diff)
downloadhome-52666e5590a4c24d1085c242918398b9e1be741a.tar.gz
colorscheme support
Diffstat (limited to 'modules/scheme/default.nix')
-rw-r--r--modules/scheme/default.nix66
1 files changed, 66 insertions, 0 deletions
diff --git a/modules/scheme/default.nix b/modules/scheme/default.nix
new file mode 100644
index 0000000..9d6e77e
--- /dev/null
+++ b/modules/scheme/default.nix
@@ -0,0 +1,66 @@
+{ config, lib, pkgs, ... }:
+let
+ cfg = config.modules.scheme;
+ hexColorRegex = ''#([0-9a-fA-F]{3}){1,2}'';
+ hexColor = {
+ type = lib.types.strMatching hexColorRegex;
+ };
+ base16Palette = {
+ options = {
+ name = lib.mkOption {
+ type = lib.types.uniq lib.types.str;
+ description = "scheme name";
+ example = "base16-default-dark";
+ };
+ light = lib.mkOption {
+ type = lib.types.uniq lib.types.bool;
+ default = false;
+ description = "whether this is a light colorscheme";
+ };
+ base00 = lib.mkOption hexColor;
+ base01 = lib.mkOption hexColor;
+ base02 = lib.mkOption hexColor;
+ base03 = lib.mkOption hexColor;
+ base04 = lib.mkOption hexColor;
+ base05 = lib.mkOption hexColor;
+ base06 = lib.mkOption hexColor;
+ base07 = lib.mkOption hexColor;
+ base08 = lib.mkOption hexColor;
+ base09 = lib.mkOption hexColor;
+ base0A = lib.mkOption hexColor;
+ base0B = lib.mkOption hexColor;
+ base0C = lib.mkOption hexColor;
+ base0D = lib.mkOption hexColor;
+ base0E = lib.mkOption hexColor;
+ base0F = lib.mkOption hexColor;
+ };
+ };
+in
+{
+ options.modules.scheme = {
+ name = lib.mkOption {
+ type = lib.types.str;
+ description = "scheme name";
+ example = "base16-default-dark";
+ };
+ base00 = lib.mkOption hexColor;
+ base01 = lib.mkOption hexColor;
+ base02 = lib.mkOption hexColor;
+ base03 = lib.mkOption hexColor;
+ base04 = lib.mkOption hexColor;
+ base05 = lib.mkOption hexColor;
+ base06 = lib.mkOption hexColor;
+ base07 = lib.mkOption hexColor;
+ base08 = lib.mkOption hexColor;
+ base09 = lib.mkOption hexColor;
+ base0A = lib.mkOption hexColor;
+ base0B = lib.mkOption hexColor;
+ base0C = lib.mkOption hexColor;
+ base0D = lib.mkOption hexColor;
+ base0E = lib.mkOption hexColor;
+ base0F = lib.mkOption hexColor;
+ };
+
+ # config = lib.mkIf cfg.enable {
+ # };
+}