Files
dotfiles/nixos/keyd.nix

38 lines
1022 B
Nix

{ config, lib, makeEnable, ... }:
makeEnable config "myModules.keyd" true {
services.keyd = {
enable = true;
# Base remap applied to all keyboards.
keyboards.default = {
# Exclude the Glove80 (MoErgo) by vendor:product ID.
ids = [ "*" "-16c0:27db" ];
settings = {
main = {
# Caps Lock -> Control
capslock = "leftcontrol";
# Swap Left Alt and Left Super
leftalt = "leftmeta";
leftmeta = "leftalt";
# Right Alt -> Hyper chord
rightalt = "layer(hyper)";
};
# Hyper = Ctrl+Alt+Meta while held (matches $hyper = SUPER CTRL ALT)
"hyper:C-A-M" = { };
};
};
# MoErgo Glove80: only map Right Meta/Super to Hyper.
keyboards.moErgo = {
ids = [ "16c0:27db" ];
settings = {
main = {
rightmeta = "layer(hyper)";
};
# Hyper = Ctrl+Alt+Meta while held (matches $hyper = SUPER CTRL ALT)
"hyper:C-A-M" = { };
};
};
};
}