{
  pkgs,
  ...
}:
{
  home.packages = with pkgs; [
    lazygit
    alejandra
  ];

  home = {
    username = "rhizome";
    homeDirectory = "/home/rhizome";
  };

  programs.direnv = {
    enable = true;
    nix-direnv = {
      enable = true;
    };
  };

  programs.git = {
    enable = true;
    userName = "rhizome";
    userEmail = "filament@rhizome.tf";
  };

  programs.fzf = {
    enable = true;
    enableZshIntegration = true;
  };

  programs.helix = {
    enable = true;
    settings = {
      theme = "base16_terminal";
      editor.lsp.display-messages = true;
    };
  };

  programs.zsh = {
    enable = true;
    enableAutosuggestions = true;
    enableCompletion = true;
    enableSyntaxHighlighting = true;
    enableVteIntegration = true;
    autocd = true;
    defaultKeymap = "viins";
    initExtra = ''
         [[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
      alias ...='cd ../..'
      alias ....='cd ../../..'
      alias .....='cd ../../../..'
      alias chmox='chmod +x'
      alias gs='git status'
      alias gcl='git clone'
      alias ga='git add'
      alias gcb='git checkout -b'
      alias gco='git checkout'
      alias gl='git pull'
      alias gp='git push'
      alias gd='git diff'
      alias gcam='git commit -am'
      alias gcm='git commit -m'
      alias gr='git restore'
      alias gm='git merge'
      alias l='exa -lh --group-directories-first --icons --color=always'
      alias la='exa -lha --group-directories-first --icons --color=always'
      eval "$(zoxide init zsh)"
    '';
    plugins = [
      {
        name = "powerlevel10k";
        src = pkgs.zsh-powerlevel10k;
        file = "share/zsh-powerlevel10k/powerlevel10k.zsh-theme";
      }
      {
        name = "zsh-vi-mode";
        src = pkgs.zsh-vi-mode;
        file = "share/zsh-vi-mode/zsh-vi-mode.zsh";
      }
      {
        name = "zsh-autopair";
        src = pkgs.zsh-autopair;
        file = "share/zsh-autopair/zsh-autopair.zsh";
      }
      {
        name = "zsh-completions";
        src = pkgs.zsh-completions;
        file = "share/zsh-completions/zsh-completions.zsh";
      }
      {
        name = "zsh-command-time";
        src = pkgs.zsh-command-time;
        file = "share/zsh-completions/zsh-command-time.zsh";
      }
      {
        name = "zsh-autocomplete";
        src = pkgs.zsh-autocomplete;
        file = "share/zsh-autocomplete/zsh-autocomplete.zsh";
      }
      {
        name = "zsh-fast-syntax-highlighting";
        src = pkgs.zsh-fast-syntax-highlighting;
        file = "share/zsh-fast-syntax-highlighting/zsh-fast-syntax-highlighting.zsh";
      }
      {
        name = "zsh-nix-shell";
        src = pkgs.zsh-nix-shell;
        file = "share/zsh-nix-shell/zsh-nix-shell.zsh";
      }
      {
        name = "any-nix-shell";
        src = pkgs.any-nix-shell;
        file = "share/any-nix-shell/any-nix-shell.zsh";
      }
      {
        name = "nix-zsh-completions";
        src = pkgs.nix-zsh-completions;
        file = "share/nix-zsh-completions/nix-zsh-completions.zsh";
      }
    ];
  };

  home.stateVersion = "23.05";
}
