nix/lib/modules/keyboard.nix
2023-11-01 11:05:57 +00:00

32 lines
806 B
Nix

{ user }: { lib, pkgs, config, ... }:
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.extraConfig = ''
# === KEYBOARD MODULE ===
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 "";
};
}