diff --git a/modules/services/avizo.nix b/modules/services/avizo.nix index 11d7d7524..70a0e0b64 100644 --- a/modules/services/avizo.nix +++ b/modules/services/avizo.nix @@ -47,10 +47,11 @@ in { assertions = [ (hm.assertions.assertPlatform "services.avizo" pkgs platforms.linux) ]; - home.packages = [ cfg.package ]; + xdg.configFile."avizo/config.ini" = mkIf (cfg.settings != { }) { + source = settingsFormat.generate "avizo-config.ini" cfg.settings; + }; - xdg.configFile."avizo/config.ini".source = - settingsFormat.generate "avizo-config.ini" cfg.settings; + home.packages = [ cfg.package ]; systemd.user = { services.avizo = { diff --git a/tests/default.nix b/tests/default.nix index f120d692f..2ccf27d51 100644 --- a/tests/default.nix +++ b/tests/default.nix @@ -169,6 +169,7 @@ import nmt { ./modules/programs/wlogout ./modules/programs/xmobar ./modules/programs/yt-dlp + ./modules/services/avizo ./modules/services/barrier ./modules/services/borgmatic ./modules/services/cachix-agent diff --git a/tests/modules/services/avizo/default.nix b/tests/modules/services/avizo/default.nix new file mode 100644 index 000000000..598f1cc51 --- /dev/null +++ b/tests/modules/services/avizo/default.nix @@ -0,0 +1,4 @@ +{ + avizo-with-settings = ./with-settings.nix; + avizo-without-settings = ./without-settings.nix; +} diff --git a/tests/modules/services/avizo/with-settings.nix b/tests/modules/services/avizo/with-settings.nix new file mode 100644 index 000000000..4c54f261d --- /dev/null +++ b/tests/modules/services/avizo/with-settings.nix @@ -0,0 +1,54 @@ +{ ... }: + +{ + services.avizo = { + enable = true; + settings = { + default = { + time = 1.0; + y-offset = 0.5; + fade-in = 0.1; + fade-out = 0.2; + padding = 10; + }; + }; + }; + + test.stubs.avizo = { }; + + nmt.script = '' + serviceFile=home-files/.config/systemd/user/avizo.service + assertFileExists $serviceFile + assertFileContent $serviceFile ${ + builtins.toFile "expected" '' + [Install] + WantedBy=graphical-session.target + + [Service] + ExecStart=@avizo@/bin/avizo-service + Restart=always + Type=simple + + [Unit] + After=graphical-session.target + ConditionEnvironment=WAYLAND_DISPLAY + Description=Volume/backlight OSD indicator + Documentation=man:avizo(1) + PartOf=graphical-session.target + '' + } + + configFile=home-files/.config/avizo/config.ini + assertFileExists $configFile + assertFileContent $configFile ${ + builtins.toFile "expected" '' + [default] + fade-in=0.100000 + fade-out=0.200000 + padding=10 + time=1.000000 + y-offset=0.500000 + '' + } + ''; +} diff --git a/tests/modules/services/avizo/without-settings.nix b/tests/modules/services/avizo/without-settings.nix new file mode 100644 index 000000000..49a960614 --- /dev/null +++ b/tests/modules/services/avizo/without-settings.nix @@ -0,0 +1,33 @@ +{ ... }: + +{ + services.avizo.enable = true; + + test.stubs.avizo = { }; + + nmt.script = '' + serviceFile=home-files/.config/systemd/user/avizo.service + assertFileExists $serviceFile + assertFileContent $serviceFile ${ + builtins.toFile "expected" '' + [Install] + WantedBy=graphical-session.target + + [Service] + ExecStart=@avizo@/bin/avizo-service + Restart=always + Type=simple + + [Unit] + After=graphical-session.target + ConditionEnvironment=WAYLAND_DISPLAY + Description=Volume/backlight OSD indicator + Documentation=man:avizo(1) + PartOf=graphical-session.target + '' + } + + configFile=home-files/.config/avizo/config.ini + assertPathNotExists $configFile + ''; +}