about summary refs log tree commit diff
path: root/home/wm/theme/default.nix
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--home/wm/theme/default.nix63
1 files changed, 63 insertions, 0 deletions
diff --git a/home/wm/theme/default.nix b/home/wm/theme/default.nix
new file mode 100644
index 0000000..e466d6c
--- /dev/null
+++ b/home/wm/theme/default.nix
@@ -0,0 +1,63 @@
+{ config, lib, ... }:
+let
+  isEnabled = config.my.home.wm.windowManager == "sway";
+  cfg = config.base16-theme;
+  inherit (lib) mkOption mkMerge mkIf mkEnableOption types;
+  cnotation = builtins.replaceStrings [ "#" ] [ "0x" ];
+  color = default:
+    mkOption {
+      inherit default;
+      type = types.str;
+    };
+  alpha = clr: a: "${clr}${a}";
+in {
+  options.base16-theme = {
+    enable = mkEnableOption "Enable base16 theme systemwide";
+    base00 = color "#2E3440"; # polar night
+    base01 = color "#3B4252"; # polar night
+    base02 = color "#434C5E"; # polar night
+    base03 = color "#4C566A"; # polar night
+    base04 = color "#D8DEE9"; # snow storm
+    base05 = color "#E5E9F0"; # snow storm
+    base06 = color "#ECEFF4"; # snow storm
+    base07 = color "#8FBCBB"; # frost
+    base08 = color "#88C0D0"; # frost
+    base09 = color "#81A1C1"; # frost
+    base0A = color "#5E81AC"; # frost
+    base0B = color "#BF616A"; # aurora
+    base0C = color "#D08770"; # aurora
+    base0D = color "#EBCB8B"; # aurora
+    base0E = color "#A3BE8C"; # aurora
+    base0F = color "#B48EAD"; # aurora
+  };
+
+  config = mkIf isEnabled (mkMerge [({
+    wayland.windowManager.sway.config.colors = rec {
+      focused = {
+        border = cfg.base0A;
+        background = cfg.base0A;
+        text = cfg.base06;
+        indicator = cfg.base0A;
+        childBorder = cfg.base0A;
+      };
+
+      focusedInactive = {
+        border = cfg.base00;
+        background = cfg.base00;
+        text = cfg.base07;
+        indicator = cfg.base00;
+        childBorder = cfg.base00;
+      };
+
+      unfocused = focusedInactive;
+
+      urgent = {
+        border = cfg.base0B;
+        background = cfg.base0B;
+        text = cfg.base05;
+        indicator = cfg.base0B;
+        childBorder = cfg.base0B;
+      };
+    };
+  })]);
+}