dotfiles/.zshrc

94 lines
2.5 KiB
Bash

# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
# Initialization code that may require console input (password prompts, [y/n]
# confirmations, etc.) must go above this block; everything else may go below.
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi
# some envs
HISTFILE=~/.histfile
HISTSIZE=2000
SAVEHIST=2000
export PATH=$HOME/bin:$HOME/.local/bin:/usr/local/bin:/sbin:/usr/sbin:$PATH
export EDITOR="vim"
export PAGER="less"
export LESS_TERMCAP_mb=$'\e[1;32m'
export LESS_TERMCAP_md=$'\e[1;32m'
export LESS_TERMCAP_me=$'\e[0m'
export LESS_TERMCAP_se=$'\e[0m'
export LESS_TERMCAP_so=$'\e[01;35m'
export LESS_TERMCAP_ue=$'\e[0m'
export LESS_TERMCAP_us=$'\e[1;4;34m'
# customs
setopt appendhistory autocd extendedglob nomatch notify
unsetopt beep
bindkey -v
zstyle :compinstall filename '/home/simon/.zshrc'
zstyle ':completion:*' menu select
setopt COMPLETE_ALIASES
autoload -Uz compinit promptinit
compinit
promptinit
# change text color based on hostname (256 colors)
if [[ "$HOST" == arch ]]; then
text='243' # light gray
elif [[ "$HOST" == pi ]]; then
text='124' # dark red
elif [[ "$HOST" == blackhole ]]; then
text='28' # dark green
elif [[ "$HOST" =~ fra1 ]]; then
text='3' # dark yellow
else
text='246' # gray
fi
# change prompt color of '$|%' based on euid
if [[ $EUID -eq 0 ]]; then
prompt='160' # light read
else
prompt='27' # dark blue
fi
PS1="[%F{"$text"}%n@%m%f %1~%f]%(?..%F{124} ●) %F{"$prompt"}%%%f "
# sourcing things
if [[ -f .zsh_aliases ]]; then
source .zsh_aliases
fi
if [[ -f .zsh_aliases_extra ]]; then
source .zsh_aliases_extra
fi
if [[ -f .zsh_functions ]]; then
source .zsh_functions
fi
if [[ -f .zsh_functions_extra ]]; then
source .zsh_functions_extra
fi
if [ -f ~/script/login.sh ]; then
/bin/bash $HOME/script/login.sh
fi
# plugins
if [ -f /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh ]; then
source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
fi
# key bindings
bindkey "${terminfo[khome]}" beginning-of-line
bindkey "${terminfo[kend]}" end-of-line
# attach to tmux or create main
if [[ -z "$TMUX" ]] && [ "$SSH_CONNECTION" != "" ]; then
TERM=xterm
tmux -u new-session -A -s main
fi
source /usr/share/zsh-theme-powerlevel10k/powerlevel10k.zsh-theme
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh