# zsh initalization file

# export 'SHELL' and 'EDITOR' to child processes
export SHELL
export EDITOR="nvim"

if [[ $- != *i* ]]
then
    # We are being invoked from a non-interactive shell.  If this
    # is an SSH session (as in "ssh host command"), source
    # /etc/profile so we get PATH and other essential variables.
    [[ -n "$SSH_CLIENT" ]] && source /etc/profile

    # Don't do anything else.
    return
fi

# update PATH
PATH=$PATH:$HOME/.local/bin
PATH=$PATH:$HOME/.cargo/bin

# vim mode >:)
# no ryan i am not copying you
set -o vi
set show-mode-in-prompt on

# Set shell prompt using starship
if command -v "starship" > /dev/null; then
    eval "$(starship init zsh)"
else
    export PS1="$$USER: "
fi

# aliases
alias rf="rm -fr" # remove le french hon hon hon
alias ls="ls --color=auto"
alias ip="ip --color=auto"
alias grep="grep --color=auto"
alias diff="diff --color=auto"
alias vim="nvim"
alias ssh='TERM=xterm-256color ssh' # xterm-kitty bad

# nix rebuild
alias reconfigure="sudo nixos-rebuild switch --flake ~/.config/nix#$(hostname)"

# manpages
export LESS_TERMCAP_md=$'\e[1;36m'
export LESS_TERMCAP_me=$'\e[0m'
export LESS_TERMCAP_se=$'\e[0m'
export LESS_TERMCAP_so=$'\e[1;92m'
export LESS_TERMCAP_ue=$'\e[0m'
export LESS_TERMCAP_us=$'\e[1;35m'
export GROFF_NO_SGR=1

# compinit
autoload compinit && compinit

# keybinds
bindkey "\e[1;5D" backward-word
bindkey "\e[1;5C" forward-word
bindkey "\e[3;5~" kill-word
bindkey "\C-_"    backward-kill-word
bindkey "\e[3~" delete-char
bindkey "\e[H"  beginning-of-line
bindkey "\e[F"  end-of-line
bindkey "\e\d"  undo

# gpg
export GPG_TTY=$(tty)
export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)

# ricing
pfetch