{
  name = "fish";

  nodes.machine =
    { pkgs, ... }:

    {
      programs.fish.enable = true;
      environment.systemPackages = with pkgs; [
        # coreutils-full (not coreutils) so that man pages are available
        # for completion generation
        coreutils-full
        procps # kill collides with coreutils' to test https://github.com/NixOS/nixpkgs/issues/56432
      ];

      # Avoid slow man cache build
      documentation.man.enable = false;
    };

  testScript =
    #python
    ''
      start_all()
      machine.wait_for_file("/etc/fish/generated_completions/chmod.fish")
      machine.wait_for_file("/etc/fish/generated_completions/kill.fish")
      machine.succeed(
          "fish -ic 'echo $fish_complete_path' | grep -q '/share/fish/vendor_completions.d /etc/fish/generated_completions /root/.cache/fish/generated_completions$'"
      )
      machine.wait_for_file("/etc/fish/nixos-env-preinit.fish")
      machine.succeed(
          "env -u __NIXOS_SET_ENVIRONMENT_DONE fish -lc 'set -q __NIXOS_SET_ENVIRONMENT_DONE'"
      )
      machine.wait_for_file("/etc/fish/config.fish")
      config = machine.succeed("fish_indent -c /etc/fish/config.fish")
    '';
}
