{ pkgs, lib, config, ... }:
{
programs.bash = {
  shellAliases = {
    grep = "grep --color";
    md-toc = "grep '^#\\+' --color";
    mpl = "mplayer";
    rsync = "rsync --no-inc-recursive --info=progress2 --inplace --partial";
  };
  initExtra = ''
    shopt -s globstar
    # Disable ctrl-s/ctrl-q flow control
    stty -ixon
    vim-git () { $EDITOR $(git diff-tree --no-commit-id --name-only -r "$@"); }
    zfs-mount () { for d in $(zfs list -rH -o name "$@"); do sudo zfs mount -l "$d"; done; }
  '';
};
programs.direnv.enableBashIntegration = true;
programs.broot.enableBashIntegration = true;
home.sessionVariables = {
  PS1 = ''\[\033[1;32m\]\[\e]0;\u@\h: \w\a\]\W\[\033[0m\] \$(e=\$?; if [ \$e != 0 ]; then echo '\[\e[0;91m\]'\$e'\[\e[0m\]'; fi)\$ '';
};
home.file.".inputrc".text = ''
  "\e[1~": beginning-of-line
  "\e[4~": end-of-line
  "\e[7~": beginning-of-line
  "\e[8~": end-of-line
  "\eOH": beginning-of-line
  "\eOF": end-of-line
  "\e[H": beginning-of-line
  "\e[F": end-of-line
  "\e[1;5C": forward-word
  "\e[1;5D": backward-word
  "\e[5C": forward-word
  "\e[5D": backward-word
  "\e\e[C": forward-word
  "\e\e[D": backward-word
'';
}