Add chimera option for keyboard layout
Coded doesn't use Dvorak, so the previous version would not have worked for us. Setting this via an option allows different keyboard layouts for different homes
Change-Id: I4a75d6cce39b76410b82069cb0352ee3613cce58
Reviewed-on: https://git.clicks.codes/c/Chimera/NixFiles/+/386
Tested-by: Skyler Grey <minion@clicks.codes>
Reviewed-by: Samuel Shuert <coded@clicks.codes>
diff --git a/homes/x86_64-linux/minion@greylag/default.nix b/homes/x86_64-linux/minion@greylag/default.nix
index 6eba155..de0ba65 100644
--- a/homes/x86_64-linux/minion@greylag/default.nix
+++ b/homes/x86_64-linux/minion@greylag/default.nix
@@ -78,5 +78,10 @@
editor.emacs.enable = true;
editor.neovim.defaultEditor = false;
editor.emacs.defaultEditor = false;
+
+ input.keyboard = {
+ layout = "us";
+ variant = "dvorak";
+ };
};
}
diff --git a/modules/home/hyprland/default.nix b/modules/home/hyprland/default.nix
index 38d40cd..9555151 100644
--- a/modules/home/hyprland/default.nix
+++ b/modules/home/hyprland/default.nix
@@ -10,47 +10,32 @@
lock = "${pkgs.waylock}/bin/waylock";
in
{
- options.chimera.hyprland = {
- enable = lib.mkEnableOption "Use hyprland as your window manager";
+ options.chimera = {
+ input.keyboard = {
+ layout = lib.mkOption {
+ type = lib.types.str;
+ description = "Keyboard layouts, comma seperated";
+ example = "us,de";
+ default = "us";
+ };
+ variant = lib.mkOption {
+ type = lib.types.nullOr lib.types.str;
+ description = "Keyboard layout variants, comma seperated";
+ example = "dvorak";
+ default = null;
+ };
+ };
+ hyprland = {
+ enable = lib.mkEnableOption "Use hyprland as your window manager";
- monitors = lib.mkOption {
- type = lib.types.listOf lib.types.str;
- description = "List of default monitors to set";
- default = [ ];
+ monitors = lib.mkOption {
+ type = lib.types.listOf lib.types.str;
+ description = "List of default monitors to set";
+ default = [ ];
+ };
};
};
- /* general = {
- gaps_in = 5;
- gaps_out = 20;
-
- border_size = 1;
- "col.active_border" = "rgba(71AEF5EE)";
- "col.inactive_border" = "rgba(C4C4C4EE)";
-
- layout = "dwindle";
- };
-
- dwindle = {
- pseudotile = true;
- smart_split = true;
- };
-
- master = {
- allow_small_split = true;
- new_is_master = true;
- };
-
- decoration = {
- rounding = 7;
-
- drop_shadow = true;
- shadow_range = 4;
- shadow_render_power = 3;
- "col.shadow" = "rgba(1a1a1aee)";
- };
- */
-
# TODO: Eww, SwayNC, hyprland-per-window-layout, waylock, hy3, anyrun, hypr-empty
config = lib.mkIf config.chimera.hyprland.enable {
@@ -98,8 +83,8 @@
};
input = {
- kb_layout = "us";
- kb_variant = "dvorak";
+ kb_layout = config.chimera.input.keyboard.layout;
+ kb_variant = lib.mkIf (config.chimera.input.keyboard.variant != null) config.chimera.input.keyboard.variant;
natural_scroll = true;
touchpad = {