Move and refactor Kanata configuration
All checks were successful
/ check (push) Successful in 1m41s

This commit is contained in:
Oliver Davies 2025-07-27 18:49:06 +01:00
parent 1be1e2dd8d
commit d19c5e6bcd
8 changed files with 54 additions and 73 deletions

View file

@ -19,13 +19,6 @@
];
features = {
cli = {
kanata.enable = true;
kanata.devices = [
"/dev/input/by-path/platform-i8042-serio-0-event-kbd"
];
};
desktop = {
dwm.enable = true;
};

View file

@ -4,7 +4,6 @@
./dwm
./gitea-actions-runner.nix
./gnupg.nix
./kanata.nix
./nixpad
./podman.nix
];

View file

@ -1,65 +0,0 @@
{ config, lib, ... }:
let
cfg = config.features.cli.${service};
service = "kanata";
inherit (lib)
mkEnableOption
mkIf
mkOption
types
;
in
{
options.features.cli.${service} = {
enable = mkEnableOption "Enable ${service}";
devices = mkOption {
default = [ ];
type = types.listOf types.str;
};
};
config = mkIf cfg.enable {
services.kanata = {
enable = true;
keyboards = {
default = {
devices = cfg.devices;
extraDefCfg = "process-unmapped-keys yes";
config = ''
(defsrc
caps a s d f j k l ;
)
(defvar
tap-time 150
hold-time 200
hold-time-slow 300
)
(defalias
escctrl (tap-hold 100 100 esc lctl)
a (tap-hold $tap-time $hold-time-slow a lmet)
s (tap-hold $tap-time $hold-time-slow 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-slow l ralt)
; (tap-hold $tap-time $hold-time-slow ; rmet)
)
(deflayer base
@escctrl @a @s @d @f @j @k @l @;
)
'';
};
};
};
};
}

View file

@ -0,0 +1,5 @@
{
flake.modules.nixos.pc.services.kanata.devices = [
"/dev/input/by-path/platform-i8042-serio-0-event-kbd"
];
}

View file

@ -0,0 +1,3 @@
{
flake.modules.nixos.pc.services.kanata.enable = true;
}

View file

@ -0,0 +1,29 @@
{
flake.modules.nixos.pc.services.kanata.keyboards.default.config = ''
(defsrc
caps a s d f j k l ;
)
(defvar
tap-time 150
hold-time 200
hold-time-slow 300
)
(defalias
escctrl (tap-hold 100 100 esc lctl)
a (tap-hold $tap-time $hold-time-slow a lmet)
s (tap-hold $tap-time $hold-time-slow 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-slow l ralt)
; (tap-hold $tap-time $hold-time-slow ; rmet)
)
(deflayer base
@escctrl @a @s @d @f @j @k @l @;
)
'';
}

View file

@ -0,0 +1,14 @@
{ lib, ... }:
{
flake.modules.nixos.pc =
{ config, ... }:
{
options.services.kanata.devices = lib.mkOption {
default = [ ];
type = lib.types.listOf lib.types.str;
};
config.services.kanata.keyboards.default.devices = config.services.kanata.devices;
};
}

View file

@ -0,0 +1,3 @@
{
flake.modules.nixos.pc.services.kanata.keyboards.default.extraDefCfg = "process-unmapped-keys yes";
}