From 68d937ed84fc7ce148fb6cab3780885809ebf4df Mon Sep 17 00:00:00 2001
From: punkfairie <marley@punkfairie.net>
Date: Sat, 1 Mar 2025 14:30:15 -0800
Subject: [PATCH] feat(home): Niri colors

---
 modules/home/wayland/niri/default.nix | 53 ++++++++++++++++++++-------
 1 file changed, 39 insertions(+), 14 deletions(-)

diff --git a/modules/home/wayland/niri/default.nix b/modules/home/wayland/niri/default.nix
index aa80962..37c0114 100644
--- a/modules/home/wayland/niri/default.nix
+++ b/modules/home/wayland/niri/default.nix
@@ -50,7 +50,22 @@ in {
           (cmd (lib.getExe apps.browser))
         ];
 
-        layout = {
+        layout = let
+          hasTheme = config.rose-pine.enable;
+          mkTheme = lib.mkIf hasTheme;
+          colors =
+            if hasTheme
+            then config.rose-pine.palette
+            else null;
+
+          gradient = {
+            gradient = {
+              from = colors.rose.hex;
+              to = colors.iris.hex;
+              angle = 90;
+            };
+          };
+        in {
           gaps = 16;
           center-focused-column = "never";
 
@@ -64,14 +79,14 @@ in {
 
           focus-ring = {
             width = 4;
-            active = {color = "#7fc8ff";};
-            inactive = {color = "#505050";};
+            active = mkTheme gradient;
+            inactive = {color = colors.highlight-high.hex;};
           };
 
           border = {
             width = 4;
-            active = {color = "#ffc87f";};
-            inactive = {color = "#505050";};
+            active = mkTheme gradient;
+            inactive = {color = colors.highlight-high.hex;};
           };
 
           shadow = {
@@ -121,34 +136,43 @@ in {
           ]);
 
         binds = with config.lib.niri.actions; {
+          "Mod+Q".action = close-window;
+          "Mod+Shift+E".action = quit;
+          "Ctrl+Alt+Delete".action = quit;
+
           "Mod+Shift+Slash".action = show-hotkey-overlay;
           "Mod+Return".action = spawn (lib.getExe config.marleyos.apps.terminal);
           "Mod+R".action = spawn (lib.getExe config.programs.fuzzel.package);
-          "Mod+Q".action = close-window;
+
           "Mod+H".action = focus-column-or-monitor-left;
           "Mod+J".action = focus-window-down;
           "Mod+K".action = focus-window-up;
           "Mod+L".action = focus-column-or-monitor-right;
+          "Mod+Home".action = focus-column-first;
+          "Mod+End".action = focus-column-last;
+
           "Mod+Shift+H".action = move-column-left-or-to-monitor-left;
           "Mod+Shift+J".action = move-window-down;
           "Mod+Shift+K".action = move-window-up;
           "Mod+Shift+L".action = move-column-right-or-to-monitor-right;
-          "Mod+Ctrl+H".action = focus-monitor-left;
-          "Mod+Ctrl+L".action = focus-monitor-right;
-          "Mod+Home".action = focus-column-first;
-          "Mod+End".action = focus-column-last;
           "Mod+Shift+Home".action = move-column-to-first;
           "Mod+Shift+End".action = move-column-to-last;
+
           "Mod+Page_Down".action = focus-workspace-down;
           "Mod+Page_Up".action = focus-workspace-up;
-          "Mod+Shift+Page_Down".action = move-column-to-workspace-down;
-          "Mod+Shift+Page_Up".action = move-column-to-workspace-up;
           "Mod+Ctrl+Page_Down".action = move-workspace-up;
           "Mod+Ctrl+Page_Up".action = move-workspace-down;
+          "Mod+Shift+Page_Down".action = move-column-to-workspace-down;
+          "Mod+Shift+Page_Up".action = move-column-to-workspace-up;
+
+          "Mod+Ctrl+H".action = focus-monitor-left;
+          "Mod+Ctrl+L".action = focus-monitor-right;
+
           "Mod+BracketLeft".action = consume-or-expel-window-left;
           "Mod+BracketRight".action = consume-or-expel-window-right;
           "Mod+Comma".action = consume-window-into-column;
           "Mod+Period".action = expel-window-from-column;
+
           "Mod+P".action = switch-preset-column-width;
           "Mod+Shift+P".action = switch-preset-window-height;
           "Mod+Ctrl+P".action = reset-window-height;
@@ -160,15 +184,16 @@ in {
           "Mod+Equal".action = set-column-width "+10%";
           "Mod+Shift+Minus".action = set-window-height "-10%";
           "Mod+Shift+Equal".action = set-window-height "+10%";
+
           "Mod+G".action = toggle-window-floating;
           "Mod+Shift+G".action = switch-focus-between-floating-and-tiling;
           "Mod+T".action = toggle-column-tabbed-display;
+
           "Print".action = screenshot;
           "Ctrl+Print".action = screenshot-screen;
           "Alt+Print".action = screenshot-window;
+
           "Mod+Escape".action = toggle-keyboard-shortcuts-inhibit;
-          "Mod+Shift+E".action = quit;
-          "Ctrl+Alt+Delete".action = quit;
         };
       };
     };