summaryrefslogtreecommitdiff
path: root/zsh/.zshrc
blob: a694066674aa122195a06ee35bb75a29d19529a3 (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
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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
# history
HISTFILE=~/.cache/zsh/history
HISTSIZE=1000
SAVEHIST=1000
setopt appendhistory hist_ignore_all_dups hist_ignore_space

#exports
export VISUAL=nvim
export EDITOR="$VISUAL"
export PATH=$PATH:$HOME/.bin:$HOME/.local/bin
export TERM=rxvt-unicode-256color
export XDG_CURRENT_DESKTOP=bspwm
export MANPAGER="nvim +Man!"
export FZF_DEFAULT_COMMAND="find ."
export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND"
export FZF_DEFAULT_OPTS='-m --height 40% --layout=reverse --border'

#aliases
alias ..='cd ..'
alias l='ls --color=auto'
alias ls='ls --color=auto'
alias ll='ls --color=auto -al'
alias key="vim $HOME/.config/spectrwm/keybindings.conf"
alias wm="vim ~/.config/spectrwm/spectrwm.conf"
alias f="ranger"
alias weather="curl wttr.in"
alias py="/usr/bin/python"
alias pg="ping google.com"
alias k="pkill "
alias m="cmus"
alias vimrc="vim $HOME/.config/nvim/init.vim"
alias v="nvim"
alias vim="nvim"
alias sudo="sudo "
alias mp3dl="youtube-dl -x --audio-format mp3"
alias o="xdg-open"

up() {
    curl -F "file=@$*" https://0x0.st | xclip -selection clipboard
}

dict() {
    curl dict://dict.org/d:$* | less
}

sip() {
    curl https://ipinfo.io/$*
}

rmdata() {
    exiftool -overwrite_original -all= $*
}

generate() {
    rm ~/src/site/dst/.files
    ssg5 ~/src/site/src ~/src/site/dst "pryr's website" "https://pryr.xyz"
    # rssg ~/src/site/dst/index.html "pryr\'s feed" > ~/src/site/dst/rss.xml
}

deploy() {
    rsync --rsync-path "sudo -u www-data rsync" -avP --delete ~/src/site/dst/ rem:site/
}

bind() {
    ssh -L localhost\:$1\:localhost\:$1 $2
}

findstr() {
    find . -type f -exec grep -H "$1" {} \;
}

revid() {
    ffmpeg -i $1 -vf reverse -qp 16 $2
}

slowvid() {
    ffmpeg -i $1 -vf "setpts=0.5*PTS" $2
}

# Enable colors and change prompt:
autoload -U colors && colors
fpath+=$HOME/.cache/zsh/pure
autoload -U promptinit; promptinit
prompt pure
PURE_PROMPT_SYMBOL=❯
# PS1="%B%{$fg[red]%}[%{$fg[yellow]%}%n%{$fg[green]%}@%{$fg[blue]%}%M %{$fg[magenta]%}%~%{$fg[red]%}]%{$reset_color%}$%b "

# Basic auto/tab complete:
autoload -U compinit
zstyle ':completion:*' menu select
zstyle ':completion:*' matcher-list '' 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*'
zmodload zsh/complist
compinit
#_comp_options+=(globdots)		# Include hidden files.

# vi mode
bindkey -v
# export KEYTIMEOUT=1

# reverse search
# bindkey '^R' history-incremental-search-backward

# Use vim keys in tab complete menu:
bindkey -M menuselect 'h' vi-backward-char
bindkey -M menuselect 'k' vi-up-line-or-history
bindkey -M menuselect 'l' vi-forward-char
bindkey -M menuselect 'j' vi-down-line-or-history
bindkey -v '^?' backward-delete-char

# Change cursor shape for different vi modes.
function zle-keymap-select {
  if [[ ${KEYMAP} == vicmd ]] ||
     [[ $1 = 'block' ]]; then
    echo -ne '\e[1 q'
  elif [[ ${KEYMAP} == main ]] ||
       [[ ${KEYMAP} == viins ]] ||
       [[ ${KEYMAP} = '' ]] ||
       [[ $1 = 'beam' ]]; then
    echo -ne '\e[5 q'
  fi
}
zle -N zle-keymap-select
zle-line-init() {
    zle -K viins # initiate `vi insert` as keymap (can be removed if `bindkey -V` has been set elsewhere)
    echo -ne "\e[5 q"
}
zle -N zle-line-init
echo -ne '\e[5 q' # Use beam shape cursor on startup.
preexec() { echo -ne '\e[5 q' ;} # Use beam shape cursor for each new prompt.

# Load plugins
for plugin in ~/.cache/zsh/plugins/*; do
    source "$plugin"
done
source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh 2>/dev/null