about summary refs log tree commit diff
path: root/home/modules/misc/neotheme
diff options
context:
space:
mode:
authorsefidel <contact@sefidel.net>2022-01-01 01:44:39 +0900
committersefidel <contact@sefidel.net>2022-01-01 01:46:13 +0900
commit34e2f2666627a516a73df8f7c19b3abac75050d6 (patch)
tree054a9b49601d2af342123cf9902a956216ddb87f /home/modules/misc/neotheme
parent4dae1769aaf420643f99685c420197239f6b8755 (diff)
downloadnixrc-34e2f2666627a516a73df8f7c19b3abac75050d6.tar.gz
nixrc-34e2f2666627a516a73df8f7c19b3abac75050d6.zip
home/neotheme: init
Diffstat (limited to 'home/modules/misc/neotheme')
-rw-r--r--home/modules/misc/neotheme/default.nix59
1 files changed, 59 insertions, 0 deletions
diff --git a/home/modules/misc/neotheme/default.nix b/home/modules/misc/neotheme/default.nix
new file mode 100644
index 0000000..74f2c74
--- /dev/null
+++ b/home/modules/misc/neotheme/default.nix
@@ -0,0 +1,59 @@
+{ lib, pkgs, config, ... }:
+
+with lib;
+let cfg = config.neotheme;
+in {
+  options.neotheme = {
+    wallpaper = mkOption {
+      type = types.str;
+      default = "";
+      description = "path for wallpaper image file";
+      example = "/weird/dir/wallpaper.png";
+    };
+
+    palette = {
+      identifier = mkOption {
+        type = types.str;
+        default = "";
+        description = "palette identifier";
+        example = "mytheme";
+      };
+
+      name = mkOption {
+        type = types.str;
+        default = "";
+        description = "palette name";
+        example = "My Amazing Theme";
+      };
+
+      colors = let
+        mkColorOption = name: {
+          inherit name;
+          value = mkOption {
+            type = types.strMatching "[a-fA-F0-9]{6}";
+            description = "color ${name}.";
+          };
+        };
+      in listToAttrs (map mkColorOption [
+        "background"
+        "foreground"
+        "color0"
+        "color1"
+        "color2"
+        "color3"
+        "color4"
+        "color5"
+        "color6"
+        "color7"
+        "bright0"
+        "bright1"
+        "bright2"
+        "bright3"
+        "bright4"
+        "bright5"
+        "bright6"
+        "bright7"
+      ]);
+    };
+  };
+}