{ pkgs, config, ... }:
let base16-tmux = config.lib.stylix.colors {
  templateRepo = pkgs.fetchFromGitHub {
    owner = "tinted-theming";
    repo = "base16-tmux";
    sha256 = "1p6czpd9f0sbibdsph1hdw4ljp6zzjij2159bks16wbfbg3p1hhx";
    rev = "3312bb2cbb26db7eeb2d2235ae17d4ffaef5e59b";
  };
};
in
{
  programs.tmux = {
    enable = true;

    clock24 = true; # 24h clock format
    historyLimit = 10000; # increase amount of saved lines

    plugins = with pkgs.tmuxPlugins; [
      sessionist # Nicer workflow for switching around between sessions
      resurrect # Save / restore tmux sessions
      {
        plugin = continuum; # Automatically restore tmux sessions
        extraConfig = ''
          set -g @continuum-restore 'on'
          set -g @continuum-boot 'on'
        '';
      }
    ];

    extraConfig = ''
      # Main config
      source ${./tmux.conf}

      # Theme
      source ${base16-tmux}
    '';
  };

  satellite.persistence.at.state.apps.tmux.directories = [
    ".tmux"
  ];
}