{ lib, ... }:

{
  programs = {
    atuin.enable = true;
    atuin.flags = [
      "--disable-ctrl-r"
      "--disable-up-arrow"
    ];
    bash = {
      enable = true;
      enableCompletion = false;
    };
    zsh.enable = true;
    fish.enable = true;
  };

  # Needed to avoid error with dummy fish package.
  xdg.dataFile."fish/home-manager_generated_completions".source = lib.mkForce (
    builtins.toFile "empty" ""
  );

  nmt.script = ''
    assertFileExists home-files/.bashrc
    assertFileContains \
      home-files/.bashrc \
      "eval \"\$(@atuin@/bin/atuin init bash --disable-ctrl-r --disable-up-arrow)\""

    assertFileExists home-files/.zshrc
    assertFileContains \
      home-files/.zshrc \
      "eval \"\$(@atuin@/bin/atuin init zsh --disable-ctrl-r --disable-up-arrow)\""
    assertFileExists home-files/.config/fish/config.fish
    assertFileContains \
      home-files/.config/fish/config.fish \
      "@atuin@/bin/atuin init fish --disable-ctrl-r --disable-up-arrow | source"
  '';
}
