Commit f34f384

HPCesia <me@hpcesia.com>
2025-12-01 18:38:02
feat: niri recent windows
1 parent 9085529
Changed files (2)
modules
desktop
desktop-environment
modules/desktop/desktop-environment/discrete/wm/niri/default.nix
@@ -17,7 +17,7 @@
 
     programs.niri = {
       enable = true;
-      package = pkgs.niri-stable;
+      package = pkgs.niri-unstable;
     };
 
     services.noctalia-shell.enable = true;
modules/desktop/desktop-environment/discrete/wm/niri/recent-windows.nix
@@ -0,0 +1,40 @@
+{inputs, ...}: {
+  flake.modules.homeManager.wm-niri = {
+    options,
+    config,
+    ...
+  }: {
+    # TODO: Use niri-flake's recent windows option after https://github.com/sodiboo/niri-flake/issues/1446 solved.
+    config.programs.niri.config =
+      options.programs.niri.config.default
+      ++ (let
+        inherit (inputs.niri-flake.lib.kdl) node plain leaf flag;
+      in [
+        (plain "recent-windows" [
+          # (flag "off") # Disables the recent windows switcher altogether.
+
+          (leaf "debounce-ms" 750)
+          (leaf "open-delay-ms" 150)
+
+          (plain "highlight" [
+            (leaf "active-color" config.lib.stylix.colors.withHashtag.base0E)
+            (leaf "urgent-color" config.lib.stylix.colors.withHashtag.base0F)
+            (leaf "padding" 30)
+            (leaf "corner-radius" 15.0)
+          ])
+
+          (plain "previews" [
+            (leaf "max-height" 480)
+            (leaf "max-scale" 0.5)
+          ])
+
+          (plain "binds" [
+            (plain "Alt+Tab" [(flag "next-window")])
+            (plain "Alt+Shift+Tab" [(flag "previous-window")])
+            (plain "Alt+grave" [(leaf "next-window" {filter = "app-id";})])
+            (plain "Alt+Shift+grave" [(leaf "previous-window" {filter = "app-id";})])
+          ])
+        ])
+      ]);
+  };
+}