-
Notifications
You must be signed in to change notification settings - Fork 0
/
zshrc
177 lines (138 loc) · 5.43 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
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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
# Path to your oh-my-zsh configuration.
ZSH=$HOME/.oh-my-zsh
# Set name of the theme to load.
# Look in ~/.oh-my-zsh/themes/
# Optionally, if you set this to "random", it'll load a random theme each
# time that oh-my-zsh is loaded.
ZSH_THEME="powerlevel10k/powerlevel10k"
# 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
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
##################################
# Example aliases
# alias zshconfig="mate ~/.zshrc"
# alias ohmyzsh="mate ~/.oh-my-zsh"
# Set to this to use case-sensitive completion
# CASE_SENSITIVE="true"
# Uncomment this to disable bi-weekly auto-update checks
# DISABLE_AUTO_UPDATE="true"
# Uncomment to change how often before auto-updates occur? (in days)
export UPDATE_ZSH_DAYS=1
# Uncomment following line if you want to disable colors in ls
# DISABLE_LS_COLORS="true"
# Uncomment following line if you want to disable autosetting terminal title.
# DISABLE_AUTO_TITLE="true"
# Uncomment following line if you want to disable command autocorrection
# DISABLE_CORRECTION="true"
# Uncomment following line if you want red dots to be displayed while waiting for completion
# COMPLETION_WAITING_DOTS="true"
# Uncomment following line if you want to disable marking untracked files under
# VCS as dirty. This makes repository status check for large repositories much,
# much faster.
# DISABLE_UNTRACKED_FILES_DIRTY="true"
# Uncomment following line if you want to shown in the command execution time stamp
# in the history command output. The optional three formats: "mm/dd/yyyy"|"dd.mm.yyyy"|
# yyyy-mm-dd
# HIST_STAMPS="mm/dd/yyyy"
# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
plugins=(git composer docker docker-compose chucknorris z artisan zsh-syntax-highlighting direnv)
source $ZSH/oh-my-zsh.sh
# User configuration
# Create PATH env variable
source ~/.pathrc
# Let's not cause issues if nix isn't installed
if [ -e '/nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh' ]; then
source /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
fi
# export MANPATH="/usr/local/man:$MANPATH"
export XDEBUG_CONFIG="idekey=sublime.xdebug"
export TERM="xterm-256color"
export EDITOR="nvim"
export VISUAL=$EDITOR
export SUDO_ASKPASS=/usr/lib/ssh/x11-ssh-askpass
export OPEN_ON_MAKE_EDITOR=dvo
export ARTISAN_OPEN_ON_MAKE_EDITOR=$OPEN_ON_MAKE_EDITOR
export FZF_DEFAULT_COMMAND='ag -U --hidden --ignore .git -g ""'
export FZF_CTRL_T_COMMAND=$FZF_DEFAULT_COMMAND
export LESS=-RF
export COLORSCHEME_PATH=$HOME/dotfiles/colorschemes
export XCURSOR_PATH=$HOME/.local/share/icons:/usr/share/icons
# # Preferred editor for local and remote sessions
# if [[ -n $SSH_CONNECTION ]]; then
# export EDITOR='vim'
# else
# export EDITOR='mvim'
# fi
# Compilation flags
# export ARCHFLAGS="-arch x86_64"
# ssh
# export SSH_KEY_PATH="~/.ssh/dsa_id"
# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
# I like auto Updates...
DISABLE_UPDATE_PROMPT=true
eval `dircolors ~/.dircolors`
zstyle ':completion:*' list-colors "${(@s.:.)LS_COLORS}"
zstyle ':completion:*:*:make:*' tag-order 'targets'
autoload -Uz compinit
compinit
# Show hostname in the prompt if ssh
if [[ -n "$SSH_CONNECTION" ]]; then
PROMPT="%m $PROMPT"
fi
function de {
CMD="docker exec -it --detach-keys='ctrl-^,q' $1 env TERM=xterm bash"
echo $CMD
$CMD
}
bindkey '\ev' edit-command-line
source /usr/share/fzf/key-bindings.zsh
source /usr/share/fzf/completion.zsh
###
### Bash-like navigation - stolen from https://github.com/jfly/dotfiles/blob/d0e0fa39442783b299be741aa2e171b97fef5357/zshrc
### Copied from: https://stackoverflow.com/a/10860628/1739415
### Also see https://stackoverflow.com/a/3483679/1739415
###
# Bind ctrl-u to cut to beginning of line.
bindkey "^U" backward-kill-line
# Change behavior of alt-b and alt-f to behave more like bash with regards to
# trailing whitespace.
autoload -Uz forward-word-match
zle -N forward-word forward-word-match
zstyle ':zle:*' skip-whitespace-first true
zstyle ':zle:*' word-chars ''
# Bind alt-backspace to delete one not so aggressive word backwards.
bindkey '^[^?' backward-kill-word
### Bind ctrl-w to delete one aggressive word backwards.
backward-kill-dir() {
local WORDCHARS='*?_-.[]~=&;!#$%^(){}<>'
zle backward-kill-word
}
zle -N backward-kill-dir
bindkey "^W" backward-kill-dir
#####################
####
### Set up ctrl-shift-n for VTE
###
[[ -f /etc/profile.d/vte.sh ]] && source /etc/profile.d/vte.sh
##################################
# From https://wiki.archlinux.org/index.php/SSH_keys#ssh-agent
if ! pgrep -u $USER ssh-agent > /dev/null; then
ssh-agent > ~/.ssh-agent-thing
fi
if [[ "$SSH_AGENT_PID" == "" ]]; then
eval $(<~/.ssh-agent-thing)
fi
[[ -z $DISPLAY && -z $TMUX && $XDG_VTNR -eq 1 ]] && exec startx