nix/nixos/modules/keyboard.nix
2024-01-06 18:02:01 +00:00

39 lines
921 B
Nix

{
lib,
config,
...
}: let
user = config.user;
in
with lib; {
options.keyboard = {
dvorak = {
enable = mkEnableOption "use a good keyboard layout on a qwerty keyboard";
};
};
config = {
home-manager.users.${user}.imports = [
{
wayland.windowManager.hyprland = {
settings = {
input = {
kb_layout = "gb";
kb_options = "caps:escape";
numlock_by_default = true;
};
# moonlander is programmed in dvorak!
"device:zsa-technology-labs-moonlander-mark-i" = {
kb_variant = "";
kb_options = "esperanto:qwerty,lv3:ralt_switch";
};
};
};
}
];
services.xserver.xkbVariant =
if config.keyboard.dvorak.enable
then "dvorak"
else "";
};
}