diff --git a/lib/types.nix b/lib/types.nix index 376d19a8..3ea07e52 100644 --- a/lib/types.nix +++ b/lib/types.nix @@ -516,4 +516,41 @@ in Like `wlib.types.attrsRecursive`, but uses `lib.types.lazyAttrsOf` instead. */ lazyAttrsRecursive = attrsRecursive true; + + /** + Creates a value type suitable for serialization formats. + + Parameters: + - typeName: String describing the format (e.g. "JSON", "YAML", "XML") + - nullable: Whether the structured value type allows `null` values. + - extraValueTypes: List of extra value types to allow, e.g. "[ lib.types.luaInline ]" + + Returns a type suitable for structured data formats that supports: + - Basic types: boolean, integer, float, string, path + - Complex types: attribute sets and lists + - Other user provided value types + */ + structuredValueWith = + { + typeName, + nullable ? true, + extraValueTypes ? [ ], + }: + let + baseType = lib.types.oneOf ( + (lib.toList extraValueTypes) + ++ [ + lib.types.bool + lib.types.int + lib.types.float + wlib.types.stringable + (lib.types.attrsOf valueType) + (lib.types.listOf valueType) + ] + ); + valueType = (if nullable then lib.types.nullOr baseType else baseType) // { + description = "${typeName} value"; + }; + in + valueType; } diff --git a/wrapperModules/a/alacritty/module.nix b/wrapperModules/a/alacritty/module.nix index d6d88771..fcb53ce8 100644 --- a/wrapperModules/a/alacritty/module.nix +++ b/wrapperModules/a/alacritty/module.nix @@ -5,14 +5,14 @@ pkgs, ... }: -let - tomlFmt = pkgs.formats.toml { }; -in { imports = [ wlib.modules.default ]; options = { settings = lib.mkOption { - type = tomlFmt.type; + type = wlib.types.structuredValueWith { + nullable = false; + typeName = "TOML"; + }; default = { }; description = '' Configuration of alacritty. diff --git a/wrapperModules/a/atuin/module.nix b/wrapperModules/a/atuin/module.nix index d5a31a3c..6f6a00c6 100644 --- a/wrapperModules/a/atuin/module.nix +++ b/wrapperModules/a/atuin/module.nix @@ -6,21 +6,24 @@ ... }: let - tomlFmt = pkgs.formats.toml { }; + tomlFmtType = wlib.types.structuredValueWith { + nullable = false; + typeName = "TOML"; + }; in { imports = [ wlib.modules.default ]; options = { settings = lib.mkOption { - type = tomlFmt.type; + type = tomlFmtType; default = { }; description = '' Atuin configuration options. ''; }; server-settings = lib.mkOption { - type = tomlFmt.type; + type = tomlFmtType; default = { }; description = '' Atuin server configuration options. diff --git a/wrapperModules/b/bottom/module.nix b/wrapperModules/b/bottom/module.nix index a018c707..8aa1d549 100644 --- a/wrapperModules/b/bottom/module.nix +++ b/wrapperModules/b/bottom/module.nix @@ -5,14 +5,14 @@ pkgs, ... }: -let - tomlFmt = pkgs.formats.toml { }; -in { imports = [ wlib.modules.default ]; options = { settings = lib.mkOption { - type = tomlFmt.type; + type = wlib.types.structuredValueWith { + nullable = false; + typeName = "TOML"; + }; default = { }; description = '' Configuration passed to `btm` using `--config_location` flag. diff --git a/wrapperModules/c/claude-code/module.nix b/wrapperModules/c/claude-code/module.nix index 4d4c8743..59cbd30d 100644 --- a/wrapperModules/c/claude-code/module.nix +++ b/wrapperModules/c/claude-code/module.nix @@ -6,7 +6,7 @@ ... }: let - jsonFmt = pkgs.formats.json { }; + jsonFmtType = wlib.types.structuredValueWith { typeName = "JSON"; }; in { imports = [ wlib.modules.default ]; @@ -14,7 +14,7 @@ in options = { agents = lib.mkOption { - type = jsonFmt.type; + type = jsonFmtType; default = { }; description = '' Custom agents to add to Claude Code. @@ -37,7 +37,7 @@ in }; mcpConfig = lib.mkOption { - type = jsonFmt.type; + type = jsonFmtType; default = { }; description = '' MCP Server configuration @@ -71,7 +71,7 @@ in }; settings = lib.mkOption { - type = jsonFmt.type; + type = jsonFmtType; default = { }; description = '' Claude Code settings diff --git a/wrapperModules/f/fastfetch/module.nix b/wrapperModules/f/fastfetch/module.nix index 7627c83f..db21c4a6 100644 --- a/wrapperModules/f/fastfetch/module.nix +++ b/wrapperModules/f/fastfetch/module.nix @@ -9,7 +9,7 @@ imports = [ wlib.modules.default ]; options = { settings = lib.mkOption { - type = lib.types.json or (pkgs.formats.json { }).type; + type = wlib.types.structuredValueWith { typeName = "JSON"; }; default = { }; description = '' Configuration passed to fastfetch using `--config` flag diff --git a/wrapperModules/g/glance/module.nix b/wrapperModules/g/glance/module.nix index cab1eb13..cfabbaf3 100644 --- a/wrapperModules/g/glance/module.nix +++ b/wrapperModules/g/glance/module.nix @@ -9,7 +9,7 @@ imports = [ wlib.modules.default ]; options = { settings = lib.mkOption { - inherit (pkgs.formats.yaml { }) type; + type = wlib.types.structuredValueWith { typeName = "YAML 1.1"; }; default = { }; description = '' Configuration for glance. diff --git a/wrapperModules/h/halloy/module.nix b/wrapperModules/h/halloy/module.nix index 9854f238..c2004ae2 100644 --- a/wrapperModules/h/halloy/module.nix +++ b/wrapperModules/h/halloy/module.nix @@ -6,13 +6,16 @@ ... }: let - tomlFmt = pkgs.formats.toml { }; + tomlFmtType = wlib.types.structuredValueWith { + nullable = false; + typeName = "TOML"; + }; in { imports = [ wlib.modules.default ]; options = { settings = lib.mkOption { - inherit (tomlFmt) type; + type = tomlFmtType; default = { }; description = '' Configuration settings for halloy. All available options can be @@ -31,7 +34,7 @@ in themes = lib.mkOption { type = lib.types.attrsOf ( lib.types.oneOf [ - tomlFmt.type + tomlFmtType lib.types.lines lib.types.path ] diff --git a/wrapperModules/h/helix/module.nix b/wrapperModules/h/helix/module.nix index 905a4c31..e5156664 100644 --- a/wrapperModules/h/helix/module.nix +++ b/wrapperModules/h/helix/module.nix @@ -6,7 +6,10 @@ ... }: let - tomlFmt = pkgs.formats.toml { }; + tomlFmtType = wlib.types.structuredValueWith { + nullable = false; + typeName = "TOML"; + }; hasConfig = config.settings != { } || config.extraSettings != "" @@ -18,7 +21,7 @@ in imports = [ wlib.modules.default ]; options = { settings = lib.mkOption { - type = tomlFmt.type; + type = tomlFmtType; description = '' General settings See @@ -33,7 +36,7 @@ in ''; }; languages = lib.mkOption { - type = tomlFmt.type; + type = tomlFmtType; description = '' Language specific settings See @@ -43,7 +46,7 @@ in themes = lib.mkOption { type = lib.types.attrsOf ( lib.types.oneOf [ - tomlFmt.type + tomlFmtType lib.types.lines ] ); diff --git a/wrapperModules/h/himalaya/module.nix b/wrapperModules/h/himalaya/module.nix index 8ad80c4c..6320fc2d 100644 --- a/wrapperModules/h/himalaya/module.nix +++ b/wrapperModules/h/himalaya/module.nix @@ -5,15 +5,15 @@ lib, ... }: -let - tomlFmt = pkgs.formats.toml { }; -in { imports = [ wlib.modules.default ]; options = { settings = lib.mkOption { - type = tomlFmt.type; + type = wlib.types.structuredValueWith { + nullable = false; + typeName = "TOML"; + }; default = { }; description = '' Configuration for himalaya mail client CLI diff --git a/wrapperModules/h/hyfetch/module.nix b/wrapperModules/h/hyfetch/module.nix index c72fa21d..c541f0b5 100644 --- a/wrapperModules/h/hyfetch/module.nix +++ b/wrapperModules/h/hyfetch/module.nix @@ -5,14 +5,11 @@ pkgs, ... }: -let - jsonFormat = pkgs.formats.json { }; -in { imports = [ wlib.modules.default ]; options = { settings = lib.mkOption { - type = jsonFormat.type; + type = wlib.types.structuredValueWith { typeName = "JSON"; }; default = { }; description = "JSON config for HyFetch"; example = lib.literalExpression '' diff --git a/wrapperModules/j/jujutsu/module.nix b/wrapperModules/j/jujutsu/module.nix index d0a84ec4..23f9d736 100644 --- a/wrapperModules/j/jujutsu/module.nix +++ b/wrapperModules/j/jujutsu/module.nix @@ -5,14 +5,14 @@ pkgs, ... }: -let - tomlFmt = pkgs.formats.toml { }; -in { imports = [ wlib.modules.default ]; options = { settings = lib.mkOption { - type = tomlFmt.type; + type = wlib.types.structuredValueWith { + nullable = false; + typeName = "TOML"; + }; default = { }; description = '' Configuration for jujutsu. diff --git a/wrapperModules/m/mdbook/module.nix b/wrapperModules/m/mdbook/module.nix index 8b91c2fb..9184e5b4 100644 --- a/wrapperModules/m/mdbook/module.nix +++ b/wrapperModules/m/mdbook/module.nix @@ -188,9 +188,7 @@ let linkCmds = builtins.concatStringsSep "\n" (map mkLink sortedBook); }; - tomltype = (lib.types.json or (pkgs.formats.json { }).type) // { - description = "nullable TOML value"; - }; + tomltype = wlib.types.structuredValueWith { typeName = "nullable TOML"; }; book-out-dir = "${top.config.binName}-book-dir"; in diff --git a/wrapperModules/n/neovim/module.nix b/wrapperModules/n/neovim/module.nix index a506f78e..f3dda407 100644 --- a/wrapperModules/n/neovim/module.nix +++ b/wrapperModules/n/neovim/module.nix @@ -8,23 +8,10 @@ let makeWrapper = import wlib.modules.makeWrapper; inherit (lib) types; - luaType = - types.nullOr ( - types.oneOf [ - types.bool - types.float - types.int - types.path - types.str - types.luaInline - (types.attrsOf luaType) - (types.listOf luaType) - ] - ) - // { - description = "lua value"; - descriptionClass = "noun"; - }; + luaType = wlib.types.structuredValueWith { + typeName = "lua"; + extraValueTypes = lib.types.luaInline; + }; hostPropagatedOptions = name: hostConfig: lib.types.submoduleWith { diff --git a/wrapperModules/n/noctalia-shell/module.nix b/wrapperModules/n/noctalia-shell/module.nix index ab29e35e..ec81a010 100644 --- a/wrapperModules/n/noctalia-shell/module.nix +++ b/wrapperModules/n/noctalia-shell/module.nix @@ -101,7 +101,7 @@ in ''; }; settings = lib.mkOption { - type = lib.types.json or (pkgs.formats.json { }).type; + type = wlib.types.structuredValueWith { typeName = "JSON"; }; default = { }; example = lib.literalExpression '' { @@ -127,7 +127,7 @@ in }; colors = lib.mkOption { - type = lib.types.json or (pkgs.formats.json { }).type; + type = wlib.types.structuredValueWith { typeName = "JSON"; }; default = { }; example = lib.literalExpression '' { @@ -155,7 +155,10 @@ in user-templates = lib.mkOption { default = { }; - type = (pkgs.formats.toml { }).type; + type = wlib.types.structuredValueWith { + nullable = false; + typeName = "TOML"; + }; example = lib.literalExpression '' { templates = { @@ -175,7 +178,7 @@ in }; plugins = lib.mkOption { - type = lib.types.json or (pkgs.formats.json { }).type; + type = wlib.types.structuredValueWith { typeName = "JSON"; }; default = { }; example = lib.literalExpression '' { @@ -202,7 +205,7 @@ in }; pluginSettings = lib.mkOption { - type = lib.types.attrsOf (lib.types.json or (pkgs.formats.json { }).type); + type = lib.types.attrsOf (wlib.types.structuredValueWith { typeName = "JSON"; }); default = { }; example = lib.literalExpression '' { @@ -275,7 +278,7 @@ in ''; }; settings = lib.mkOption { - type = lib.types.json or (pkgs.formats.json { }).type; + type = wlib.types.structuredValueWith { typeName = "JSON"; }; default = { }; description = '' Settings to add to `$NOCTALIA_CONFIG_DIR/plugins/plugin-name/settings.json` diff --git a/wrapperModules/o/opencode/module.nix b/wrapperModules/o/opencode/module.nix index 0e9b0e4f..537754fe 100644 --- a/wrapperModules/o/opencode/module.nix +++ b/wrapperModules/o/opencode/module.nix @@ -8,7 +8,7 @@ { imports = [ wlib.modules.default ]; options.settings = lib.mkOption { - type = (pkgs.formats.json { }).type; + type = wlib.types.structuredValueWith { typeName = "JSON"; }; default = { }; description = "Sets OPENCODE_CONFIG for github:sst/opencode"; }; diff --git a/wrapperModules/o/ov/module.nix b/wrapperModules/o/ov/module.nix index 36cfb754..1e0704b4 100644 --- a/wrapperModules/o/ov/module.nix +++ b/wrapperModules/o/ov/module.nix @@ -5,14 +5,11 @@ pkgs, ... }: -let - yamlFmt = pkgs.formats.yaml { }; -in { imports = [ wlib.modules.default ]; options = { settings = lib.mkOption { - type = yamlFmt.type; + type = wlib.types.structuredValueWith { typeName = "YAML 1.1"; }; default = { }; description = '' Configuration of ov. diff --git a/wrapperModules/s/starship/module.nix b/wrapperModules/s/starship/module.nix index 121fbedd..1a8b3afe 100644 --- a/wrapperModules/s/starship/module.nix +++ b/wrapperModules/s/starship/module.nix @@ -6,8 +6,6 @@ ... }: let - tomlFmt = pkgs.formats.toml { }; - presetKey = "preset"; settingsKey = "settings"; @@ -21,7 +19,10 @@ in options = { settings = lib.mkOption { - inherit (tomlFmt) type; + type = wlib.types.structuredValueWith { + nullable = false; + typeName = "TOML"; + }; default = { }; description = '' Pure nix configuration of starship.toml. diff --git a/wrapperModules/t/tealdeer/module.nix b/wrapperModules/t/tealdeer/module.nix index 63b36725..ebf0b0b4 100644 --- a/wrapperModules/t/tealdeer/module.nix +++ b/wrapperModules/t/tealdeer/module.nix @@ -5,14 +5,14 @@ pkgs, ... }: -let - tomlFmt = pkgs.formats.toml { }; -in { imports = [ wlib.modules.default ]; options = { settings = lib.mkOption { - inherit (tomlFmt) type; + type = wlib.types.structuredValueWith { + nullable = false; + typeName = "TOML"; + }; default = { }; description = '' Configuration of tealdeer. diff --git a/wrapperModules/w/waybar/module.nix b/wrapperModules/w/waybar/module.nix index a10e3e2f..800f9bec 100644 --- a/wrapperModules/w/waybar/module.nix +++ b/wrapperModules/w/waybar/module.nix @@ -4,15 +4,12 @@ lib, ... }: -let - jsonFmt = config.pkgs.formats.json { }; -in { imports = [ wlib.modules.default ]; options = { settings = lib.mkOption { - type = jsonFmt.type; + type = wlib.types.structuredValueWith { typeName = "JSON"; }; default = { }; description = '' Waybar configuration settings. diff --git a/wrapperModules/w/wezterm/module.nix b/wrapperModules/w/wezterm/module.nix index 7cb0b349..706d35bc 100644 --- a/wrapperModules/w/wezterm/module.nix +++ b/wrapperModules/w/wezterm/module.nix @@ -46,7 +46,10 @@ ''; }; options.luaInfo = lib.mkOption { - inherit (pkgs.formats.lua { }) type; + type = wlib.types.structuredValueWith { + typeName = "lua"; + extraValueTypes = lib.types.luaInline; + }; default = { }; description = '' Defines attributes which are converted to Lua. diff --git a/wrapperModules/w/wlr-which-key/module.nix b/wrapperModules/w/wlr-which-key/module.nix index e1b8241b..bb2e77b7 100644 --- a/wrapperModules/w/wlr-which-key/module.nix +++ b/wrapperModules/w/wlr-which-key/module.nix @@ -6,7 +6,6 @@ ... }: let - yamlFmt = pkgs.formats.yaml { }; in { imports = [ wlib.modules.default ]; @@ -19,7 +18,7 @@ in }; settings = lib.mkOption { - type = yamlFmt.type; + type = wlib.types.structuredValueWith { typeName = "YAML 1.1"; }; default = { }; description = '' Configuration for wlr-which-key. diff --git a/wrapperModules/x/xplr/module.nix b/wrapperModules/x/xplr/module.nix index 48d01ddb..deb58580 100644 --- a/wrapperModules/x/xplr/module.nix +++ b/wrapperModules/x/xplr/module.nix @@ -6,7 +6,10 @@ ... }: let - luaType = (pkgs.formats.lua { }).type; + luaType = wlib.types.structuredValueWith { + typeName = "lua"; + extraValueTypes = lib.types.luaInline; + }; enabledDagOf = wlib.types.dagOf // { modules = [ { diff --git a/wrapperModules/y/yazi/module.nix b/wrapperModules/y/yazi/module.nix index 95b7ee36..45e6b70e 100644 --- a/wrapperModules/y/yazi/module.nix +++ b/wrapperModules/y/yazi/module.nix @@ -6,7 +6,10 @@ ... }: let - tomlFmt = pkgs.formats.toml { }; + tomlFmtType = wlib.types.structuredValueWith { + nullable = false; + typeName = "TOML"; + }; in { imports = [ wlib.modules.default ]; @@ -21,10 +24,10 @@ in ''; type = lib.types.submodule { - freeformType = tomlFmt.type; + freeformType = tomlFmtType; options = { mgr = lib.mkOption { - type = tomlFmt.type; + type = tomlFmtType; description = '' Manager settings See @@ -33,7 +36,7 @@ in }; preview = lib.mkOption { - type = tomlFmt.type; + type = tomlFmtType; description = '' Preview settings See @@ -42,7 +45,7 @@ in }; opener = lib.mkOption { - type = tomlFmt.type; + type = tomlFmtType; description = '' Opener settings See @@ -51,7 +54,7 @@ in }; open = lib.mkOption { - type = tomlFmt.type; + type = tomlFmtType; description = '' Open settings See @@ -60,7 +63,7 @@ in }; plugin = lib.mkOption { - type = tomlFmt.type; + type = tomlFmtType; description = '' Plugin settings See @@ -69,7 +72,7 @@ in }; input = lib.mkOption { - type = tomlFmt.type; + type = tomlFmtType; description = '' Input settings See @@ -78,7 +81,7 @@ in }; confirm = lib.mkOption { - type = tomlFmt.type; + type = tomlFmtType; description = '' Confirm settings See @@ -87,7 +90,7 @@ in }; pick = lib.mkOption { - type = tomlFmt.type; + type = tomlFmtType; description = '' Pick settings See @@ -96,7 +99,7 @@ in }; which = lib.mkOption { - type = tomlFmt.type; + type = tomlFmtType; description = '' Which settings See @@ -116,10 +119,10 @@ in ''; type = lib.types.submodule { - freeformType = tomlFmt.type; + freeformType = tomlFmtType; options = { mgr = lib.mkOption { - type = tomlFmt.type; + type = tomlFmtType; description = '' Keymap mgr settings See @@ -129,7 +132,7 @@ in }; tasks = lib.mkOption { - type = tomlFmt.type; + type = tomlFmtType; description = '' Keymap tasks settings See @@ -139,7 +142,7 @@ in }; spot = lib.mkOption { - type = tomlFmt.type; + type = tomlFmtType; description = '' Keymap spot settings See @@ -149,7 +152,7 @@ in }; pick = lib.mkOption { - type = tomlFmt.type; + type = tomlFmtType; description = '' Keymap pick settings See @@ -159,7 +162,7 @@ in }; input = lib.mkOption { - type = tomlFmt.type; + type = tomlFmtType; description = '' Keymap input settings See @@ -169,7 +172,7 @@ in }; confirm = lib.mkOption { - type = tomlFmt.type; + type = tomlFmtType; description = '' Keymap confirm settings See < https://yazi-rs.github.io/docs/configuration/keymap#confirm> @@ -179,7 +182,7 @@ in }; cmp = lib.mkOption { - type = tomlFmt.type; + type = tomlFmtType; description = '' Keymap cmp settings See < https://yazi-rs.github.io/docs/configuration/keymap#cmp> @@ -189,7 +192,7 @@ in }; help = lib.mkOption { - type = tomlFmt.type; + type = tomlFmtType; description = '' Keymap help settings See < https://yazi-rs.github.io/docs/configuration/keymap#help> @@ -209,10 +212,10 @@ in ''; type = lib.types.submodule { - freeformType = tomlFmt.type; + freeformType = tomlFmtType; options = { flavor = lib.mkOption { - type = tomlFmt.type; + type = tomlFmtType; description = '' Theme flawor settings See < https://yazi-rs.github.io/docs/configuration/theme#flavor> @@ -221,7 +224,7 @@ in }; app = lib.mkOption { - type = tomlFmt.type; + type = tomlFmtType; description = '' Theme app settings See < https://yazi-rs.github.io/docs/configuration/theme#app> @@ -230,7 +233,7 @@ in }; mgr = lib.mkOption { - type = tomlFmt.type; + type = tomlFmtType; description = '' Theme mgr settings See < https://yazi-rs.github.io/docs/configuration/theme#mgr> @@ -240,7 +243,7 @@ in }; indicator = lib.mkOption { - type = tomlFmt.type; + type = tomlFmtType; description = '' Theme indicator settings See < https://yazi-rs.github.io/docs/configuration/theme#indicator> @@ -249,7 +252,7 @@ in }; tabs = lib.mkOption { - type = tomlFmt.type; + type = tomlFmtType; description = '' Theme tabs settings See < https://yazi-rs.github.io/docs/configuration/theme#tabs> @@ -258,7 +261,7 @@ in }; mode = lib.mkOption { - type = tomlFmt.type; + type = tomlFmtType; description = '' Theme mode settings See < https://yazi-rs.github.io/docs/configuration/theme#mode> @@ -267,7 +270,7 @@ in }; status = lib.mkOption { - type = tomlFmt.type; + type = tomlFmtType; description = '' Theme status settings See < https://yazi-rs.github.io/docs/configuration/theme#status> @@ -276,7 +279,7 @@ in }; which = lib.mkOption { - type = tomlFmt.type; + type = tomlFmtType; description = '' Theme which settings See < https://yazi-rs.github.io/docs/configuration/theme#which> @@ -285,7 +288,7 @@ in }; confirm = lib.mkOption { - type = tomlFmt.type; + type = tomlFmtType; description = '' Theme confirm settings See < https://yazi-rs.github.io/docs/configuration/theme#confirm> @@ -294,7 +297,7 @@ in }; spot = lib.mkOption { - type = tomlFmt.type; + type = tomlFmtType; description = '' Theme spot settings See < https://yazi-rs.github.io/docs/configuration/theme#spot> @@ -303,7 +306,7 @@ in }; notify = lib.mkOption { - type = tomlFmt.type; + type = tomlFmtType; description = '' Theme notify settings See < https://yazi-rs.github.io/docs/configuration/theme#notify> @@ -312,7 +315,7 @@ in }; pick = lib.mkOption { - type = tomlFmt.type; + type = tomlFmtType; description = '' Theme pick settings See < https://yazi-rs.github.io/docs/configuration/theme#pick> @@ -321,7 +324,7 @@ in }; input = lib.mkOption { - type = tomlFmt.type; + type = tomlFmtType; description = '' Theme input settings See < https://yazi-rs.github.io/docs/configuration/theme#input> @@ -331,7 +334,7 @@ in }; cmp = lib.mkOption { - type = tomlFmt.type; + type = tomlFmtType; description = '' Theme cmp settings See < https://yazi-rs.github.io/docs/configuration/theme#cmp> @@ -340,7 +343,7 @@ in }; tasks = lib.mkOption { - type = tomlFmt.type; + type = tomlFmtType; description = '' Theme tasks settings See < https://yazi-rs.github.io/docs/configuration/theme#tasks> @@ -349,7 +352,7 @@ in }; help = lib.mkOption { - type = tomlFmt.type; + type = tomlFmtType; description = '' Theme help settings See < https://yazi-rs.github.io/docs/configuration/theme#help> @@ -358,7 +361,7 @@ in }; filetype = lib.mkOption { - type = tomlFmt.type; + type = tomlFmtType; description = '' Theme filetype settings See < https://yazi-rs.github.io/docs/configuration/theme#filetype> @@ -367,7 +370,7 @@ in }; icon = lib.mkOption { - type = tomlFmt.type; + type = tomlFmtType; description = '' Theme icon settings See < https://yazi-rs.github.io/docs/configuration/theme#icon> @@ -385,10 +388,10 @@ in See configuration reference at ''; type = lib.types.submodule { - freeformType = tomlFmt.type; + freeformType = tomlFmtType; options = { services = lib.mkOption { - type = tomlFmt.type; + type = tomlFmtType; description = '' Vfs settings See < https://yazi-rs.github.io/docs/configuration/vfs> @@ -407,7 +410,7 @@ in ''; type = lib.types.submodule { - freeformType = tomlFmt.type; + freeformType = tomlFmtType; options = { plugin = lib.mkOption { description = '' @@ -416,9 +419,9 @@ in ''; default = { }; type = lib.types.submodule { - freeformType = tomlFmt.type; + freeformType = tomlFmtType; options.deps = lib.mkOption { - type = lib.types.listOf tomlFmt.type; + type = lib.types.listOf tomlFmtType; default = [ ]; description = '' List of plugins and dependencies.