From 586aa7f20799d6e1bb21d43648cf7a687c8c9722 Mon Sep 17 00:00:00 2001 From: Oliver Davies <oliver@oliverdavies.dev> Date: Thu, 31 Oct 2024 18:01:23 +0000 Subject: [PATCH] Try `kanata` for configuring my laptop keyboard --- modules/nixos/default.nix | 7 ++++++- modules/nixos/kanata.nix | 42 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 modules/nixos/kanata.nix diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix index b982d108..d21b3cb1 100644 --- a/modules/nixos/default.nix +++ b/modules/nixos/default.nix @@ -1 +1,6 @@ -{ imports = [ ./docker.nix ]; } +{ + imports = [ + ./docker.nix + ./kanata.nix + ]; +} diff --git a/modules/nixos/kanata.nix b/modules/nixos/kanata.nix new file mode 100644 index 00000000..763bcd5d --- /dev/null +++ b/modules/nixos/kanata.nix @@ -0,0 +1,42 @@ +{ + services.kanata = { + enable = true; + + keyboards = { + internalKeyboard = { + devices = [ + "/dev/input/event18" # lemp11 + ]; + + extraDefCfg = "process-unmapped-keys yes"; + + config = '' + (defsrc + caps a s d f j k l ; + ) + + (defvar + tap-time 150 + hold-time 200 + ) + + (defalias + escctrl (tap-hold 100 100 esc lctl) + a (tap-hold $tap-time $hold-time a lmet) + s (tap-hold $tap-time $hold-time s lalt) + d (tap-hold $tap-time $hold-time d lsft) + f (tap-hold $tap-time $hold-time f lctl) + j (tap-hold $tap-time $hold-time j rctl) + k (tap-hold $tap-time $hold-time k rsft) + l (tap-hold $tap-time $hold-time l ralt) + ; (tap-hold $tap-time $hold-time ; rmet) + ) + + (deflayer base + @escctrl @a @s @d @f @j @k @l @; + ) + ''; + }; + }; + }; +}