about summary refs log tree commit diff stats
path: root/hosts/apzu
diff options
context:
space:
mode:
Diffstat (limited to 'hosts/apzu')
-rw-r--r--hosts/apzu/default.nix85
1 files changed, 84 insertions, 1 deletions
diff --git a/hosts/apzu/default.nix b/hosts/apzu/default.nix
index d0090339..6ba6828a 100644
--- a/hosts/apzu/default.nix
+++ b/hosts/apzu/default.nix
@@ -1,4 +1,9 @@
-{...}: {
+{
+  lib,
+  pkgs,
+  baseLib,
+  ...
+}: {
   imports = [
     ./hardware.nix
   ];
@@ -19,6 +24,84 @@
         laptop = true;
         backlight = "intel_backlight";
       };
+      river.init = {
+        mappings = {
+          layout = "dvorak-modified";
+          keymap =
+            {
+              # Focus change
+              "<Meta-T>" = {command = ["focus-view" "next"];};
+              "<Meta-N>" = {command = ["focus-view" "previous"];};
+              "<Meta+Ctrl-T>" = {command = ["focus-output" "next"];};
+              "<Meta+Ctrl-N>" = {command = ["focus-output" "previous"];};
+
+              # Standard programs
+              "<Meta-<ENTER>>" = {command = ["spawn" "${lib.getExe pkgs.alacritty}"];};
+              "<Meta+Shift-q>" = {command = ["exit"];};
+              "<Meta-L>" = {command = ["spawn" "${lib.getExe pkgs.lock}"];};
+
+              # Screenshot
+              "<PRINTSCREEN>" = {command = ["spawn" "${lib.getExe pkgs.screenshot_persistent}"];};
+
+              # Audio
+              "<MEDIA_RAISEVOLUME>" = {
+                command = ["spawn" "${lib.getExe' pkgs.wireplumber "wpctl"} set-volume @DEFAULT_SINK@ 5%+"];
+                modes = ["normal" "locked"];
+              };
+              "<MEDIA_LOWERVOLUME>" = {
+                command = ["spawn" "${lib.getExe' pkgs.wireplumber "wpctl"} set-volume @DEFAULT_SINK@ 5%-"];
+                modes = ["normal" "locked"];
+              };
+              "<MEDIA_MUTEVOLUME>" = {
+                command = ["spawn" "${lib.getExe pkgs.mpc} toggle"];
+                modes = ["normal" "locked"];
+              };
+
+              # Launcher
+              "<Meta-R>" = {command = ["spawn" "${lib.getExe pkgs.rofi} -show combi -modes combi -combi-modes 'window, drun, run' -show-icons"];};
+              "<Meta-<F1>>" = {command = ["spawn" "${lib.getExe pkgs.neorg} dmenu"];};
+              "<Meta-<F2>>" = {command = ["spawn" "${lib.getExe pkgs.keepassxc}"];};
+              "<Meta-<F3>>" = {command = ["spawn" "${lib.getExe pkgs.signal-desktop}"];};
+              # "<Meta-<F4>>" = {command = ["spawn" "${lib.getExe pkgs.steam}"];};
+
+              # Client
+              "<Meta-f>" = {command = ["toggle-fullscreen"];};
+              "<Meta+Shift-c>" = {command = ["close"];};
+              "<Meta+Ctrl- >" = {command = ["toggle-float"];};
+              "<Meta+Ctrl-<ENTER>>" = {command = ["zoom"];};
+              "<Meta-o>" = {command = ["send-to-output" "next"];};
+              "<Meta+Shift-T>" = {command = ["swap" "next"];};
+              "<Meta+Shift-N>" = {command = ["swap" "previous"];};
+
+              # Toggle all tags
+              "<Meta-0>" = {command = ["set-focused-tags" (builtins.toString ((baseLib.pow 2 32) - 1))];};
+              "<Meta+Shift-0>" = {command = ["set-view-tags" (builtins.toString ((baseLib.pow 2 32) - 1))];};
+
+              # Mouse
+              "<MOUSE_LEFT>" = {
+                command = ["move-view"];
+                map_mode = "MapMouse";
+              };
+              "<MOUSE_RIGHT>" = {
+                command = ["resize-view"];
+                map_mode = "MapMouse";
+              };
+            }
+            // (
+              builtins.foldl' (acc: elem: acc // elem) {} (
+                builtins.map (index: let
+                  num = builtins.toString index;
+                  index2tag = input: builtins.toString (baseLib.pow 2 (input - 1));
+                in {
+                  "<Meta-${num}>" = {command = ["set-focused-tags" (index2tag index)];};
+                  "<Meta+Shift-${num}>" = {command = ["set-view-tags" (index2tag index)];};
+                  "<Meta+Shift+Ctrl-${num}>" = {command = ["toggle-view-tags" (index2tag index)];};
+                }) (builtins.genList (i: i + 1) 9)
+              )
+            );
+        };
+        screenSetupCode = {};
+      };
     };
 
     locale.enable = true;