{
  lib,
  pkgs,
  assets,
  ...
}:
{

  programs.zsh = {
    enable = true;
    defaultKeymap = lib.mkDefault "viins";
  };

  programs.bash = {
    enable = true;
    bashrcExtra = ''
      set -o vi
    '';
  };

  # to prevent strange errors
  programs.kitty.enable = true;

  # a better cat
  programs.bat = {
    enable = true;
    #config.theme = "gruvbox-light";
  };

  home.shellAliases.cat = "${pkgs.bat}/bin/bat --theme='gruvbox-light'";
  home.shellAliases.llt = "${pkgs.eza}/bin/exa -a --tree";

  # use z instead of cd
  # use zi to fuzzy search through all registered directories
  programs.zoxide = {
    enable = true;
    enableZshIntegration = true;
  };

}