Files
dotfiles/nixos/keyd.nix

43 lines
1.0 KiB
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" = {};
};
};
};
}