main
 1{lib, ...}: {
 2  den.aspects.core.shell.atuin = {
 3    includes = [
 4      ({user, ...}: {
 5        persistUser = {
 6          directories = lib.optional (!(lib.elem "homeManager" user.classes)) ".local/share/atuin";
 7        };
 8        persistHome = {config, ...}: {
 9          directories = ["${config.xdg.dataHome}/atuin"];
10        };
11      })
12    ];
13
14    nixos = {
15      programs.atuin = {
16        enable = true;
17        settings = {
18          style = "full";
19          inline_height = 32;
20          keymap_mode = "vim-normal";
21        };
22      };
23    };
24
25    homeManager = {
26      programs.atuin = {
27        enable = true;
28        enableBashIntegration = true;
29        enableFishIntegration = true;
30      };
31    };
32  };
33
34  den.aspects.core.shell.atuin.themes = {
35    catppuccin = {
36      homeManager = {pkgs, ...}: {
37        programs.atuin = {
38          settings.theme.name = "catppuccin-mocha-mauve";
39        };
40
41        xdg.configFile = {
42          "atuin/themes/catppuccin-mocha-mauve.toml".source = pkgs.fetchurl {
43            url = "https://github.com/catppuccin/atuin/raw/68aa64b77573c235044b614e752a781701af4eec/themes/mocha/catppuccin-mocha-mauve.toml";
44            hash = "sha256-X66L7YmWQ4ClPeQoFhXkkWXPrmpLwWfHcDNbvnc+K3g=";
45          };
46        };
47      };
48    };
49  };
50}