# Zsh shell initalization file

# Export 'SHELL' to child processes
export SHELL

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

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
eval "$(starship init zsh)"

# Set guix reconfigure aliases
alias reconfigure-system="sudo -E guix system -L $HOME/.config/guix/modules reconfigure $HOME/.config/guix/$(hostname).scm"
alias reconfigure-user="guix home -L $HOME/.config/guix/modules reconfigure $HOME/.config/guix/home-config/home-configuration.scm && home-manager switch"

# Set other usefull aliases
alias neo="pfetch"
alias rf="rm -fr" # remove le french hon hon hon
alias config="/usr/bin/git --git-dir=$HOME/.cfg/ --work-tree=$HOME"
alias ls="ls --color=auto"
alias su="doas -s"

alias ptable="node -i -e '$(< $HOME/.scripts/chem.js)'"

# Have manpages use colors
man() {
	env \
	LESS_TERMCAP_md=$'\e[1;36m' \
	LESS_TERMCAP_me=$'\e[0m' \
	LESS_TERMCAP_se=$'\e[0m' \
	LESS_TERMCAP_so=$'\e[1;92m' \
	LESS_TERMCAP_ue=$'\e[0m' \
	LESS_TERMCAP_us=$'\e[1;35m' \
	man "$@"
}

# Enable zsh auto suggestions
autoload compinit && compinit
source $GUIX_PROFILE/share/zsh/zsh-autosuggestions/zsh-autosuggestions.zsh
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=#696e8a"
ZSH_AUTOSUGGEST_STRATEGY=(completion history)

# Enable zsh keybinds for home, end, and other movement 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 SETUP FOR SSH
export GPG_TTY=$(tty)

# ricing
pfetch