nixos/nixos/modules/kanata.nix

52 lines
1.1 KiB
Nix

{
config,
lib,
pkgs,
...
}:
let
cfg = config.youthlic.programs.kanata;
in
{
options = {
youthlic.programs.kanata = {
enable = lib.mkEnableOption "kanata";
};
};
config = lib.mkIf cfg.enable {
boot.kernelModules = [ "uinput" ];
hardware.uinput.enable = true;
services.kanata = {
enable = true;
package = pkgs.kanata-with-cmd;
keyboards.default = {
extraDefCfg = ''
process-unmapped-keys no
'';
config = ''
#|
Kanata
CapsLock tap to Esc
CapsLock hold to Ctrl
|#
;; default keyboard layout
(defsrc
caps ;; type esc, hold caps ctrl
esc ;; type esc caps, hold esc esc
)
(deflayer default
@cac
@esc-behavior
)
(defalias
cac (tap-hold 190 190 esc lctrl) ;; hold CapsLock Esc, press CapsLock LCtrl
esc-behavior (tap-hold 190 190 caps esc) ;; press Esc CapsLock, hold Esc Esc
)
'';
};
};
};
}