From d33e03deb4f5efe647fc59dc0344090bb84d0b02 Mon Sep 17 00:00:00 2001 From: Crony Akatsuki Date: Sun, 12 Oct 2025 13:35:41 +0200 Subject: [PATCH] feat(desktop): add kanata for kb layers." --- hosts/skadi/configuration.nix | 1 + modules/linux/nixos/default.nix | 2 ++ modules/linux/nixos/kanata.nix | 24 ++++++++++++++++++++++++ 3 files changed, 27 insertions(+) create mode 100644 modules/linux/nixos/kanata.nix diff --git a/hosts/skadi/configuration.nix b/hosts/skadi/configuration.nix index 7af15a4..e87dc6a 100644 --- a/hosts/skadi/configuration.nix +++ b/hosts/skadi/configuration.nix @@ -232,6 +232,7 @@ crony.secrets.enable = true; crony.boot.enable = true; crony.ollama.enable = true; + crony.kanata.enable = true; # Mount additional drive for games fileSystems."/mnt/games" = { diff --git a/modules/linux/nixos/default.nix b/modules/linux/nixos/default.nix index bc2563c..fc66e83 100644 --- a/modules/linux/nixos/default.nix +++ b/modules/linux/nixos/default.nix @@ -26,6 +26,7 @@ ./secrets.nix ./oom.nix ./boot.nix + ./kanata.nix ]; crony.bluetooth.enable = lib.mkDefault true; @@ -54,4 +55,5 @@ crony.secrets.enable = lib.mkDefault false; crony.oom.enable = lib.mkDefault true; crony.boot.enable = lib.mkDefault false; + crony.kanata.enable = lib.mkDefault false; } diff --git a/modules/linux/nixos/kanata.nix b/modules/linux/nixos/kanata.nix new file mode 100644 index 0000000..3c552a1 --- /dev/null +++ b/modules/linux/nixos/kanata.nix @@ -0,0 +1,24 @@ +{ + config, + lib, + ... +}: { + options = { + crony.kanata.enable = lib.mkEnableOption "Enable and setup kanata"; + }; + + config = lib.mkIf config.crony.kanata.enable { + hardware.uinput.enable = true; + services.kanata = { + enable = true; + keyboards."based".config = '' + (defsrc + caps) + + (deflayermap (default-layer) + ;; tap caps lock as caps lock, hold caps lock as left control + caps (tap-hold 100 100 esc lctl)) + ''; + }; + }; +}