You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

107 lines
2.6 KiB
Bash

#
# .zshrc - started by panki on 20200226
#
fpath+=($HOME/.zsh/pure)
autoload -Uz compinit promptinit
autoload -z edit-command-line
zle -N edit-command-line
compinit
promptinit
# fix background color being black...
PS1=${PS1//\%K{black}/%k}
# Return Code on right prompt
RPS1='[%F{yellow}%?%f]'
# history stuff
HISTSIZE=9000
SAVEHIST=9000
setopt appendhistory
bindkey -e
path+=('/home/panki/.local/bin')
# thanks to slashbeast for these ones
# Fancy cd that can cd into parent directory, if trying to cd into file.
# useful with ^F fuzzy searcher.
cd() {
if (( $+2 )); then
builtin cd "$@"
return 0
fi
if [ -f "$1" ]; then
echo "${yellow}cd ${1:h}${NC}" >&2
builtin cd "${1:h}"
else
builtin cd "${@}"
fi
}
alias sudo='sudo --preserve-env=HOME'
alias grep='grep --colour=auto'
alias diff='diff --color=auto'
alias ls='ls --color=auto'
alias ll='ls -alFh'
alias e='explorer.exe .'
alias nmap='/mnt/c/Program\ Files\ \(x86\)/Nmap/nmap.exe'
alias sudo='sudo '
alias ds='dig +short'
alias kw='date +%V'
lt () { ls -lt ${1} | head }
# define slash and underscore as word separators
WORDCHARS=${WORDCHARS/\/}
WORDCHARS=${WORDCHARS/_}
# vi stuff
if [[ "$(command -v nvim)" ]]; then
export EDITOR='nvim'
export MANPAGER='nvim +Man!'
export MANWIDTH=999
alias vi='nvim'
alias vim='vi'
else
export EDITOR='vim'
fi
# jump to man flag
function fman () { man -P "less -p \"^ +$2\"" $1 }
# cheat - display text reminders
function cheat() {
bat -l md -p ~/cheat/cheats/"$1" --color always --theme="Dracula" | tr -d '`'
}
compdef '_files -W "/home/panki/cheat/cheats"' cheat
# tokens etc
test -f "$HOME/.exports" && source "$HOME/.exports"
# wezterm
source "$HOME/.zsh/wezterm.sh"
if [[ $UID -eq 0 ]]; then
HISTFILE="${HISTFILE%_history}_root_history"
prompt fade red
else
HISTFILE=~/.histfile
prompt pure
zstyle :prompt:pure:path color green
fi
zstyle :prompt:pure:host color yellow
zstyle :prompt:pure:user color cyan
ICONS=(😈 💀 🤡 👻 👽 👾 🤖 😺 💋 💥 🦥 🐣 🐧 🐸 🐢 🐍 🐳 🌴 🍉 🍎 🍒 🥝 🥥 🥨 🍕 ☕ 🚨 🚀 🛸 🪐 🌠 🌙 🌞 🌈 ⚡ 🔥 💧 ✨ 🎉 💎 💾 📎 💣 📡)
export PURE_PROMPT_SYMBOL="$(shuf -n1 -e "${ICONS[@]}")"
__wezterm_set_user_var "ICON" $PURE_PROMPT_SYMBOL
# autocomplete ssh using known_hosts
zstyle -e ':completion:*:(ssh|scp|sftp|rsh|rsync):hosts' hosts 'reply=(${=${${(f)"$(cat {/etc/ssh_,~/.ssh/known_}hosts(|2)(N) /dev/null)"}%%[# ]*}//,/ })'
# local specific
local_conf="$HOME/.zsh/$(hostname).zsh"
test -f $local_conf && source $local_conf