diff --git a/modules/programs/zellij.nix b/modules/programs/zellij.nix index 95256530..48c4fe31 100644 --- a/modules/programs/zellij.nix +++ b/modules/programs/zellij.nix @@ -274,12 +274,15 @@ in { "zellij/config.yaml" = - mkIf (cfg.settings != { } && (lib.versionOlder cfg.package.version "0.32.0")) + mkIf ((lib.versionOlder cfg.package.version "0.32.0") && cfg.settings != { }) { source = yamlFormat.generate "zellij.yaml" cfg.settings; }; "zellij/config.kdl" = - mkIf (cfg.settings != { } && (lib.versionAtLeast cfg.package.version "0.32.0")) + mkIf + ( + (lib.versionAtLeast cfg.package.version "0.32.0") && (cfg.settings != { } || cfg.extraConfig != "") + ) { text = (lib.hm.generators.toKDL { } cfg.settings) diff --git a/tests/modules/programs/zellij/config-extra_config.nix b/tests/modules/programs/zellij/config-extra_config.nix new file mode 100644 index 00000000..9cdf5add --- /dev/null +++ b/tests/modules/programs/zellij/config-extra_config.nix @@ -0,0 +1,29 @@ +{ + programs = { + zellij = { + enable = true; + + # No `settings` + extraConfig = '' + This_could_have_been_json { + } + ''; + }; + }; + + test.stubs = { + zellij = { }; + }; + + nmt.script = '' + assertFileExists home-files/.config/zellij/config.kdl + + assertFileContains \ + home-files/.config/zellij/config.kdl \ + '// extraConfig' + + assertFileContains \ + home-files/.config/zellij/config.kdl \ + 'This_could_have_been_json' + ''; +} diff --git a/tests/modules/programs/zellij/config.nix b/tests/modules/programs/zellij/config-mixed.nix similarity index 97% rename from tests/modules/programs/zellij/config.nix rename to tests/modules/programs/zellij/config-mixed.nix index c7ead703..8ca6d710 100644 --- a/tests/modules/programs/zellij/config.nix +++ b/tests/modules/programs/zellij/config-mixed.nix @@ -1,5 +1,3 @@ -{ lib, ... }: - { programs = { zellij = { diff --git a/tests/modules/programs/zellij/config-settings.nix b/tests/modules/programs/zellij/config-settings.nix new file mode 100644 index 00000000..68903b87 --- /dev/null +++ b/tests/modules/programs/zellij/config-settings.nix @@ -0,0 +1,24 @@ +{ + programs = { + zellij = { + enable = true; + + settings = { + default_layout = "welcome"; + }; + # No extraConfig + }; + }; + + test.stubs = { + zellij = { }; + }; + + nmt.script = '' + assertFileExists home-files/.config/zellij/config.kdl + + assertFileContains \ + home-files/.config/zellij/config.kdl \ + 'default_layout "welcome"' + ''; +} diff --git a/tests/modules/programs/zellij/default.nix b/tests/modules/programs/zellij/default.nix index 63803569..90b939ce 100644 --- a/tests/modules/programs/zellij/default.nix +++ b/tests/modules/programs/zellij/default.nix @@ -1,5 +1,7 @@ { - zellij-config = ./config.nix; + zellij-config-mixed = ./config-mixed.nix; + zellij-config-settings = ./config-settings.nix; + zellij-config-extra_config = ./config-extra_config.nix; zellij-enable-shells = ./enable-shells.nix; zellij-layout = ./layout.nix; zellij-theme = ./theme.nix;