summaryrefslogtreecommitdiffstats
path: root/zsh/.zshrc
blob: 07a93a2052cc3ea6dd6a111f9c08d46017604b4d (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
# Input/Output
setopt interactive_comments

# Expansion and Globbing
setopt extended_glob nomatch

# Job Control
unsetopt notify

# History
setopt append_history hist_ignore_dups hist_ignore_space
HISTFILE=~/.cache/zsh/histfile
HISTSIZE=1000
SAVEHIST=100000

# Zle
setopt beep
autoload -z edit-command-line
zle -N edit-command-line

# Keybinds
bindkey -e
bindkey \^U backward-kill-line
bindkey \^X\^E edit-command-line

# Changing Directories
setopt auto_cd auto_pushd
DIRSTACKSIZE=30

# Completion
setopt always_to_end list_ambiguous
zstyle ':completion:*' menu select
zstyle ':completion:*' use-perl on
zstyle ':completion:*' use-cache on
zstyle ':completion:*' cache-path $HOME/.cache/zsh/complcache
zstyle ':completion:*:*:kill:*' command 'ps --forest -u$USER -o pid,%cpu,tty,cputime,cmd'
zstyle :compinstall filename "$HOME/.config/zsh/.zshrc"
autoload -Uz compinit
compinit -d $HOME/.cache/zsh/zcompdump

# Misc
PATH=~/.local/bin:$PATH
REPORTTIME=2
PROMPT=": "
RPROMPT="%1~"

# Fasd
(( $+commands[fasd] )) && {
	fasd_initcache=$HOME/.cache/zsh/fasd_init
	if [[ $(command -v fasd) -nt $fasd_cache || ! -s $fasd_cache ]]; then
		fasd --init \
			posix-alias \
			zsh-hook \
			zsh-ccomp \
			zsh-ccomp-install \
			zsh-wcomp \
			zsh-wcomp-install \
			>| $fasd_initcache
	fi
	. $fasd_initcache
	unset $fasd_initcache

	alias v='fasd -f -t -e vim -b viminfo'
	alias m='fasd -f -e mpv'
	alias o='fasd -a -e xdg-open'

	_FASD_DATA=$HOME/.local/share/fasd
	_FASD_VIMINFO=$HOME/.cache/vim/viminfo
	export _FASD_DATA _FASD_VIMINFO
}

# Aliases
alias _='sudo'
alias g='git'
alias hc='herbstclient'
alias l='ls -l'
alias ll='ls -la'
alias p='pacman'
alias sc='systemctl'
alias t='task'
alias aria2c="aria2c --conf-path=$HOME/.config/aria2/config"
alias chat="ssh karif -t 'TERM=\"xterm\" /usr/bin/bash -l -c \"tmux attach -t weechat\"'"
alias ncmpcpp='ncmpcpp --config ~/.config/ncmpcpp/config'
alias rbt="sudo kexec -l /boot/vmlinuz-linux --initrd=/boot/initramfs-linux.img --reuse-cmdline && sudo systemctl kexec"
alias tmux='tmux -f ~/.config/tmux/tmux.conf'