about summary refs log tree commit diff stats
path: root/modules/by-name/ri/river/module.nix
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2025-06-29 10:59:57 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2025-06-29 10:59:57 +0200
commit00a9fb7587b76b3f86c6515d6bea138a78eac096 (patch)
treeaea91c4bba0b67f204bd26b0f109f958576ba1c2 /modules/by-name/ri/river/module.nix
parentpkgs/river-mk-keymap: Don't emit duplicate key mappings (diff)
downloadnixos-config-00a9fb7587b76b3f86c6515d6bea138a78eac096.zip
modules/river: Use the same keymap for both tiamat and apzu
This avoids bit-rot in apzu's key mappings and maybe helps me to
actually learn all the possible key mappings.
Diffstat (limited to '')
-rw-r--r--modules/by-name/ri/river/module.nix17
1 files changed, 16 insertions, 1 deletions
diff --git a/modules/by-name/ri/river/module.nix b/modules/by-name/ri/river/module.nix
index 38d4bdef..ed7eb363 100644
--- a/modules/by-name/ri/river/module.nix
+++ b/modules/by-name/ri/river/module.nix
@@ -36,10 +36,21 @@
   longRunningPrograms = builtins.concatStringsSep "\n" (builtins.map mkLrProgram cfg.init.backgroundStart);
 
   keymapFormat = pkgs.formats.json {};
+  keymapGenerate = name: value:
+    pkgs.runCommandLocal "mk-${name}-and-check" {
+      nativeBuildInputs = [pkgs.river-mk-keymap];
+      preferLocalBuild = true;
+
+      env = {
+        JSON_FILE = keymapFormat.generate name value;
+      };
+    } ''
+      river-mk-keymap --keymap "$JSON_FILE" init --dry-run
+    '';
 
   keymappings = ''
     err_fail ${riverctl} keyboard-layout ${esa cfg.init.mappings.layout}
-    err_fail ${lib.getExe pkgs.river-mk-keymap} ${keymapFormat.generate "keys.json" cfg.init.mappings.keymap}
+    err_fail ${lib.getExe pkgs.river-mk-keymap} ${keymapGenerate "keys.json" cfg.init.mappings.keymap}
   '';
 
   mkRule = {
@@ -175,6 +186,10 @@ in {
     };
   };
 
+  imports = [
+    ./keymap.nix
+  ];
+
   config = lib.mkIf cfg.enable {
     services.udev.packages = lib.mkIf cfg.unicodeInput.enable [externalBinaries.qmk_firmware.packages.${system}.qmk_unicode_type];