From 059c50884231a9dd859781869381a2565c831239 Mon Sep 17 00:00:00 2001 From: Poseidon Date: Fri, 15 Aug 2025 12:25:32 -0500 Subject: [PATCH] utility/qmk: add defaults and asserts Add default values and assertions for required options. --- modules/plugins/utility/qmk/config.nix | 18 ++++++++++++++---- modules/plugins/utility/qmk/qmk.nix | 17 ++++++++--------- 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/modules/plugins/utility/qmk/config.nix b/modules/plugins/utility/qmk/config.nix index bd43e2a8..b45f61ab 100644 --- a/modules/plugins/utility/qmk/config.nix +++ b/modules/plugins/utility/qmk/config.nix @@ -18,9 +18,19 @@ in { ''; }; - assertions = [{ - assertion = !(cfg.setupOpts.variant == "zmk") && !(cfg.setupOpts.comment_preview.position == "inside"); - message = "comment_preview.position can only be set to inside when using the qmk layoyt"; - }]; + assertions = [ + { + assertion = cfg.setupOpts.variant != "zmk" && cfg.setupOpts.comment_preview.position != "inside"; + message = "comment_preview.position can only be set to inside when using the qmk layoyt"; + } + { + assertion = cfg.setupOpts.name != null; + message = "qmk-nvim requires 'vim.utility.qmk.setupOpts.name' to be set."; + } + { + assertion = cfg.setupOpts.layout != null; + message = "qmk-nvim requires 'vim.utility.qmk.setupOpts.layout' to be set."; + } + ]; }; } diff --git a/modules/plugins/utility/qmk/qmk.nix b/modules/plugins/utility/qmk/qmk.nix index 85553dc2..d43fd17b 100644 --- a/modules/plugins/utility/qmk/qmk.nix +++ b/modules/plugins/utility/qmk/qmk.nix @@ -1,9 +1,6 @@ -{ - lib, - ... -}: let +{lib, ...}: let inherit (lib.options) mkOption mkEnableOption; - inherit (lib.types) attrsOf enum lines str; + inherit (lib.types) attrsOf nullOr enum lines str; inherit (lib.nvim.types) mkPluginSetupOption; in { options.vim.utility.qmk = { @@ -11,18 +8,20 @@ in { setupOpts = mkPluginSetupOption "qmk.nvim" { name = mkOption { - type = str; + type = nullOr str; + default = null; description = "The name of the layout"; }; layout = mkOption { - type = lines; + type = nullOr lines; + default = null; description = '' - The keyboard key layout + The keyboard key layout see for more details ''; }; - + variant = mkOption { type = enum ["qmk" "zmk"]; default = "qmk";