{ pkgs, config, ... }:

/*

# via https://distrobox.it/compatibility/#containers-distros
use --nvidia for cuda support

distrobox create --name alpine --init --yes --image docker.io/libary/alpine:latest
distrobox create --name arch   --init --yes --image docker.io/libary/archlinux:latest
distrobox create --name debian --init --yes --image docker.io/libary/debian:testing
distrobox create --name fedora --init --yes --image quay.io/fedora/fedora:rawhide
distrobox create --name gentoo --init --yes --image docker.io/gentoo/stage3:latest
#distrobox create --name ubuntu --init --yes --image quay.io/toolbx/ubuntu-toolbox:latest

*/

{

  assertions = [
    {
      assertion = config.virtualisation.docker.enable || config.virtualisation.podman.enable;
      message = "distrobox requires either podman or docker";
    }
  ];

  environment.systemPackages = [
    pkgs.distrobox
  ];
  # ++ lib.optionals (!config.virtualisation.docker.enable && !config.virtualisation.podman.enable) [
  #  pkgs.lilipod
  #];

  # update periodically
  systemd.user = {
    timers."distrobox-update" = {
      enable = config.system.autoUpgrade.enable;
      wantedBy = ["timers.target"];
      timerConfig = {
        OnBootSec = "1h";
        OnUnitActiveSec = "1d";
        Unit = "distrobox-update.service";
      };
    };

    services."distrobox-update" = {
      enable = config.system.autoUpgrade.enable;
      script = ''
        ${pkgs.distrobox}/bin/distrobox upgrade --all
      '';
      serviceConfig = {
        Type = "oneshot";
      };
    };
  };

}