-
Notifications
You must be signed in to change notification settings - Fork 0
/
zshrc
109 lines (87 loc) · 3.48 KB
/
zshrc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# Path to your oh-my-zsh installation.
[ -d "$HOME/.oh-my-zsh" ] && export ZSH="$HOME/.oh-my-zsh"
export PATH=$PATH:~/.scripts:~/.local/bin
command -v go > /dev/null 2>&1 && export GOPATH=$(go env GOPATH) && export PATH=$PATH:$GOPATH/bin
# Old prompt; leaving here for now
# PROMPT="%F{red}[%F{yellow}%n%F{green}@%F{blue}%m %F{5}%~%F{red}]%f$ "
ZSH_THEME="typewritten/typewritten"
TYPEWRITTEN_DISABLE_RETURN_CODE=true
TYPEWRITTEN_RELATIVE_PATH="adaptive"
TYPEWRITTEN_LEFT_PROMPT_PREFIX_FUNCTION=(echo "%F{red}$(whoami)"%F{yellow}@%F{green}"$(hostname -s)%f")
unsetopt beep
setopt appendhistory autocd
HISTFILE=~/.cache/zsh/history
HISTSIZE=100000
SAVEHIST=$HISTSIZE
setopt EXTENDED_HISTORY # Write the history file in the ":start:elapsed;command" format.
setopt INC_APPEND_HISTORY # Write to the history file immediately, not when the shell exits.
setopt SHARE_HISTORY # Share history between all sessions.
setopt HIST_EXPIRE_DUPS_FIRST # Expire duplicate entries first when trimming history.
setopt HIST_IGNORE_DUPS # Don't record an entry that was just recorded again.
setopt HIST_IGNORE_ALL_DUPS # Delete old recorded entry if new entry is a duplicate.
setopt HIST_FIND_NO_DUPS # Do not display a line previously found.
setopt HIST_IGNORE_SPACE # Don't record an entry starting with a space.
setopt HIST_SAVE_NO_DUPS # Don't write duplicate entries in the history file.
setopt HIST_REDUCE_BLANKS # Remove superfluous blanks before recording entry.
setopt HIST_VERIFY # Don't execute immediately upon history expansion.
HYPHEN_INSENSITIVE="true"
DISABLE_UNTRACKED_FILES_DIRTY="true"
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(git zsh-syntax-highlighting)
export VISUAL=nvim
export EDITOR="$VISUAL"
export LESS="-FRX"
which R &>/dev/null && alias r="R -q --no-save"
which exa &>/dev/null && alias ls="exa"
alias ll="ls -la"
alias e="exit"
alias v="vim"
alias n="nvim"
alias vim="nvim"
alias sv="sudo vim"
alias sn="sudo nvim"
alias f='nvim $(fzf)'
alias ssh="env TERM=xterm-256color ssh"
# TODO: Arch environment only
alias i="yay -S"
command -v nodenv > /dev/null 2>&1 && eval "$(nodenv init -)"
# Set QT theme if in GNOME
[ "$XDG_CURRENT_DESKTOP" = "KDE" ] || [ "$XDG_CURRENT_DESKTOP" = "GNOME" ] || export QT_QPA_PLATFORMTHEME="qt5ct"
# Load oh-my-zsh
[ -d "$HOME/.oh-my-zsh" ] && source $ZSH/oh-my-zsh.sh || echo "oh-my-zsh not found"
# Stripe stuff
if [[ "$HOST" == st-kyeb* ]]; then
autoload -Uz compinit; compinit
autoload -Uz bashcompinit; bashcompinit
source ~/.bash_profile
source ~/.bashrc
compdef _git stripe-git=git
export PATH=$PATH:$HOME/stripe/scripts:$HOME/stripe/gh-cli/bin:$HOME/stripe/work/exe
source ~/stripe/scripts/stripe-aliases.zsh
fi
# WSL setup
if [[ -d /mnt/wsl ]]; then
echo 'setting up WSL display...'
# https://stackoverflow.com/a/64233268
export DISPLAY_NUMBER="0.0"
export DISPLAY=$(grep -m 1 nameserver /etc/resolv.conf | awk '{print $2}'):$DISPLAY_NUMBER
export LIBGL_ALWAYS_INDIRECT=1
fi
# macOS setup stuff
if [[ -d /opt/homebrew ]]; then
eval "$(/opt/homebrew/bin/brew shellenv)"
fi
set -o vi
# Set up fzf
export FZF_DEFAULT_COMMAND='rg --files'
if [ -f ~/.fzf.zsh ]; then
source ~/.fzf.zsh
fi
if [ -f /usr/share/fzf/key-bindings.zsh ]; then
source /usr/share/fzf/key-bindings.zsh
source /usr/share/fzf/completion.zsh
fi
if command -v zoxide > /dev/null 2>&1; then
eval "$(zoxide init zsh)"
fi