summaryrefslogtreecommitdiff
path: root/zsh/.zshrc
blob: 1c13e80026e2cd978ea783296ecb8bb3f4d793db (plain)
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
HISTFILE="$ZDOTDIR"/hist
SAVEHIST=1000
HISTSIZE=1000
setopt APPEND_HISTORY
setopt HIST_FIND_NO_DUPS
setopt HIST_EXPIRE_DUPS_FIRST
setopt HIST_VERIFY
setopt HIST_IGNORE_DUPS
setopt INC_APPEND_HISTORY
setopt HIST_REDUCE_BLANKS

if [ -f "$XDG_CONFIG_HOME"/sh/aliases ]; then
	source "$XDG_CONFIG_HOME"/sh/aliases
fi
if [ -f "$XDG_CONFIG_HOME"/sh/functions ]; then
	source "$XDG_CONFIG_HOME"/sh/functions
fi

bindkey "^?" backward-delete-char

# bindkey -v

if [ "$TERM" = "st-256color" ] || [ "$TERM" = "xterm-256color" ]; then
  function zle-line-init () { echoti smkx }
  function zle-line-finish () { echoti rmkx }

  zle -N zle-line-init
  zle -N zle-line-finish
fi

which pacman >/dev/null && COLOR1="cyan"
which apt >/dev/null && COLOR1="green"
which syspatch >/dev/null && COLOR1="red"

MYPROMPT='%B%F{'"$COLOR1"'}[%n@%m]:%f%F{white}%~%f%F{'"$COLOR1"'}%#%f%b '
function zle-line-init zle-keymap-select {
	VIM_PROMPT="%B%F{blue}[%n@%m]:%f%F{white}%~%f%F{blue}%#%f%b "
	PS1="${${KEYMAP/vicmd/$VIM_PROMPT}/main/$MYPROMPT}"
	#PS1="$PROMPT $KEYMAP"
	zle reset-prompt
}

zle -N zle-line-init
zle -N zle-keymap-select
export KEYTIMEOUT=1

autoload -Uz compinit promptinit
compinit -d $CONFIG/zcompdump
promptinit
autoload -Uz up-line-or-beginning-search down-line-or-beginning-search
zle -N up-line-or-beginning-search
zle -N down-line-or-beginning-search

zstyle ':completion:*' menu select
zstyle ':completion::complete:*' gain-privileges 1
zstyle ':completion:*' rehash true

setopt COMPLETE_ALIASES
setopt AUTO_CD

typeset -g -A key

key[Up]="${terminfo[kcuu1]}"
key[Down]="${terminfo[kcud1]}"
key[Left]="${terminfo[kcub1]}"
key[Right]="${terminfo[kcuf1]}"
key[Shift-Tab]="${terminfo[kcbt]}"
key[Delete]="${terminfo[kdch1]}"

[[ -n "${key[Up]}" ]] && bindkey -- "${key[Up]}"                up-line-or-beginning-search
bindkey -- '^[[A'                                               up-line-or-beginning-search
bindkey -- '^[[B'                                               down-line-or-beginning-search
[[ -n "${key[Down]}" ]] && bindkey -- "${key[Down]}"            down-line-or-beginning-search
[[ -n "${key[Left]}" ]] && bindkey -- "${key[Left]}"            backward-char
[[ -n "${key[Right]}" ]] && bindkey -- "${key[Right]}"          forward-char
[[ -n "${key[Shift-Tab]}" ]] && bindkey -- "${key[Shift-Tab]}"  reverse-menu-complete
[[ -n "${key[Delete]}" ]] && bindkey -- "${key[Delete]}"        delete-char

#eval "$(starship init zsh)"