blob: bba6b7f5ff312d1482ea3ff53808164a734a1e0e (
plain) (
blame)
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
|
# 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
# If you come from bash you might have to change your $PATH.
# export PATH=$HOME/bin:/usr/local/bin:$PATH
# Check if env setup file exists
if [ ! -f ~/.zsh_env_setup ]; then
echo "export ZSH=$HOME/.oh-my-zsh" > ~/.zsh_env_setup
echo "DEFAULT_USER=$USER" >> ~/.zsh_env_setup
fi
# Source env setup file
source ~/.zsh_env_setup
# Source powerlevel10k theme
case "$OSTYPE" in
darwin*)
source /usr/local/opt/powerlevel10k/powerlevel10k.zsh-theme;;
linux*)
ZSH_THEME="powerlevel10k/powerlevel10k";;
esac
COMPLETION_WAITING_DOTS="true"
# Setup plugins
plugins=(
git
zsh-autosuggestions
zsh-syntax-highlighting
)
# Setup oh-my-zsh
source $ZSH/oh-my-zsh.sh
# Modify locale and path
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
# Set vim as default editor
# export EDITOR=$(which vim)
# Add aliases
alias lsp="ps -ax | grep"
alias lsa="ls -la"
alias lsg="ls | grep"
alias lsag="ls -la | grep"
alias ls="tput setaf 3 && echo \"'lsa' for 'ls -la', \n'lsg' for 'ls | grep',\n'lsag' for 'ls -la | grep',\n'lsp' for 'ps -ax |grep'\" && tput sgr0 && ls"
alias notes="vim ~/Documents/notes.txt"
alias todo="vim ~/Documents/todo.txt"
# man pages in colors
man() {
LESS_TERMCAP_md=$'\e[01;31m' \
LESS_TERMCAP_me=$'\e[0m' \
LESS_TERMCAP_se=$'\e[0m' \
LESS_TERMCAP_so=$'\e[01;44;33m' \
LESS_TERMCAP_ue=$'\e[0m' \
LESS_TERMCAP_us=$'\e[01;32m' \
command man "$@"
}
# Make tmux window title show the ssh hostname
# Make short hostname only if its not an IP address
__tm_get_hostname(){
local HOST="$(echo $* | rev | cut -d ' ' -f 1 | rev)"
if echo $HOST | grep -P "^([0-9]+\.){3}[0-9]+" -q; then
echo $HOST
else
echo $HOST| cut -d . -f 1
fi
}
__tm_get_current_window(){
tmux list-windows| awk -F : '/\(active\)$/{print $1}'
}
# Rename window according to __tm_get_hostname and then restore it after the command
__tm_command() {
if [ "$(ps -p $(ps -p $$ -o ppid=) -o comm=| cut -d : -f 1)" = "tmux" ]; then
__tm_window=$(__tm_get_current_window)
# Use current window to change back the setting. If not it will be applied to the active window
trap "tmux set-window-option -t $__tm_window automatic-rename on 1>/dev/null" EXIT HUP INT QUIT PIPE TERM
tmux rename-window "$(__tm_get_hostname $*)"
command "$@"
tmux set-window-option -t $__tm_window automatic-rename on 1>/dev/null
else
command "$@"
fi
}
ssh() {
__tm_command ssh "$@"
}
ec2ssh() {
__tm_command ec2ssh "$@"
}
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
case "$OSTYPE" in
darwin*)
path+=("$(readlink /Users/$DEFAULT_USER/bin)")
path+=("/Library/TeX/texbin")
path+=("/usr/local/share/dotnet")
path+=("/usr/local/sbin")
export PATH
alias krak='/Applications/GitKraken.app/Contents/MacOS/GitKraken -p "$(PWD)" &>> /dev/null &'
#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!!
export SDKMAN_DIR="/Users/jakobstendahl/.sdkman"
[[ -s "/Users/jakobstendahl/.sdkman/bin/sdkman-init.sh" ]] && source "/Users/jakobstendahl/.sdkman/bin/sdkman-init.sh"
;;
linux*)
alias pbcopy='xsel --clipboard --input'
alias pbpaste='xsel --clipboard --output'
;;
esac
export EDITOR="vim"
export GIT_AUTHOR_NAME="jakob.stendahl"
export GIT_AUTHOR_EMAIL="jakob.stendahl@infomedia.dk"
|