diff --git a/extra_info.nix b/extra_info.nix index 2526ec4..c86eaa7 100644 --- a/extra_info.nix +++ b/extra_info.nix @@ -15,9 +15,9 @@ with builtins; { extraInfo.inputs = { keyboard = mkOption { - type = types.nullOr types.str; + type = types.listOf types.str; description = "Sway keyboard identifier"; - default = null; + default = []; }; touchpad = mkOption { type = types.nullOr types.str; diff --git a/wm/sway.nix b/wm/sway.nix index 592b100..656ab65 100644 --- a/wm/sway.nix +++ b/wm/sway.nix @@ -130,28 +130,28 @@ in { ]; input = let inputs = config.extraInfo.inputs; - inputsCfg = [ - ( - if inputs.keyboard != null - then { - name = inputs.keyboard; + inputsCfg = + [ + ( + if inputs.touchpad != null + then { + name = inputs.touchpad; + value = {dwt = "disable";}; + } + else null + ) + ] + ++ ( + builtins.map (k: { + name = k; value = { xkb_layout = "us"; xkb_variant = "dvp"; xkb_options = "compose:102"; }; - } - else null - ) - ( - if inputs.touchpad != null - then { - name = inputs.touchpad; - value = {dwt = "disable";}; - } - else null - ) - ]; + }) + inputs.keyboard + ); in builtins.listToAttrs inputsCfg; fonts = common.mkFont cfg.font;