{ config, pkgs, ... }:

{
  services.darkman = {
    enable = true;
    package = config.lib.test.mkStubPackage {
      name = "darkman";
      outPath = "@darkman@";
    };

    settings.lat = 50.8;
    settings.lng = 4.4;
    settings.usegeoclue = true;

    darkModeScripts.color-scheme-dark = ''
      dconf write /org/gnome/desktop/interface/color-scheme "'prefer-dark'"
    '';

    lightModeScripts.color-scheme-light = pkgs.writeScript "my-python-script" ''
      #!${pkgs.python2}/bin/python

      print('Do something!')
    '';
  };

  nmt.script = ''
    serviceFile=$(normalizeStorePaths home-files/.config/systemd/user/darkman.service)
    darkModeScriptFile=$(normalizeStorePaths home-files/.local/share/dark-mode.d/color-scheme-dark)
    lightModeScriptFile=$(normalizeStorePaths home-files/.local/share/light-mode.d/color-scheme-light)

    assertFileExists $serviceFile
    assertFileContent $serviceFile ${builtins.toFile "expected" ''
      [Install]
      WantedBy=graphical-session.target

      [Service]
      BusName=nl.whynothugo.darkman
      ExecStart=@darkman@/bin/darkman run
      Restart=on-failure
      Slice=background.slice
      TimeoutStopSec=15
      Type=dbus

      [Unit]
      BindsTo=graphical-session.target
      Description=Darkman system service
      Documentation=man:darkman(1)
      PartOf=graphical-session.target
      X-Restart-Triggers=/nix/store/00000000000000000000000000000000-darkman-config.yaml
    ''}
    assertFileContent $darkModeScriptFile ${builtins.toFile "expected" ''
      #!/nix/store/00000000000000000000000000000000-bash/bin/bash
      dconf write /org/gnome/desktop/interface/color-scheme "'prefer-dark'"

    ''}
    assertFileContent $lightModeScriptFile ${builtins.toFile "expected" ''
      #!@python@/bin/python

      print('Do something!')
    ''}
  '';
}
