From faa055caf28d6539f0c59ec89d9236407dbd535b Mon Sep 17 00:00:00 2001
From: willifan <willifan@pm.me>
Date: Wed, 8 Jan 2025 12:52:24 +0100
Subject: [PATCH] added river

---
 hosts/Puenktchen/default.nix                  |  1 +
 .../desktop/compositors/default.nix           |  8 ++++++++
 .../desktop/{niri => compositors}/niri.nix    |  6 ++++--
 .../desktop/compositors/river.nix             | 19 +++++++++++++++++++
 .../default/home-manager/desktop/default.nix  |  2 +-
 .../home-manager/desktop/hyprland/options.nix |  2 +-
 .../home-manager/desktop/niri/default.nix     |  8 --------
 .../default/home-manager/desktop/options.nix  | 11 +++++++++++
 8 files changed, 45 insertions(+), 12 deletions(-)
 create mode 100644 modules/default/home-manager/desktop/compositors/default.nix
 rename modules/default/home-manager/desktop/{niri => compositors}/niri.nix (94%)
 create mode 100644 modules/default/home-manager/desktop/compositors/river.nix
 delete mode 100644 modules/default/home-manager/desktop/niri/default.nix

diff --git a/hosts/Puenktchen/default.nix b/hosts/Puenktchen/default.nix
index 9c1be75..7008d4a 100644
--- a/hosts/Puenktchen/default.nix
+++ b/hosts/Puenktchen/default.nix
@@ -15,6 +15,7 @@
     hyprlock.enable = false;
     hypridle.enable = false;
     hyprpaper.enable = false;
+    wm.river.enable = true;
 
     hyprland = {
       hardware.Puenktchen.enable = true;
diff --git a/modules/default/home-manager/desktop/compositors/default.nix b/modules/default/home-manager/desktop/compositors/default.nix
new file mode 100644
index 0000000..5b27783
--- /dev/null
+++ b/modules/default/home-manager/desktop/compositors/default.nix
@@ -0,0 +1,8 @@
+{ ... }:
+{
+
+  imports = [
+    ./niri.nix
+    ./river.nix
+  ];
+}
diff --git a/modules/default/home-manager/desktop/niri/niri.nix b/modules/default/home-manager/desktop/compositors/niri.nix
similarity index 94%
rename from modules/default/home-manager/desktop/niri/niri.nix
rename to modules/default/home-manager/desktop/compositors/niri.nix
index 3a6a8d8..cfbdb9f 100644
--- a/modules/default/home-manager/desktop/niri/niri.nix
+++ b/modules/default/home-manager/desktop/compositors/niri.nix
@@ -1,8 +1,10 @@
-{ lib, config, pkgs, ... }:
+{ inputs, lib, config, pkgs, ... }:
 let
   SCRIPTS = "$XDG_CONFIG_HOME/desktop-utils/scripts";
 in
-lib.mkIf config.desktop.enable {
+lib.mkIf config.desktop.wm.niri.enable {
+
+  nixpkgs.overlays = [ inputs.niri.overlays.niri ];
 
   programs.niri.enable = true;
 
diff --git a/modules/default/home-manager/desktop/compositors/river.nix b/modules/default/home-manager/desktop/compositors/river.nix
new file mode 100644
index 0000000..9bd06e2
--- /dev/null
+++ b/modules/default/home-manager/desktop/compositors/river.nix
@@ -0,0 +1,19 @@
+{ lib, config, ... }:
+lib.mkIf config.desktop.wm.river.enable {
+  home-manager.users.willifan = {
+    wayland.windowManager.river = {
+      enable = true;
+      settings = {
+        map = {
+          normal = {
+            "Super Q" = "spawn 'kitty'";
+            "Super R" = "spawn 'fuzzel'";
+            "Super E" = "spawn 'thunar'";
+
+            "Super C" = "close";
+          };
+        };
+      };
+    };
+  };
+}
diff --git a/modules/default/home-manager/desktop/default.nix b/modules/default/home-manager/desktop/default.nix
index 3cc25e1..5f68f43 100644
--- a/modules/default/home-manager/desktop/default.nix
+++ b/modules/default/home-manager/desktop/default.nix
@@ -3,7 +3,7 @@
 
   imports = [
     ./hyprland
-    ./niri
+    ./compositors
 
     ./options.nix
     ./kitty.nix
diff --git a/modules/default/home-manager/desktop/hyprland/options.nix b/modules/default/home-manager/desktop/hyprland/options.nix
index 4b0d15d..14a7133 100644
--- a/modules/default/home-manager/desktop/hyprland/options.nix
+++ b/modules/default/home-manager/desktop/hyprland/options.nix
@@ -17,7 +17,7 @@
 
       hyprland = {
         enable = lib.mkOption {
-          default = config.desktop.enable;
+          default = false;
           type = lib.types.bool;
         };
         hardware = {
diff --git a/modules/default/home-manager/desktop/niri/default.nix b/modules/default/home-manager/desktop/niri/default.nix
deleted file mode 100644
index a17f8d3..0000000
--- a/modules/default/home-manager/desktop/niri/default.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-{ inputs, ... }:
-{
-  nixpkgs.overlays = [ inputs.niri.overlays.niri ];
-
-  imports = [
-    ./niri.nix
-  ];
-}
diff --git a/modules/default/home-manager/desktop/options.nix b/modules/default/home-manager/desktop/options.nix
index 870069d..0edf986 100644
--- a/modules/default/home-manager/desktop/options.nix
+++ b/modules/default/home-manager/desktop/options.nix
@@ -10,6 +10,17 @@
         default = config.desktop.enable;
         type = lib.types.bool;
       };
+      wm = {
+        niri.enable = lib.mkOption {
+          default = false;
+          type = lib.types.bool;
+        };
+        river.enable = lib.mkOption {
+          default = false;
+          type = lib.types.bool;
+        };
+
+      };
     };
   };
 }