From 7cbf3cb37b73c427105fe51c0029d1cac50285a7 Mon Sep 17 00:00:00 2001 From: marc Date: Sun, 10 Nov 2024 20:09:15 +0100 Subject: [PATCH] Added kanata --- hosts/reykjavik/default.nix | 1 + modules/system/kanata.nix | 47 +++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 modules/system/kanata.nix diff --git a/hosts/reykjavik/default.nix b/hosts/reykjavik/default.nix index 079837c..8d381f2 100644 --- a/hosts/reykjavik/default.nix +++ b/hosts/reykjavik/default.nix @@ -62,6 +62,7 @@ in system.gpg.enable = true; system.pass.enable = true; system.sshfs.enable = true; + system.kanata.enable = true; server.vatnajokull.enable = true; diff --git a/modules/system/kanata.nix b/modules/system/kanata.nix new file mode 100644 index 0000000..9ba94d4 --- /dev/null +++ b/modules/system/kanata.nix @@ -0,0 +1,47 @@ +{ config, pkgs, lib, ... }: + +let + cfg = config.samfelag.modules.system.kanata; +in +{ + options.samfelag.modules.system.kanata = { + enable = lib.mkEnableOption "kanata"; + }; + + config = lib.mkIf cfg.enable { + users.users.${config.user.name}.extraGroups = [ + "input" + "uinput" + ]; + services.kanata = { + enable = true; + keyboards = { + internalKeyboard = { + extraDefCfg = "process-unmapped-keys yes"; + config = '' + (defsrc + a s d f h j k l + ) + (defvar + tap-time 150 + hold-time 200 + ) + (defalias + a (tap-hold $tap-time $hold-time a lalt) + s (tap-hold $tap-time $hold-time s lsft) + d (tap-hold $tap-time $hold-time d lmet) + f (tap-hold $tap-time $hold-time f lctl) + h (tap-hold $tap-time $hold-time h rctl) + j (tap-hold $tap-time $hold-time j rmet) + k (tap-hold $tap-time $hold-time k rsft) + l (tap-hold $tap-time $hold-time l ralt) + ) + (deflayer base + @a @s @d @f @h @j @k @l + ) + ''; + }; + }; + }; + }; +}