{
  lib,
  config,
  ...
}: let
  cfg = config.youthlic.programs.atuin;
in {
  options = {
    youthlic.programs.atuin = {
      enable = lib.mkEnableOption "atuin";
    };
  };
  config = lib.mkMerge [
    (lib.mkIf cfg.enable {
      programs.atuin = {
        daemon = {
          enable = true;
          logLevel = "trace";
        };
        enable = true;
        flags = [
          "--disable-up-arrow"
        ];
        settings = {
          auto_sync = true;
          update_check = false;
          style = "full";
          history_filter = [
            "^ .*"
          ];
          enter_accept = false;
          keymap_mode = "vim-insert";
          sync.records = true;
        };
      };
    })
    (lib.mkIf config.youthlic.programs.fish.enable {
      programs.atuin.enableFishIntegration = true;
    })
    (lib.mkIf config.youthlic.programs.bash.enable {
      programs.atuin.enableBashIntegration = true;
    })
  ];
}
