{
  lib,
  pkgs,
  ...
}:
{
  options.shellAliases = lib.mkOption {
    type = lib.types.attrs;
    default = {
      e = "exit";
      ls = "eza --icons=always --no-quotes";
      tree = "eza --icons=always --tree --no-quotes";
      cat = "bat --theme=base16 --color=always --paging=never --tabs=2 --wrap=never --plain";
      mkdir = "mkdir -p";
      rm = "${pkgs.rmtrash}/bin/rmtrash";
      rmdir = "${pkgs.rmtrash}/bin/rmdirtrash";
      frm = "${pkgs.coreutils}/bin/rm";
      frmdir = "${pkgs.coreutils}/bin/rmdir";
      poweroff = "sudo poweroff";
      shutdown = "sudo poweroff";
      reboot = "sudo reboot";

      nix-shell = "nix-shell --command fish";

      # git
      ga = "git add";
      gc = "git commit";
      gp = "git push";
      gpl = "git pull";
      gs = "git status";
      gl = "git log";
      gd = "git diff";
      gf = "git fetch";
      gm = "git merge";
      gsw = "git switch";
      gco = "git checkout";
      gcb = "git checkout -b";
      gbr = "git branch";
      grs = "git reset HEAD~1";
      grh = "git reset --hard HEAD~1";
      gaa = "git add .";
      gcm = "git commit -m";
    };
  };
}
