{
  config,
  pkgs,
  lib,
  ...
}:
with lib; let
  cfg = config.myHome.shell.atuind;
in {
  options.myHome.shell.atuind = {
    enable = mkEnableOption "atuind";
  };

  config = mkMerge [
    (mkIf cfg.enable {
      systemd.user.services.atuind = {
        Install = {
          WantedBy = ["default.target"];
        };
        Unit = {
          After = ["network.target"];
        };
        Service = {
          Environment = "ATUIN_LOG=info";
          ExecStart = "${pkgs.unstable.atuin}/bin/atuin daemon";
          # Remove the socket file if the daemon is not running.
          # Unexpected shutdowns may have left this file here.
          ExecStartPre = "/run/current-system/sw/bin/bash -c '! pgrep atuin && /run/current-system/sw/bin/rm -f ~/.local/share/atuin/atuin.sock'";
        };
      };
    })
  ];
}