about summary refs log tree commit diff stats
path: root/hosts/tiamat
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2025-02-02 18:14:33 +0100
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2025-02-02 18:25:39 +0100
commit34b8b4c52e4afa8b854e6c3d37780ce5faf74c05 (patch)
tree31079c091c83c7d02d1e9a4f7a9a34eb9db7f91e /hosts/tiamat
parentfeat(lib): Init `baseLib` (diff)
downloadnixos-config-34b8b4c52e4afa8b854e6c3d37780ce5faf74c05.zip
refactor(modules/river): Migrate to `by-name`
This includes a near rewrite `river-mk-keymap` (previously,
`river_init_lesser`.)
Diffstat (limited to 'hosts/tiamat')
-rw-r--r--hosts/tiamat/default.nix100
1 files changed, 99 insertions, 1 deletions
diff --git a/hosts/tiamat/default.nix b/hosts/tiamat/default.nix
index 4e76675c..17c7e72e 100644
--- a/hosts/tiamat/default.nix
+++ b/hosts/tiamat/default.nix
@@ -1,4 +1,11 @@
-{...}: {
+{
+  lib,
+  pkgs,
+  baseLib,
+  qmk_firmware,
+  system,
+  ...
+}: {
   imports = [
     ./hardware.nix
   ];
@@ -24,6 +31,97 @@
     programs = {
       river = {
         unicodeInput.enable = true;
+        init = {
+          mappings = {
+            layout = "us";
+            keymap = let
+              map = key: "<Alt+Ctrl+Meta+Shift-${key}>";
+            in
+              (lib.mapAttrs' (name: value: lib.nameValuePair (map name) value) {
+                # Movement
+                "A" = {command = ["exit"];};
+                "B" = {command = ["close"];};
+
+                "C" = {command = ["focus-view" "previous"];};
+                "D" = {command = ["focus-view" "next"];};
+
+                "E" = {command = ["swap" "previous"];};
+                "F" = {command = ["swap" "next"];};
+
+                "G" = {command = ["zoom"];};
+
+                "H" = {command = ["toggle-fullscreen"];};
+                "I" = {command = ["toggle-float"];};
+
+                "J" = {command = ["send-to-output" "next"];};
+
+                "K" = {command = ["spawn" "${lib.getExe pkgs.alacritty}"];};
+                "L" = {command = ["spawn" "${lib.getExe pkgs.screenshot_persistent}"];};
+
+                # Audio
+                # "M" = {command = ["spawn" "video-pause toggle"]; modes = ["normal" "locked"]; };
+                "N" = {
+                  command = ["spawn" "${lib.getExe pkgs.mpc} toggle"];
+                  modes = ["normal" "locked"];
+                };
+
+                # Launcher
+                "O" = {command = ["spawn" "${lib.getExe pkgs.rofi} -show combi -modes combi -combi-modes 'window,drun,run' -show-icons"];};
+                "P" = {command = ["spawn" "${lib.getExe pkgs.neorg} dmenu"];};
+                "Q" = {command = ["spawn" "${lib.getExe pkgs.keepassxc}"];};
+                # "R" = {command = ["spawn" "nheko"];};
+                "S" = {command = ["spawn" "${lib.getExe pkgs.signal-desktop}"];};
+                "T" = {command = ["spawn" "${lib.getExe pkgs.lock}"];};
+
+                "U" = {command = ["focus-output" "next"];};
+                "V" = {command = ["focus-previous-tags"];};
+                "W" = {command = ["send-to-previous-tags"];};
+                # "X" = {command = ["spawn" "bemenu-run"];};
+                # "Y" = {command = ["spawn" "bemenu-run"];};
+
+                # Toggle all tags
+                "0" = {command = ["set-focused-tags" "${builtins.toString ((baseLib.pow 2 32) - 1)}"];};
+
+                # Support Unicode input
+                "Z" = {command = ["spawn" "${lib.getExe qmk_firmware.packages.${system}.qmk_unicode_type} 106 65377"];};
+              })
+              // ({
+                  # TODO: add toggle-focus mapping
+
+                  # Toggle all tags
+                  "<Alt+Ctrl+Shift-0>" = {command = ["set-view-tags" "${builtins.toString ((baseLib.pow 2 32) - 1)}"];};
+
+                  # Mouse
+                  "<Meta-<MOUSE_LEFT>>" = {
+                    command = ["move-view"];
+                    map_mode = "MapMouse";
+                  };
+                  "<Meta-<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 {
+                      "${map num}" = {command = ["set-focused-tags" (index2tag index)];};
+                      "<Alt+Ctrl+Shift-${num}>" = {command = ["set-view-tags" (index2tag index)];};
+                      # "<Super+Shift+Ctrl-${num}>" = {command = ["toggle-view-tags" (index2tag index)];};
+                    }) (builtins.genList (i: i + 1) 9)
+                  )
+                ));
+          };
+          screenSetupCode = {
+            "DP-2" = {pos = "2560,0";};
+            "DP-1" = {
+              scale = "1.5";
+              pos = "0,0";
+            };
+          };
+        };
       };
     };
     locale = {