32 lines
806 B
Nix
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 "";
|
|
};
|
|
|
|
}
|