Refactor dotfiles - 2026-01-18
Changes: - Refactored .zshrc into modular oh-my-zsh/custom/ files - Created aliases.zsh, functions.zsh, path.zsh, keybindings.zsh - Added bira-time.zsh-theme (bira with timestamp) - Added tools/*.zsh for pyenv, nvm, kubectl - Updated .tmux.conf.local with cross-platform support - Updated gpakosz/.tmux framework - Cleaned up .zshenv
This commit is contained in:
parent
58ef6d327f
commit
47120112ad
12 changed files with 811 additions and 453 deletions
|
|
@ -22,6 +22,7 @@ alias gs='git status'
|
||||||
alias ga='git add'
|
alias ga='git add'
|
||||||
alias gc='git commit -S'
|
alias gc='git commit -S'
|
||||||
alias gp='git push origin master'
|
alias gp='git push origin master'
|
||||||
|
alias gpf='git push -u forgejo master'
|
||||||
# alias gp='for r in $(git remote); do echo "Pushing to $r" && git push $r master; done'
|
# alias gp='for r in $(git remote); do echo "Pushing to $r" && git push $r master; done'
|
||||||
alias gpull='git pull --rebase origin master'
|
alias gpull='git pull --rebase origin master'
|
||||||
alias gl="git log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset)%C(bold yellow)%d%C(reset)%n'' %C(white)%s%C(reset) %C(dim white)- %an%C(reset)' --all"
|
alias gl="git log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset)%C(bold yellow)%d%C(reset)%n'' %C(white)%s%C(reset) %C(dim white)- %an%C(reset)' --all"
|
||||||
|
|
|
||||||
154
dot_oh-my-zsh/custom/aliases.zsh
Normal file
154
dot_oh-my-zsh/custom/aliases.zsh
Normal file
|
|
@ -0,0 +1,154 @@
|
||||||
|
# Aliases - organized by category
|
||||||
|
# Auto-loaded by oh-my-zsh from $ZSH_CUSTOM/
|
||||||
|
|
||||||
|
# ============================================================================
|
||||||
|
# Basic utilities
|
||||||
|
# ============================================================================
|
||||||
|
alias ls='ls --color=auto'
|
||||||
|
alias sl=ls
|
||||||
|
alias grep='grep --color=auto'
|
||||||
|
alias fgrep='fgrep --color=auto'
|
||||||
|
alias egrep='egrep --color=auto'
|
||||||
|
|
||||||
|
alias vi="vim"
|
||||||
|
alias vimdiff="vim -d"
|
||||||
|
alias vix="vim -X" # Fast vim startup without X (no system clipboard)
|
||||||
|
alias vimrc="vim ~/.vimrc"
|
||||||
|
alias zshrc="vim ~/.zshrc"
|
||||||
|
|
||||||
|
alias sizeof='du -sh'
|
||||||
|
alias mkdir="mkdir -pv"
|
||||||
|
alias f="free -h"
|
||||||
|
alias h="sudo htop"
|
||||||
|
alias a="sudo atop"
|
||||||
|
alias e="exa -bghHliS"
|
||||||
|
alias n="sudo nethogs"
|
||||||
|
alias i="sudo iotop"
|
||||||
|
alias hosts="sudo vim /etc/hosts"
|
||||||
|
alias root="sudo su -"
|
||||||
|
alias xo="xdg-open"
|
||||||
|
alias time='"time"' # Disable bash builtin
|
||||||
|
alias toclip="xclip -selection clipboard"
|
||||||
|
|
||||||
|
# ============================================================================
|
||||||
|
# Python
|
||||||
|
# ============================================================================
|
||||||
|
alias py='python3'
|
||||||
|
alias ipy='ipython3'
|
||||||
|
alias pmr='python manage.py runserver'
|
||||||
|
alias nopmr="ps auxw | grep runserver | awk '{print \$2}' | xargs kill"
|
||||||
|
alias pmm='python manage.py migrate'
|
||||||
|
alias pmmm='python manage.py makemigrations'
|
||||||
|
|
||||||
|
# ============================================================================
|
||||||
|
# Git
|
||||||
|
# ============================================================================
|
||||||
|
alias g='git'
|
||||||
|
alias gs='git status'
|
||||||
|
alias ga='git add'
|
||||||
|
alias gc='git commit -S'
|
||||||
|
alias gp='git push origin master'
|
||||||
|
alias gpf='git push -u forgejo master'
|
||||||
|
alias gpull='git pull --rebase origin master'
|
||||||
|
alias gl="git log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold green)(%ar)%C(reset)%C(bold yellow)%d%C(reset)%n'' %C(white)%s%C(reset) %C(dim white)- %an%C(reset)' --all"
|
||||||
|
alias gd="git diff"
|
||||||
|
alias gds="git diff --staged"
|
||||||
|
alias gb="git branch"
|
||||||
|
alias gpp='git push production master'
|
||||||
|
alias git-pull-branches='git branch -r | grep -v "\->" | while read remote; do git branch --track "${remote#origin/}" "$remote"; done'
|
||||||
|
|
||||||
|
# ============================================================================
|
||||||
|
# Docker
|
||||||
|
# ============================================================================
|
||||||
|
alias dk="docker"
|
||||||
|
alias dsl="docker swarm leave --force"
|
||||||
|
alias dkon="sudo systemctl start docker"
|
||||||
|
alias dkoff="sudo systemctl stop docker"
|
||||||
|
|
||||||
|
# ============================================================================
|
||||||
|
# Kubernetes
|
||||||
|
# ============================================================================
|
||||||
|
alias kb="kubectl"
|
||||||
|
alias kbp="kubectl get pods"
|
||||||
|
alias kbpo="kubectl get pods -o wide"
|
||||||
|
alias kbs="kubectl get svc"
|
||||||
|
alias kbn="kubectl get nodes -o wide"
|
||||||
|
alias kbd="kubectl describe pods"
|
||||||
|
alias kbf="kubectl logs --all-containers --max-log-requests 50 -f --since=5m"
|
||||||
|
alias kbe='kubectl exec -it $(kbp | tail -n 1 | awk "{print \$1}") -- sh'
|
||||||
|
alias kn="kubens"
|
||||||
|
|
||||||
|
# ============================================================================
|
||||||
|
# Terraform
|
||||||
|
# ============================================================================
|
||||||
|
alias tf="terraform"
|
||||||
|
alias tfa="tf apply"
|
||||||
|
|
||||||
|
# ============================================================================
|
||||||
|
# Network
|
||||||
|
# ============================================================================
|
||||||
|
alias s="ssh"
|
||||||
|
alias myip="curl https://icanhazip.com"
|
||||||
|
alias ifl="ifconfig|less"
|
||||||
|
alias whatisopen='sudo netstat -pnlt'
|
||||||
|
alias speedtest="curl -s https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py | python -"
|
||||||
|
alias wg="sudo wg"
|
||||||
|
|
||||||
|
# ============================================================================
|
||||||
|
# System
|
||||||
|
# ============================================================================
|
||||||
|
alias omg="sudo systemctl restart NetworkManager"
|
||||||
|
alias omg1.1="sudo rmmod iwlmvm && sudo rmmod iwlwifi; sudo modprobe iwlwifi"
|
||||||
|
alias omg2="kwin --replace &"
|
||||||
|
alias omg2.1="kquitapp5 plasmashell && kstart5 plasmashell"
|
||||||
|
|
||||||
|
alias battery="upower -i /org/freedesktop/UPower/devices/battery_BAT0 | grep -E 'time to empty|state|to\ full|percentage'"
|
||||||
|
alias bye="sudo systemctl suspend"
|
||||||
|
alias hib="sudo systemctl hibernate"
|
||||||
|
alias gg="xset dpms force off"
|
||||||
|
alias wa="watch sensors"
|
||||||
|
alias gtop="sudo intel_gpu_top"
|
||||||
|
|
||||||
|
alias vmon="sudo systemctl start vmware"
|
||||||
|
alias vmoff="sudo systemctl stop vmware"
|
||||||
|
|
||||||
|
# ============================================================================
|
||||||
|
# Misc tools
|
||||||
|
# ============================================================================
|
||||||
|
alias aliases="vim ~/.oh-my-zsh/custom/aliases.zsh && source ~/.zshrc"
|
||||||
|
alias rmswp="find ~/.vim/tmp/ -iname \"*swp\" -delete"
|
||||||
|
alias clearsessions="rm -rf ~/.vim/tmp/sessions/*"
|
||||||
|
alias zsh_fix="mv ~/.zsh_history ~/.zsh_history_bad; strings ~/.zsh_history_bad > ~/.zsh_history; fc -R ~/.zsh_history; rm ~/.zsh_history_bad"
|
||||||
|
alias server="/opt/miniserve-linux"
|
||||||
|
alias gr="go run ."
|
||||||
|
alias hg="hugo -D server --bind 0.0.0.0"
|
||||||
|
alias cr="cargo run"
|
||||||
|
alias tricks="vi ~/tricks/tricks.txt"
|
||||||
|
alias logout="qdbus org.kde.ksmserver /KSMServer logout 0 0 0"
|
||||||
|
|
||||||
|
# Shadowsocks
|
||||||
|
alias ss-tunnel="snap run shadowsocks-libev.ss-tunnel"
|
||||||
|
alias ss-local="snap run shadowsocks-libev.ss-local"
|
||||||
|
|
||||||
|
# ============================================================================
|
||||||
|
# Package manager detection (for update/install aliases)
|
||||||
|
# ============================================================================
|
||||||
|
typeset -A osInfo
|
||||||
|
osInfo[/etc/redhat-release]=dnf
|
||||||
|
osInfo[/etc/arch-release]=pacman
|
||||||
|
osInfo[/etc/gentoo-release]=emerge
|
||||||
|
osInfo[/etc/SuSE-release]=zypp
|
||||||
|
osInfo[/etc/debian_version]=apt-get
|
||||||
|
|
||||||
|
for f in "${(@k)osInfo}"; do
|
||||||
|
if [[ -f $f ]]; then
|
||||||
|
pm=${osInfo[$f]}
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
alias update="sudo $pm update"
|
||||||
|
alias u="update"
|
||||||
|
alias upgrade="sudo $pm upgrade"
|
||||||
|
alias install="sudo $pm install"
|
||||||
|
alias remove="sudo $pm remove"
|
||||||
|
alias reinstall="sudo $pm reinstall"
|
||||||
167
dot_oh-my-zsh/custom/functions.zsh
Normal file
167
dot_oh-my-zsh/custom/functions.zsh
Normal file
|
|
@ -0,0 +1,167 @@
|
||||||
|
# Shell functions
|
||||||
|
# Auto-loaded by oh-my-zsh from $ZSH_CUSTOM/
|
||||||
|
|
||||||
|
# ============================================================================
|
||||||
|
# Git functions
|
||||||
|
# ============================================================================
|
||||||
|
|
||||||
|
# Useful for daily stand-up
|
||||||
|
git-standup() {
|
||||||
|
AUTHOR=${AUTHOR:="$(git config user.name)"}
|
||||||
|
since=yesterday
|
||||||
|
if [[ $(date +%u) == 1 ]]; then
|
||||||
|
since="2 days ago"
|
||||||
|
fi
|
||||||
|
git log --all --since "$since" --oneline --author="$AUTHOR"
|
||||||
|
}
|
||||||
|
|
||||||
|
# ============================================================================
|
||||||
|
# Network functions
|
||||||
|
# ============================================================================
|
||||||
|
|
||||||
|
netok() {
|
||||||
|
echo 'Testing DNS settings.'
|
||||||
|
timeout 1 ping google.com -W 1 -c 1 &>> /dev/null
|
||||||
|
if (( $? == 0 )); then
|
||||||
|
echo 'Internet is up.'
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
echo 'Pinging 8.8.8.8'
|
||||||
|
ping 8.8.8.8 -W 1 -c 1 &>> /dev/null
|
||||||
|
if (( $? == 0 )); then
|
||||||
|
echo 'Issue spotted in DNS settings'
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
gateway=$(echo $(route -n | sed -n '3p' | awk '{print $2}'))
|
||||||
|
echo 'Pinging ' $gateway
|
||||||
|
ping $gateway -W 1 -c 2 &>> /dev/null
|
||||||
|
if (($? == 0 )); then
|
||||||
|
echo 'Gateway connectivity issues or being firewalled.'
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
echo 'Cannot reach default gateway.'
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
certinfo() {
|
||||||
|
curl --insecure -v https://"$1" 2>&1 | awk 'BEGIN { cert=0 } /^\* SSL connection/ { cert=1 } /^\*/ { if (cert) print }'
|
||||||
|
}
|
||||||
|
|
||||||
|
# ============================================================================
|
||||||
|
# Wireguard VPN
|
||||||
|
# ============================================================================
|
||||||
|
|
||||||
|
wgon() {
|
||||||
|
wg-quick up ~/vpn-certs/viktor.conf
|
||||||
|
# Add ipv4 precedence because vpn is v4 only for now
|
||||||
|
bash -c "grep -qxF 'precedence ::ffff:0:0/96 100' /etc/gai.conf || echo 'precedence ::ffff:0:0/96 100' | sudo tee -a /etc/gai.conf"
|
||||||
|
# Add dns if missing
|
||||||
|
ns_str="nameserver 10.0.20.1 # Added by wgon function"
|
||||||
|
search_str="search viktorbarzin.lan # Added by wgon function"
|
||||||
|
resolv_conf="/etc/resolv.conf"
|
||||||
|
bash -c "grep -qxF '$search_str' $resolv_conf || echo '$search_str' | sudo tee -a $resolv_conf"
|
||||||
|
bash -c "grep -qxF '$ns_str' $resolv_conf || echo '$ns_str' | sudo sed -i -e '1i $ns_str' $resolv_conf"
|
||||||
|
}
|
||||||
|
|
||||||
|
wgoff() {
|
||||||
|
wg-quick down ~/vpn-certs/viktor.conf
|
||||||
|
ns_str="nameserver 10.0.20.1 # Added by wgon function"
|
||||||
|
search_str="search viktorbarzin.lan # Added by wgon function"
|
||||||
|
resolv_conf="/etc/resolv.conf"
|
||||||
|
sudo sed -i '/precedence ::ffff:0:0\/96 100/d' /etc/gai.conf
|
||||||
|
sudo sed -i "/$search_str/d" $resolv_conf
|
||||||
|
sudo sed -i "/$ns_str/d" $resolv_conf
|
||||||
|
}
|
||||||
|
|
||||||
|
wgs() {
|
||||||
|
kubectl scale -n wireguard deployment wireguard --replicas=$1
|
||||||
|
}
|
||||||
|
|
||||||
|
# ============================================================================
|
||||||
|
# Kubernetes
|
||||||
|
# ============================================================================
|
||||||
|
|
||||||
|
cephpw() {
|
||||||
|
kubectl -n rook-ceph get secret rook-ceph-dashboard-password -o yaml | grep "password:" | grep -v '{}' | awk '{print $2}' | base64 --decode
|
||||||
|
}
|
||||||
|
|
||||||
|
kbop() {
|
||||||
|
kb -n rook-ceph delete pods $(kbp | grep opera | awk '{print $1}')
|
||||||
|
kb -n rook-ceph logs -f $(kbp | grep operator | awk '{print $1}')
|
||||||
|
}
|
||||||
|
|
||||||
|
# ============================================================================
|
||||||
|
# Compilation / Development
|
||||||
|
# ============================================================================
|
||||||
|
|
||||||
|
c() {
|
||||||
|
# Pass any arguments to gcc and afterwards run executable
|
||||||
|
gcc "$@" && ./a.out
|
||||||
|
}
|
||||||
|
|
||||||
|
dang_gcc() {
|
||||||
|
gcc "$@" -fno-stack-protector -z execstack
|
||||||
|
}
|
||||||
|
|
||||||
|
make_tags() {
|
||||||
|
avr-gcc -M $* | sed -e 's/[\\ ]/\n/g' | \
|
||||||
|
sed -e '/^$/d' -e '/\.o:[ \t]*$/d' | ctags -L - --c++-kinds=+p --fields=+iaS --extra=+q
|
||||||
|
}
|
||||||
|
|
||||||
|
# ============================================================================
|
||||||
|
# File encryption
|
||||||
|
# ============================================================================
|
||||||
|
|
||||||
|
encrypt() {
|
||||||
|
tar -czvf $1.tar.gz $1 && \
|
||||||
|
gpg --symmetric --armor $1.tar.gz && \
|
||||||
|
echo "Deleting $1 and $1.tar.gz" && \
|
||||||
|
rm -rf $1 $1.tar.gz
|
||||||
|
}
|
||||||
|
|
||||||
|
decrypt() {
|
||||||
|
gpg --decrypt $1 | tar xzvf -
|
||||||
|
}
|
||||||
|
|
||||||
|
# ============================================================================
|
||||||
|
# Utilities
|
||||||
|
# ============================================================================
|
||||||
|
|
||||||
|
camelcase() {
|
||||||
|
perl -pe 's#(_|^)(.)#\u$2#g'
|
||||||
|
}
|
||||||
|
|
||||||
|
waitfor() {
|
||||||
|
while pidof $1 > /dev/null; do sleep 2; done
|
||||||
|
}
|
||||||
|
|
||||||
|
b64() {
|
||||||
|
echo $1 | base64 -d
|
||||||
|
}
|
||||||
|
|
||||||
|
# Include helper - source file if it exists
|
||||||
|
include() {
|
||||||
|
[[ -f "$1" ]] && source "$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Download GitHub folder using svn
|
||||||
|
download_github_folder() {
|
||||||
|
svn checkout $(echo $1 | sed "s/\/tree\/[a-zA-Z]\+/\/trunk/")
|
||||||
|
}
|
||||||
|
alias svali_papka=download_github_folder
|
||||||
|
|
||||||
|
# Snapper wrapper for btrfs snapshots
|
||||||
|
snp() {
|
||||||
|
cmd="$@"
|
||||||
|
snapshot_nbr=$(snapper -c home create --type=pre --cleanup-algorithm=number --print-number --description="${cmd}")
|
||||||
|
eval "$cmd"
|
||||||
|
snapshot_nbr=$(snapper -c home create --type=post --cleanup-algorithm=number --print-number --pre-number="$snapshot_nbr")
|
||||||
|
}
|
||||||
|
|
||||||
|
alias sp="snapper -c home"
|
||||||
|
|
||||||
|
# YouTube playlist player
|
||||||
|
ytplaylist() {
|
||||||
|
youtube-dl -o - -f best $@ | vlc -
|
||||||
|
}
|
||||||
13
dot_oh-my-zsh/custom/keybindings.zsh
Normal file
13
dot_oh-my-zsh/custom/keybindings.zsh
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
# Key bindings
|
||||||
|
# Auto-loaded by oh-my-zsh from $ZSH_CUSTOM/
|
||||||
|
|
||||||
|
# Enable Ctrl-x-e to edit command line in $EDITOR
|
||||||
|
autoload -U edit-command-line
|
||||||
|
zle -N edit-command-line
|
||||||
|
bindkey '^xe' edit-command-line
|
||||||
|
bindkey '^x^e' edit-command-line
|
||||||
|
|
||||||
|
# Zsh autosuggestions (if plugin is installed)
|
||||||
|
ZSH_AUTOSUGGEST_STRATEGY=(history completion)
|
||||||
|
bindkey '^[0' autosuggest-accept
|
||||||
|
bindkey '^[9' autosuggest-fetch
|
||||||
18
dot_oh-my-zsh/custom/path.zsh
Normal file
18
dot_oh-my-zsh/custom/path.zsh
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
# PATH modifications
|
||||||
|
# Auto-loaded by oh-my-zsh from $ZSH_CUSTOM/
|
||||||
|
|
||||||
|
# Go
|
||||||
|
export GOPATH="$HOME/go"
|
||||||
|
export PATH="$HOME/go/bin:$PATH"
|
||||||
|
|
||||||
|
# Local bin
|
||||||
|
export PATH="$HOME/.local/bin:$PATH"
|
||||||
|
|
||||||
|
# JDK (if installed)
|
||||||
|
[[ -d /opt/jdk-12.0.1/bin ]] && export PATH="/opt/jdk-12.0.1/bin:$PATH"
|
||||||
|
|
||||||
|
# Krew (kubectl plugin manager)
|
||||||
|
export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"
|
||||||
|
|
||||||
|
# Add custom zsh functions
|
||||||
|
fpath+=~/.zfunc
|
||||||
36
dot_oh-my-zsh/custom/themes/bira-time.zsh-theme
Normal file
36
dot_oh-my-zsh/custom/themes/bira-time.zsh-theme
Normal file
|
|
@ -0,0 +1,36 @@
|
||||||
|
# bira-time theme - bira with timestamp
|
||||||
|
# Based on bira theme, adds current time to prompt
|
||||||
|
|
||||||
|
local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})"
|
||||||
|
local user_host="%B%(!.%{$fg[red]%}.%{$fg[green]%})%n@%m%{$reset_color%} "
|
||||||
|
local user_symbol='%(!.#.$)'
|
||||||
|
local current_dir="%B%{$fg[blue]%}%~ %{$reset_color%}"
|
||||||
|
local current_time="%{$fg_bold[red]%}%*%{$reset_color%} "
|
||||||
|
|
||||||
|
local vcs_branch='$(git_prompt_info)$(hg_prompt_info)'
|
||||||
|
local rvm_ruby='$(ruby_prompt_info)'
|
||||||
|
local venv_prompt='$(virtualenv_prompt_info)'
|
||||||
|
|
||||||
|
ZSH_THEME_RVM_PROMPT_OPTIONS="i v g"
|
||||||
|
|
||||||
|
PROMPT="╭─${user_host}${current_time}${current_dir}${rvm_ruby}${vcs_branch}${venv_prompt}
|
||||||
|
╰─%B${user_symbol}%b "
|
||||||
|
RPROMPT="%B${return_code}%b"
|
||||||
|
|
||||||
|
ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[yellow]%}‹"
|
||||||
|
ZSH_THEME_GIT_PROMPT_SUFFIX="› %{$reset_color%}"
|
||||||
|
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}●%{$fg[yellow]%}"
|
||||||
|
ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[yellow]%}"
|
||||||
|
|
||||||
|
ZSH_THEME_HG_PROMPT_PREFIX="$ZSH_THEME_GIT_PROMPT_PREFIX"
|
||||||
|
ZSH_THEME_HG_PROMPT_SUFFIX="$ZSH_THEME_GIT_PROMPT_SUFFIX"
|
||||||
|
ZSH_THEME_HG_PROMPT_DIRTY="$ZSH_THEME_GIT_PROMPT_DIRTY"
|
||||||
|
ZSH_THEME_HG_PROMPT_CLEAN="$ZSH_THEME_GIT_PROMPT_CLEAN"
|
||||||
|
|
||||||
|
ZSH_THEME_RUBY_PROMPT_PREFIX="%{$fg[red]%}‹"
|
||||||
|
ZSH_THEME_RUBY_PROMPT_SUFFIX="› %{$reset_color%}"
|
||||||
|
|
||||||
|
ZSH_THEME_VIRTUAL_ENV_PROMPT_PREFIX="%{$fg[green]%}‹"
|
||||||
|
ZSH_THEME_VIRTUAL_ENV_PROMPT_SUFFIX="› %{$reset_color%}"
|
||||||
|
ZSH_THEME_VIRTUALENV_PREFIX="$ZSH_THEME_VIRTUAL_ENV_PROMPT_PREFIX"
|
||||||
|
ZSH_THEME_VIRTUALENV_SUFFIX="$ZSH_THEME_VIRTUAL_ENV_PROMPT_SUFFIX"
|
||||||
10
dot_oh-my-zsh/custom/tools/kubectl.zsh
Normal file
10
dot_oh-my-zsh/custom/tools/kubectl.zsh
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
# Kubectl configuration
|
||||||
|
# Auto-loaded by oh-my-zsh from $ZSH_CUSTOM/tools/
|
||||||
|
# Note: This must run after compinit, which oh-my-zsh handles
|
||||||
|
|
||||||
|
if command -v kubectl >/dev/null 2>&1; then
|
||||||
|
source <(kubectl completion zsh)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Load golang path if exists
|
||||||
|
[[ -f /etc/profile.d/golang_path.sh ]] && source /etc/profile.d/golang_path.sh
|
||||||
6
dot_oh-my-zsh/custom/tools/nvm.zsh
Normal file
6
dot_oh-my-zsh/custom/tools/nvm.zsh
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
# NVM (Node Version Manager) configuration
|
||||||
|
# Auto-loaded by oh-my-zsh from $ZSH_CUSTOM/tools/
|
||||||
|
|
||||||
|
export NVM_DIR="$HOME/.nvm"
|
||||||
|
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
|
||||||
|
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
|
||||||
23
dot_oh-my-zsh/custom/tools/pyenv.zsh
Normal file
23
dot_oh-my-zsh/custom/tools/pyenv.zsh
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
# Pyenv configuration
|
||||||
|
# Auto-loaded by oh-my-zsh from $ZSH_CUSTOM/tools/
|
||||||
|
|
||||||
|
export PYENV_ROOT="$HOME/.pyenv"
|
||||||
|
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
|
||||||
|
|
||||||
|
if command -v pyenv >/dev/null 2>&1; then
|
||||||
|
eval "$(pyenv init - zsh)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Virtualenvwrapper
|
||||||
|
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
|
||||||
|
export VIRTUALENV_PYTHON=python3
|
||||||
|
export WORKON_HOME=$HOME/.virtualenvs
|
||||||
|
|
||||||
|
if [[ -f /usr/local/bin/virtualenvwrapper.sh ]]; then
|
||||||
|
source /usr/local/bin/virtualenvwrapper.sh
|
||||||
|
elif [[ -f $HOME/.virtualenvwrapper.sh ]]; then
|
||||||
|
source $HOME/.virtualenvwrapper.sh
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Python debugging
|
||||||
|
export PYTHONBREAKPOINT=ipdb.set_trace
|
||||||
|
|
@ -1,358 +1,405 @@
|
||||||
# https://github.com/gpakosz/.tmux
|
# ~/.tmux.conf.local - Personal tmux configuration
|
||||||
# (‑●‑●)> dual licensed under the WTFPL v2 license and the MIT license,
|
# Oh my tmux! https://github.com/gpakosz/.tmux
|
||||||
# without any warranty.
|
# Updated: 2025-01
|
||||||
# Copyright 2012— Gregory Pakosz (@gpakosz).
|
# Cross-platform: Linux (Ubuntu) + macOS
|
||||||
|
|
||||||
|
# ==============================================================================
|
||||||
|
# BINDINGS
|
||||||
|
# ==============================================================================
|
||||||
|
|
||||||
|
tmux_conf_preserve_stock_bindings=false
|
||||||
|
|
||||||
|
|
||||||
# -- navigation ----------------------------------------------------------------
|
# ==============================================================================
|
||||||
|
# SESSION CREATION
|
||||||
|
# ==============================================================================
|
||||||
|
|
||||||
# if you're running tmux within iTerm2
|
tmux_conf_new_session_prompt=false
|
||||||
# - and tmux is 1.9 or 1.9a
|
tmux_conf_new_session_retain_current_path=false
|
||||||
# - and iTerm2 is configured to let option key act as +Esc
|
|
||||||
# - and iTerm2 is configured to send [1;9A -> [1;9D for option + arrow keys
|
|
||||||
# then uncomment the following line to make Meta + arrow keys mapping work
|
|
||||||
#set -ga terminal-overrides "*:kUP3=\e[1;9A,*:kDN3=\e[1;9B,*:kRIT3=\e[1;9C,*:kLFT3=\e[1;9D"
|
|
||||||
|
|
||||||
|
|
||||||
# -- windows & pane creation ---------------------------------------------------
|
# ==============================================================================
|
||||||
|
# WINDOWS & PANES
|
||||||
|
# ==============================================================================
|
||||||
|
|
||||||
# new window retains current path, possible values are:
|
|
||||||
# - true
|
|
||||||
# - false (default)
|
|
||||||
tmux_conf_new_window_retain_current_path=false
|
tmux_conf_new_window_retain_current_path=false
|
||||||
|
tmux_conf_new_window_reconnect_ssh=false
|
||||||
# new pane retains current path, possible values are:
|
|
||||||
# - true (default)
|
|
||||||
# - false
|
|
||||||
tmux_conf_new_pane_retain_current_path=true
|
tmux_conf_new_pane_retain_current_path=true
|
||||||
|
|
||||||
# new pane tries to reconnect ssh sessions (experimental), possible values are:
|
|
||||||
# - true
|
|
||||||
# - false (default)
|
|
||||||
tmux_conf_new_pane_reconnect_ssh=false
|
tmux_conf_new_pane_reconnect_ssh=false
|
||||||
|
|
||||||
# prompt for session name when creating a new session, possible values are:
|
|
||||||
# - true
|
# ==============================================================================
|
||||||
# - false (default)
|
# DISPLAY
|
||||||
tmux_conf_new_session_prompt=false
|
# ==============================================================================
|
||||||
|
|
||||||
|
# Auto-detect 24-bit color support
|
||||||
|
tmux_conf_24b_colour=auto
|
||||||
|
|
||||||
|
|
||||||
# -- display -------------------------------------------------------------------
|
# ==============================================================================
|
||||||
|
# THEME
|
||||||
|
# ==============================================================================
|
||||||
|
|
||||||
# RGB 24-bit colour support (tmux >= 2.2), possible values are:
|
tmux_conf_theme=enabled
|
||||||
# - true
|
|
||||||
# - false (default)
|
|
||||||
tmux_conf_theme_24b_colour=false
|
|
||||||
|
|
||||||
# window style
|
# Color palette (dark theme)
|
||||||
tmux_conf_theme_window_fg='default'
|
tmux_conf_theme_colour_1="#080808" # dark gray
|
||||||
tmux_conf_theme_window_bg='default'
|
tmux_conf_theme_colour_2="#303030" # gray
|
||||||
|
tmux_conf_theme_colour_3="#8a8a8a" # light gray
|
||||||
|
tmux_conf_theme_colour_4="#00afff" # light blue
|
||||||
|
tmux_conf_theme_colour_5="#ffff00" # yellow
|
||||||
|
tmux_conf_theme_colour_6="#080808" # dark gray
|
||||||
|
tmux_conf_theme_colour_7="#e4e4e4" # white
|
||||||
|
tmux_conf_theme_colour_8="#080808" # dark gray
|
||||||
|
tmux_conf_theme_colour_9="#ffff00" # yellow
|
||||||
|
tmux_conf_theme_colour_10="#ff00af" # pink
|
||||||
|
tmux_conf_theme_colour_11="#5fff00" # green
|
||||||
|
tmux_conf_theme_colour_12="#8a8a8a" # light gray
|
||||||
|
tmux_conf_theme_colour_13="#e4e4e4" # white
|
||||||
|
tmux_conf_theme_colour_14="#080808" # dark gray
|
||||||
|
tmux_conf_theme_colour_15="#080808" # dark gray
|
||||||
|
tmux_conf_theme_colour_16="#d70000" # red
|
||||||
|
tmux_conf_theme_colour_17="#e4e4e4" # white
|
||||||
|
|
||||||
# highlight focused pane (tmux >= 2.1), possible values are:
|
# Window style
|
||||||
# - true
|
tmux_conf_theme_window_fg="default"
|
||||||
# - false (default)
|
tmux_conf_theme_window_bg="default"
|
||||||
|
|
||||||
|
# Pane settings
|
||||||
tmux_conf_theme_highlight_focused_pane=false
|
tmux_conf_theme_highlight_focused_pane=false
|
||||||
|
tmux_conf_theme_focused_pane_bg="$tmux_conf_theme_colour_2"
|
||||||
# focused pane colours:
|
|
||||||
tmux_conf_theme_focused_pane_fg='default'
|
|
||||||
tmux_conf_theme_focused_pane_bg='#0087d7' # light blue
|
|
||||||
|
|
||||||
# pane border style, possible values are:
|
|
||||||
# - thin (default)
|
|
||||||
# - fat
|
|
||||||
tmux_conf_theme_pane_border_style=thin
|
tmux_conf_theme_pane_border_style=thin
|
||||||
|
tmux_conf_theme_pane_border="$tmux_conf_theme_colour_2"
|
||||||
|
tmux_conf_theme_pane_active_border="$tmux_conf_theme_colour_4"
|
||||||
|
%if #{>=:#{version},3.2}
|
||||||
|
tmux_conf_theme_pane_active_border="#{?pane_in_mode,$tmux_conf_theme_colour_9,#{?synchronize-panes,$tmux_conf_theme_colour_16,$tmux_conf_theme_colour_4}}"
|
||||||
|
%endif
|
||||||
|
|
||||||
# pane borders colours:
|
# Pane indicator colours
|
||||||
tmux_conf_theme_pane_border='#444444' # gray
|
tmux_conf_theme_pane_indicator="$tmux_conf_theme_colour_4"
|
||||||
tmux_conf_theme_pane_active_border='#00afff' # light blue
|
tmux_conf_theme_pane_active_indicator="$tmux_conf_theme_colour_4"
|
||||||
|
|
||||||
# pane indicator colours
|
# Message/command style
|
||||||
tmux_conf_theme_pane_indicator='#00afff' # light blue
|
tmux_conf_theme_message_fg="$tmux_conf_theme_colour_1"
|
||||||
tmux_conf_theme_pane_active_indicator='#00afff' # light blue
|
tmux_conf_theme_message_bg="$tmux_conf_theme_colour_5"
|
||||||
|
tmux_conf_theme_message_attr="bold"
|
||||||
|
tmux_conf_theme_message_command_fg="$tmux_conf_theme_colour_5"
|
||||||
|
tmux_conf_theme_message_command_bg="$tmux_conf_theme_colour_1"
|
||||||
|
tmux_conf_theme_message_command_attr="bold"
|
||||||
|
|
||||||
# status line style
|
# Mode style
|
||||||
tmux_conf_theme_message_fg='#000000' # black
|
tmux_conf_theme_mode_fg="$tmux_conf_theme_colour_1"
|
||||||
tmux_conf_theme_message_bg='#ffff00' # yellow
|
tmux_conf_theme_mode_bg="$tmux_conf_theme_colour_5"
|
||||||
tmux_conf_theme_message_attr='bold'
|
tmux_conf_theme_mode_attr="bold"
|
||||||
|
|
||||||
# status line command style (<prefix> : Escape)
|
|
||||||
tmux_conf_theme_message_command_fg='#ffff00' # yellow
|
|
||||||
tmux_conf_theme_message_command_bg='#000000' # black
|
|
||||||
tmux_conf_theme_message_command_attr='bold'
|
|
||||||
|
|
||||||
# window modes style
|
|
||||||
tmux_conf_theme_mode_fg='#000000' # black
|
|
||||||
tmux_conf_theme_mode_bg='#ffff00' # yellow
|
|
||||||
tmux_conf_theme_mode_attr='bold'
|
|
||||||
|
|
||||||
# status line style
|
|
||||||
tmux_conf_theme_status_fg='#8a8a8a' # light gray
|
|
||||||
tmux_conf_theme_status_bg='#080808' # dark gray
|
|
||||||
tmux_conf_theme_status_attr='none'
|
|
||||||
|
|
||||||
# terminal title
|
|
||||||
# - built-in variables are:
|
|
||||||
# - #{circled_window_index}
|
|
||||||
# - #{circled_session_name}
|
|
||||||
# - #{hostname}
|
|
||||||
# - #{hostname_ssh}
|
|
||||||
# - #{username}
|
|
||||||
# - #{username_ssh}
|
|
||||||
tmux_conf_theme_terminal_title='#h ❐ #S ● #I #W'
|
|
||||||
|
|
||||||
# window status style
|
|
||||||
# - built-in variables are:
|
|
||||||
# - #{circled_window_index}
|
|
||||||
# - #{circled_session_name}
|
|
||||||
# - #{hostname}
|
|
||||||
# - #{hostname_ssh}
|
|
||||||
# - #{username}
|
|
||||||
# - #{username_ssh}
|
|
||||||
tmux_conf_theme_window_status_fg='#8a8a8a' # light gray
|
|
||||||
tmux_conf_theme_window_status_bg='#080808' # dark gray
|
|
||||||
tmux_conf_theme_window_status_attr='none'
|
|
||||||
tmux_conf_theme_window_status_format='#I #W'
|
|
||||||
#tmux_conf_theme_window_status_format='#{circled_window_index} #W'
|
|
||||||
#tmux_conf_theme_window_status_format='#I #W#{?window_bell_flag,🔔,}#{?window_zoomed_flag,🔍,}'
|
|
||||||
|
|
||||||
# window current status style
|
|
||||||
# - built-in variables are:
|
|
||||||
# - #{circled_window_index}
|
|
||||||
# - #{circled_session_name}
|
|
||||||
# - #{hostname}
|
|
||||||
# - #{hostname_ssh}
|
|
||||||
# - #{username}
|
|
||||||
# - #{username_ssh}
|
|
||||||
tmux_conf_theme_window_status_current_fg='#000000' # black
|
|
||||||
tmux_conf_theme_window_status_current_bg='#00afff' # light blue
|
|
||||||
tmux_conf_theme_window_status_current_attr='bold'
|
|
||||||
tmux_conf_theme_window_status_current_format='#I #W'
|
|
||||||
#tmux_conf_theme_window_status_current_format='#{circled_window_index} #W'
|
|
||||||
#tmux_conf_theme_window_status_current_format='#I #W#{?window_zoomed_flag,🔍,}'
|
|
||||||
|
|
||||||
# window activity status style
|
|
||||||
tmux_conf_theme_window_status_activity_fg='default'
|
|
||||||
tmux_conf_theme_window_status_activity_bg='default'
|
|
||||||
tmux_conf_theme_window_status_activity_attr='underscore'
|
|
||||||
|
|
||||||
# window bell status style
|
|
||||||
tmux_conf_theme_window_status_bell_fg='#ffff00' # yellow
|
|
||||||
tmux_conf_theme_window_status_bell_bg='default'
|
|
||||||
tmux_conf_theme_window_status_bell_attr='blink,bold'
|
|
||||||
|
|
||||||
# window last status style
|
|
||||||
tmux_conf_theme_window_status_last_fg='#00afff' # light blue
|
|
||||||
tmux_conf_theme_window_status_last_bg='default'
|
|
||||||
tmux_conf_theme_window_status_last_attr='none'
|
|
||||||
|
|
||||||
# status left/right sections separators
|
|
||||||
# tmux_conf_theme_left_separator_main=''
|
|
||||||
# tmux_conf_theme_left_separator_sub='|'
|
|
||||||
# tmux_conf_theme_right_separator_main=''
|
|
||||||
# tmux_conf_theme_right_separator_sub='|'
|
|
||||||
tmux_conf_theme_left_separator_main='\uE0B0' # /!\ you don't need to install Powerline
|
|
||||||
tmux_conf_theme_left_separator_sub='\uE0B1' # you only need fonts patched with
|
|
||||||
tmux_conf_theme_right_separator_main='\uE0B2' # Powerline symbols or the standalone
|
|
||||||
tmux_conf_theme_right_separator_sub='\uE0B3' # PowerlineSymbols.otf font, see README.md
|
|
||||||
|
|
||||||
# status left/right content:
|
|
||||||
# - separate main sections with '|'
|
|
||||||
# - separate subsections with ','
|
|
||||||
# - built-in variables are:
|
|
||||||
# - #{battery_bar}
|
|
||||||
# - #{battery_hbar}
|
|
||||||
# - #{battery_percentage}
|
|
||||||
# - #{battery_status}
|
|
||||||
# - #{battery_vbar}
|
|
||||||
# - #{circled_session_name}
|
|
||||||
# - #{hostname_ssh}
|
|
||||||
# - #{hostname}
|
|
||||||
# - #{loadavg}
|
|
||||||
# - #{pairing}
|
|
||||||
# - #{prefix}
|
|
||||||
# - #{root}
|
|
||||||
# - #{synchronized}
|
|
||||||
# - #{uptime_y}
|
|
||||||
# - #{uptime_d} (modulo 365 when #{uptime_y} is used)
|
|
||||||
# - #{uptime_h}
|
|
||||||
# - #{uptime_m}
|
|
||||||
# - #{uptime_s}
|
|
||||||
# - #{username}
|
|
||||||
# - #{username_ssh}
|
|
||||||
|
|
||||||
# CPU info
|
|
||||||
# CPU: #{cpu_icon} #{cpu_percentage} RAM: #{ram_icon} #{ram_percentage} ,
|
|
||||||
|
|
||||||
# #(curl wttr.in/Southampton?format=3) , # - for weather
|
|
||||||
cpu_percentage_format="%3.1f%%" # printf format to use to display percentage
|
|
||||||
tmux_conf_theme_status_left=' ❐ #S | ↑#{?uptime_y, #{uptime_y}y,}#{?uptime_d, #{uptime_d}d,}#{?uptime_h, #{uptime_h}h,}#{?uptime_m, #{uptime_m}m,} '
|
|
||||||
#tmux_conf_theme_status_right='#{prefix}#{pairing}#{synchronized} #{?battery_status, #{battery_status},}#{?battery_bar, #{battery_bar},}#{?battery_percentage, #{battery_percentage},} , %R , %d %b | #{username}#{root} | #{hostname} '
|
|
||||||
tmux_conf_theme_status_right=" IP:#(ip route get 8.8.8.8 | head -1 | cut -d' ' -f7) , \
|
|
||||||
DNS:#(echo $(cat /etc/resolv.conf | grep 'nameserver [0-9]' | awk '{print $2}')) , \
|
|
||||||
Gateway:#(echo $(route -n | sed -n '3p' | awk '{print $2}')) #{prefix}#{pairing} #[fg=green]#($TMUX_PLUGIN_MANAGER_PATH/tmux-mem-cpu-load/tmux-mem-cpu-load --colors --powerline-right --interval 2) , #{?battery_status, #{battery_status},}#{?battery_bar, #{battery_bar},}#{?battery_percentage, #{battery_percentage},} , %R , %d %b | #{username}#{root} | #{hostname}"
|
|
||||||
|
|
||||||
|
|
||||||
# status left style
|
# ==============================================================================
|
||||||
tmux_conf_theme_status_left_fg='#000000,#e4e4e4,#e4e4e4' # black, white , white
|
# STATUS BAR
|
||||||
tmux_conf_theme_status_left_bg='#ffff00,#ff00af,#00afff' # yellow, pink, white blue
|
# ==============================================================================
|
||||||
tmux_conf_theme_status_left_attr='bold,none,none'
|
|
||||||
|
|
||||||
# status right style
|
tmux_conf_theme_status_fg="$tmux_conf_theme_colour_3"
|
||||||
tmux_conf_theme_status_right_fg='#8a8a8a,#e4e4e4,#000000' # light gray, white, black
|
tmux_conf_theme_status_bg="$tmux_conf_theme_colour_1"
|
||||||
tmux_conf_theme_status_right_bg='#080808,#d70000,#e4e4e4' # dark gray, red, white
|
tmux_conf_theme_status_attr="none"
|
||||||
tmux_conf_theme_status_right_attr='none,none,bold'
|
|
||||||
|
|
||||||
# pairing indicator
|
# Terminal title
|
||||||
tmux_conf_theme_pairing='👓 ' # U+1F453
|
tmux_conf_theme_terminal_title="#h ❐ #S ● #I #W"
|
||||||
tmux_conf_theme_pairing_fg='none'
|
|
||||||
tmux_conf_theme_pairing_bg='none'
|
|
||||||
tmux_conf_theme_pairing_attr='none'
|
|
||||||
|
|
||||||
# prefix indicator
|
# Window status
|
||||||
tmux_conf_theme_prefix='⌨ ' # U+2328
|
tmux_conf_theme_window_status_fg="$tmux_conf_theme_colour_3"
|
||||||
tmux_conf_theme_prefix_fg='none'
|
tmux_conf_theme_window_status_bg="$tmux_conf_theme_colour_1"
|
||||||
tmux_conf_theme_prefix_bg='none'
|
tmux_conf_theme_window_status_attr="none"
|
||||||
tmux_conf_theme_prefix_attr='none'
|
tmux_conf_theme_window_status_format="#I #W#{?#{||:#{window_bell_flag},#{window_zoomed_flag}}, ,}#{?window_bell_flag,!,}#{?window_zoomed_flag,Z,}"
|
||||||
|
|
||||||
# root indicator
|
# Current window
|
||||||
tmux_conf_theme_root='!'
|
tmux_conf_theme_window_status_current_fg="$tmux_conf_theme_colour_1"
|
||||||
tmux_conf_theme_root_fg='none'
|
tmux_conf_theme_window_status_current_bg="$tmux_conf_theme_colour_4"
|
||||||
tmux_conf_theme_root_bg='none'
|
tmux_conf_theme_window_status_current_attr="bold"
|
||||||
tmux_conf_theme_root_attr='bold,blink'
|
tmux_conf_theme_window_status_current_format="#I #W#{?#{||:#{window_bell_flag},#{window_zoomed_flag}}, ,}#{?window_bell_flag,!,}#{?window_zoomed_flag,Z,}"
|
||||||
|
|
||||||
# synchronized indicator
|
# Activity/bell/last window
|
||||||
tmux_conf_theme_synchronized='🔒' # U+1F512
|
tmux_conf_theme_window_status_activity_fg="default"
|
||||||
tmux_conf_theme_synchronized_fg='none'
|
tmux_conf_theme_window_status_activity_bg="default"
|
||||||
tmux_conf_theme_synchronized_bg='none'
|
tmux_conf_theme_window_status_activity_attr="underscore"
|
||||||
tmux_conf_theme_synchronized_attr='none'
|
tmux_conf_theme_window_status_bell_fg="$tmux_conf_theme_colour_5"
|
||||||
|
tmux_conf_theme_window_status_bell_bg="default"
|
||||||
|
tmux_conf_theme_window_status_bell_attr="blink,bold"
|
||||||
|
tmux_conf_theme_window_status_last_fg="$tmux_conf_theme_colour_4"
|
||||||
|
tmux_conf_theme_window_status_last_bg="$tmux_conf_theme_colour_2"
|
||||||
|
tmux_conf_theme_window_status_last_attr="none"
|
||||||
|
|
||||||
# battery bar symbols
|
# Powerline separators
|
||||||
# tmux_conf_battery_bar_symbol_full='◼'
|
tmux_conf_theme_left_separator_main='\uE0B0'
|
||||||
# tmux_conf_battery_bar_symbol_empty='◻'
|
tmux_conf_theme_left_separator_sub='\uE0B1'
|
||||||
tmux_conf_battery_bar_symbol_full='♥'
|
tmux_conf_theme_right_separator_main='\uE0B2'
|
||||||
tmux_conf_battery_bar_symbol_empty='·'
|
tmux_conf_theme_right_separator_sub='\uE0B3'
|
||||||
|
|
||||||
# battery bar length (in number of symbols), possible values are:
|
# Status left: session name + uptime
|
||||||
# - auto
|
tmux_conf_theme_status_left=" ❐ #S | ↑#{?uptime_y, #{uptime_y}y,}#{?uptime_d, #{uptime_d}d,}#{?uptime_h, #{uptime_h}h,}#{?uptime_m, #{uptime_m}m,} "
|
||||||
# - a number, e.g. 5
|
|
||||||
tmux_conf_battery_bar_length='auto'
|
|
||||||
|
|
||||||
# battery bar palette, possible values are:
|
# Status right: network info + mem/cpu + battery + time + user@host
|
||||||
# - gradient (default)
|
# Battery vars use #{?...} conditionals so they're safe on non-laptop systems
|
||||||
# - heat
|
tmux_conf_theme_status_right=" #{local_ip}#{gateway} #{prefix}#{mouse}#{pairing}#{synchronized} #{mem_cpu}#{battery_fallback} , %R , %d %b | #{username}#{root} | #{hostname} "
|
||||||
# - 'colour_full_fg,colour_empty_fg,colour_bg'
|
|
||||||
tmux_conf_battery_bar_palette='gradient'
|
|
||||||
#tmux_conf_battery_bar_palette='#d70000,#e4e4e4,#000000' # red, white, black
|
|
||||||
|
|
||||||
# battery hbar palette, possible values are:
|
# Status left colors: yellow, pink, green
|
||||||
# - gradient (default)
|
tmux_conf_theme_status_left_fg="$tmux_conf_theme_colour_6,$tmux_conf_theme_colour_7,$tmux_conf_theme_colour_8"
|
||||||
# - heat
|
tmux_conf_theme_status_left_bg="$tmux_conf_theme_colour_9,$tmux_conf_theme_colour_10,$tmux_conf_theme_colour_11"
|
||||||
# - 'colour_low,colour_half,colour_full'
|
tmux_conf_theme_status_left_attr="bold,none,none"
|
||||||
tmux_conf_battery_hbar_palette='gradient'
|
|
||||||
#tmux_conf_battery_hbar_palette='#d70000,#ff5f00,#5fff00' # red, orange, green
|
|
||||||
|
|
||||||
# battery vbar palette, possible values are:
|
# Status right colors: gray, red, white
|
||||||
# - gradient (default)
|
tmux_conf_theme_status_right_fg="$tmux_conf_theme_colour_12,$tmux_conf_theme_colour_13,$tmux_conf_theme_colour_14"
|
||||||
# - heat
|
tmux_conf_theme_status_right_bg="$tmux_conf_theme_colour_15,$tmux_conf_theme_colour_16,$tmux_conf_theme_colour_17"
|
||||||
# - 'colour_low,colour_half,colour_full'
|
tmux_conf_theme_status_right_attr="none,none,bold"
|
||||||
tmux_conf_battery_vbar_palette='gradient'
|
|
||||||
#tmux_conf_battery_vbar_palette='#d70000,#ff5f00,#5fff00' # red, orange, green
|
|
||||||
|
|
||||||
# symbols used to indicate whether battery is charging or discharging
|
|
||||||
# tmux_conf_battery_status_charging='↑' # U+2191
|
|
||||||
# tmux_conf_battery_status_discharging='↓' # U+2193
|
|
||||||
# tmux_conf_battery_status_charging='⚡ ' # U+26A1
|
|
||||||
tmux_conf_battery_status_charging='🔌 ' # U+1F50C # if you can't see this, fonts are not working
|
|
||||||
tmux_conf_battery_status_discharging='🔋 ' # U+1F50B
|
|
||||||
|
|
||||||
# clock style (when you hit <prefix> + t)
|
|
||||||
# you may want to use %I:%M %p in place of %R in tmux_conf_theme_status_right
|
|
||||||
tmux_conf_theme_clock_colour='#00afff' # light blue
|
|
||||||
tmux_conf_theme_clock_style='24'
|
|
||||||
|
|
||||||
|
|
||||||
# -- clipboard -----------------------------------------------------------------
|
# ==============================================================================
|
||||||
|
# INDICATORS
|
||||||
|
# ==============================================================================
|
||||||
|
|
||||||
|
tmux_conf_theme_pairing="👓"
|
||||||
|
tmux_conf_theme_pairing_fg="none"
|
||||||
|
tmux_conf_theme_pairing_bg="none"
|
||||||
|
tmux_conf_theme_pairing_attr="none"
|
||||||
|
|
||||||
|
tmux_conf_theme_prefix="⌨"
|
||||||
|
tmux_conf_theme_prefix_fg="none"
|
||||||
|
tmux_conf_theme_prefix_bg="none"
|
||||||
|
tmux_conf_theme_prefix_attr="none"
|
||||||
|
|
||||||
|
tmux_conf_theme_mouse="↗"
|
||||||
|
tmux_conf_theme_mouse_fg="none"
|
||||||
|
tmux_conf_theme_mouse_bg="none"
|
||||||
|
tmux_conf_theme_mouse_attr="none"
|
||||||
|
|
||||||
|
tmux_conf_theme_root="!"
|
||||||
|
tmux_conf_theme_root_fg="none"
|
||||||
|
tmux_conf_theme_root_bg="none"
|
||||||
|
tmux_conf_theme_root_attr="bold,blink"
|
||||||
|
|
||||||
|
tmux_conf_theme_synchronized="🔒"
|
||||||
|
tmux_conf_theme_synchronized_fg="none"
|
||||||
|
tmux_conf_theme_synchronized_bg="none"
|
||||||
|
tmux_conf_theme_synchronized_attr="none"
|
||||||
|
|
||||||
|
|
||||||
|
# ==============================================================================
|
||||||
|
# BATTERY
|
||||||
|
# ==============================================================================
|
||||||
|
|
||||||
|
tmux_conf_battery_bar_symbol_full="♥"
|
||||||
|
tmux_conf_battery_bar_symbol_empty="·"
|
||||||
|
tmux_conf_battery_bar_length="auto"
|
||||||
|
tmux_conf_battery_bar_palette="gradient"
|
||||||
|
tmux_conf_battery_hbar_palette="gradient"
|
||||||
|
tmux_conf_battery_vbar_palette="gradient"
|
||||||
|
tmux_conf_battery_status_charging="🔌"
|
||||||
|
tmux_conf_battery_status_discharging="🔋"
|
||||||
|
|
||||||
|
|
||||||
|
# ==============================================================================
|
||||||
|
# CLOCK
|
||||||
|
# ==============================================================================
|
||||||
|
|
||||||
|
tmux_conf_theme_clock_colour="$tmux_conf_theme_colour_4"
|
||||||
|
tmux_conf_theme_clock_style="24"
|
||||||
|
|
||||||
|
|
||||||
|
# ==============================================================================
|
||||||
|
# CLIPBOARD
|
||||||
|
# ==============================================================================
|
||||||
|
|
||||||
# in copy mode, copying selection also copies to the OS clipboard
|
|
||||||
# - true
|
|
||||||
# - false (default)
|
|
||||||
# on macOS, this requires installing reattach-to-user-namespace, see README.md
|
|
||||||
# on Linux, this requires xsel or xclip
|
|
||||||
tmux_conf_copy_to_os_clipboard=false
|
tmux_conf_copy_to_os_clipboard=false
|
||||||
|
|
||||||
|
|
||||||
# -- user customizations -------------------------------------------------------
|
# ==============================================================================
|
||||||
# this is the place to override or undo settings
|
# URLSCAN
|
||||||
|
# ==============================================================================
|
||||||
|
|
||||||
# increase history size
|
tmux_conf_urlscan_options="--compact --dedupe"
|
||||||
#set -g history-limit 10000
|
|
||||||
|
|
||||||
# start with mouse mode enabled
|
|
||||||
#set -g mouse on
|
|
||||||
|
|
||||||
# force Vi mode
|
# ==============================================================================
|
||||||
# really you should export VISUAL or EDITOR environment variable, see manual
|
# USER CUSTOMIZATIONS (keybindings, settings)
|
||||||
|
# ==============================================================================
|
||||||
|
|
||||||
|
# Vi mode
|
||||||
set -g status-keys vi
|
set -g status-keys vi
|
||||||
set -g mode-keys vi
|
set -g mode-keys vi
|
||||||
|
|
||||||
# replace C-b by C-a instead of using both prefixes
|
# Prefix key: Alt-x (instead of C-b)
|
||||||
set -gu prefix2
|
set -gu prefix2
|
||||||
unbind C-a
|
unbind C-a
|
||||||
# unbind C-b
|
|
||||||
# set -g prefix C-a
|
|
||||||
# bind C-a send-prefix
|
|
||||||
set -g prefix M-x
|
set -g prefix M-x
|
||||||
bind M-x send-prefix
|
bind M-x send-prefix
|
||||||
|
|
||||||
# move status line to top
|
# Mouse support
|
||||||
#set -g status-position top
|
set -g mouse on
|
||||||
|
|
||||||
bind \\ split-window -h -c "#{pane_current_path}" # Split panes horizontal
|
# Mouse scroll support
|
||||||
bind - split-window -v -c "#{pane_current_path}" # Split panes vertical
|
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'copy-mode -e'"
|
||||||
|
|
||||||
# Use Alt-vim keys without prefix key to switch panes
|
# Split panes with | and -
|
||||||
|
bind \\ split-window -h -c "#{pane_current_path}"
|
||||||
|
bind - split-window -v -c "#{pane_current_path}"
|
||||||
|
|
||||||
|
# Vim-style pane navigation (Alt + hjkl)
|
||||||
bind -n M-h select-pane -L
|
bind -n M-h select-pane -L
|
||||||
bind -n M-j select-pane -D
|
bind -n M-j select-pane -D
|
||||||
bind -n M-k select-pane -U
|
bind -n M-k select-pane -U
|
||||||
bind -n M-l select-pane -R
|
bind -n M-l select-pane -R
|
||||||
# Use Alt-arrow keys without prefix key to switch panes
|
|
||||||
|
# Arrow key pane navigation (Alt + arrows)
|
||||||
bind -n M-Left select-pane -L
|
bind -n M-Left select-pane -L
|
||||||
bind -n M-Right select-pane -R
|
bind -n M-Right select-pane -R
|
||||||
bind -n M-Up select-pane -U
|
bind -n M-Up select-pane -U
|
||||||
bind -n M-Down select-pane -D
|
bind -n M-Down select-pane -D
|
||||||
set -g mouse on
|
|
||||||
# to enable mouse scroll, see https://github.com/tmux/tmux/issues/145#issuecomment-150736967
|
# Pane resizing (prefix + hjkl)
|
||||||
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'copy-mode -e'"
|
|
||||||
bind j resize-pane -D 5
|
bind j resize-pane -D 5
|
||||||
bind k resize-pane -U 5
|
bind k resize-pane -U 5
|
||||||
bind l resize-pane -R 5
|
bind l resize-pane -R 5
|
||||||
bind h resize-pane -L 5
|
bind h resize-pane -L 5
|
||||||
|
|
||||||
# Copy to system clipboard using xlip
|
# Copy to system clipboard - cross-platform (Linux: xclip/xsel, macOS: pbcopy)
|
||||||
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'xclip -in -selection clipboard'
|
# Uses a helper script approach for portability
|
||||||
bind -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel 'xclip -in -selection clipboard'
|
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "sh -c 'if command -v pbcopy >/dev/null 2>&1; then pbcopy; elif command -v xclip >/dev/null 2>&1; then xclip -in -selection clipboard; elif command -v xsel >/dev/null 2>&1; then xsel --clipboard --input; else cat > /dev/null; fi'"
|
||||||
|
bind -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel "sh -c 'if command -v pbcopy >/dev/null 2>&1; then pbcopy; elif command -v xclip >/dev/null 2>&1; then xclip -in -selection clipboard; elif command -v xsel >/dev/null 2>&1; then xsel --clipboard --input; else cat > /dev/null; fi'"
|
||||||
|
|
||||||
|
# Toggle synchronize-panes
|
||||||
bind-key s set-window-option synchronize-panes\; display-message "synchronize-panes is now #{?pane_synchronized,on,off}"
|
bind-key s set-window-option synchronize-panes\; display-message "synchronize-panes is now #{?pane_synchronized,on,off}"
|
||||||
|
|
||||||
set-option -g default-shell /bin/zsh
|
# Default shell - use zsh if available, otherwise fall back to default
|
||||||
|
if-shell "command -v zsh >/dev/null 2>&1" "set-option -g default-shell /bin/zsh"
|
||||||
|
|
||||||
|
# Aggressive resize
|
||||||
set-window-option -g aggressive-resize
|
set-window-option -g aggressive-resize
|
||||||
|
|
||||||
# Putting this in .tmux.conf.local does not work :/ 3.0a
|
|
||||||
# Custom added - MUST be in the end
|
|
||||||
# List of plugins
|
|
||||||
set -g @plugin 'tmux-plugins/tpm'
|
|
||||||
set -g @plugin 'tmux-plugins/tmux-sensible'
|
|
||||||
|
|
||||||
|
# ==============================================================================
|
||||||
|
# TPM PLUGINS
|
||||||
|
# ==============================================================================
|
||||||
|
|
||||||
|
# Plugin auto-update on launch/reload
|
||||||
|
tmux_conf_update_plugins_on_launch=true
|
||||||
|
tmux_conf_update_plugins_on_reload=true
|
||||||
|
tmux_conf_uninstall_plugins_on_reload=true
|
||||||
|
|
||||||
|
# Plugins (installed/updated automatically)
|
||||||
set -g @plugin 'tmux-plugins/tmux-resurrect'
|
set -g @plugin 'tmux-plugins/tmux-resurrect'
|
||||||
set -g @resurrect-processes 'vi vim nvim man less more tail top htop'
|
set -g @resurrect-processes 'vi vim nvim man less more tail top htop'
|
||||||
|
|
||||||
set -g @plugin 'tmux-plugins/tmux-continuum'
|
set -g @plugin 'tmux-plugins/tmux-continuum'
|
||||||
|
|
||||||
#set -g @continuum-restore 'on'
|
|
||||||
set -g @continuum-restore 'off'
|
set -g @continuum-restore 'off'
|
||||||
|
|
||||||
set -g @plugin 'thewtex/tmux-mem-cpu-load'
|
set -g @plugin 'thewtex/tmux-mem-cpu-load'
|
||||||
|
|
||||||
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
|
|
||||||
run -b '~/.tmux/plugins/tpm/tpm'
|
# ==============================================================================
|
||||||
|
# ==============================================================================
|
||||||
|
# CUSTOM VARIABLES (cross-platform)
|
||||||
|
# ==============================================================================
|
||||||
|
|
||||||
|
# /!\ do not remove the following line
|
||||||
|
# EOF
|
||||||
|
|
||||||
|
# /!\ do not "uncomment" the functions: the leading "# " characters are needed
|
||||||
|
|
||||||
|
# usage: #{local_ip}
|
||||||
|
# Cross-platform: Linux (ip/hostname) and macOS (ipconfig/route)
|
||||||
|
local_ip() {
|
||||||
|
# Try Linux first (ip command)
|
||||||
|
if command -v ip >/dev/null 2>&1; then
|
||||||
|
result=$(ip route get 8.8.8.8 2>/dev/null | grep -oP 'src \K[0-9.]+' | head -1)
|
||||||
|
[ -n "$result" ] && printf 'IP:%s' "$result" && return
|
||||||
|
fi
|
||||||
|
# macOS fallback (route + ifconfig)
|
||||||
|
if [ "$(uname)" = "Darwin" ]; then
|
||||||
|
iface=$(route get 8.8.8.8 2>/dev/null | awk '/interface:/ {print $2}')
|
||||||
|
if [ -n "$iface" ]; then
|
||||||
|
result=$(ipconfig getifaddr "$iface" 2>/dev/null)
|
||||||
|
[ -n "$result" ] && printf 'IP:%s' "$result" && return
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
# Final fallback: hostname -I (Linux)
|
||||||
|
result=$(hostname -I 2>/dev/null | awk '{print $1}')
|
||||||
|
[ -n "$result" ] && printf 'IP:%s' "$result" && return
|
||||||
|
# No IP found
|
||||||
|
printf 'IP:offline'
|
||||||
|
}
|
||||||
|
|
||||||
|
# usage: #{gateway}
|
||||||
|
# Cross-platform: Linux and macOS
|
||||||
|
gateway() {
|
||||||
|
# Try Linux first (ip command)
|
||||||
|
if command -v ip >/dev/null 2>&1; then
|
||||||
|
gw=$(ip route 2>/dev/null | awk '/default/ {print $3; exit}')
|
||||||
|
[ -n "$gw" ] && printf ' GW:%s' "$gw" && return
|
||||||
|
fi
|
||||||
|
# macOS fallback
|
||||||
|
if [ "$(uname)" = "Darwin" ]; then
|
||||||
|
gw=$(route -n get default 2>/dev/null | awk '/gateway:/ {print $2}')
|
||||||
|
[ -n "$gw" ] && printf ' GW:%s' "$gw" && return
|
||||||
|
fi
|
||||||
|
# No gateway - common on VPN or special network configs, don't show error
|
||||||
|
printf ''
|
||||||
|
}
|
||||||
|
|
||||||
|
# usage: #{mem_cpu}
|
||||||
|
# Shows memory/CPU if tmux-mem-cpu-load plugin is installed
|
||||||
|
mem_cpu() {
|
||||||
|
# Check common installation paths
|
||||||
|
for path in \
|
||||||
|
"${TMUX_PLUGIN_MANAGER_PATH:-$HOME/.tmux/plugins}/tmux-mem-cpu-load/tmux-mem-cpu-load" \
|
||||||
|
"$HOME/.tmux/plugins/tmux-mem-cpu-load/tmux-mem-cpu-load" \
|
||||||
|
"/usr/local/bin/tmux-mem-cpu-load" \
|
||||||
|
"/usr/bin/tmux-mem-cpu-load"
|
||||||
|
do
|
||||||
|
if [ -x "$path" ]; then
|
||||||
|
"$path" --colors --powerline-right --interval 2 2>/dev/null
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
# Plugin not installed - show basic load average as fallback
|
||||||
|
if [ -f /proc/loadavg ]; then
|
||||||
|
load=$(cut -d' ' -f1-3 /proc/loadavg 2>/dev/null)
|
||||||
|
[ -n "$load" ] && printf 'Load:%s' "$load" && return
|
||||||
|
fi
|
||||||
|
# macOS fallback
|
||||||
|
if [ "$(uname)" = "Darwin" ]; then
|
||||||
|
load=$(sysctl -n vm.loadavg 2>/dev/null | awk '{print $2, $3, $4}')
|
||||||
|
[ -n "$load" ] && printf 'Load:%s' "$load" && return
|
||||||
|
fi
|
||||||
|
printf ''
|
||||||
|
}
|
||||||
|
|
||||||
|
# usage: #{battery_fallback}
|
||||||
|
# Shows battery status or nothing on desktops/servers
|
||||||
|
battery_fallback() {
|
||||||
|
# Linux: check /sys/class/power_supply
|
||||||
|
if [ -d /sys/class/power_supply/BAT0 ]; then
|
||||||
|
cap=$(cat /sys/class/power_supply/BAT0/capacity 2>/dev/null)
|
||||||
|
status=$(cat /sys/class/power_supply/BAT0/status 2>/dev/null)
|
||||||
|
if [ -n "$cap" ]; then
|
||||||
|
icon="🔋"
|
||||||
|
[ "$status" = "Charging" ] && icon="🔌"
|
||||||
|
printf '%s%s%%' "$icon" "$cap"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
# macOS: use pmset
|
||||||
|
if [ "$(uname)" = "Darwin" ]; then
|
||||||
|
battery=$(pmset -g batt 2>/dev/null | grep -o '[0-9]*%' | head -1)
|
||||||
|
if [ -n "$battery" ]; then
|
||||||
|
charging=$(pmset -g batt 2>/dev/null | grep -q 'AC Power' && echo 1)
|
||||||
|
icon="🔋"
|
||||||
|
[ -n "$charging" ] && icon="🔌"
|
||||||
|
printf '%s%s' "$icon" "$battery"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
# No battery (desktop/server) - show nothing
|
||||||
|
printf ''
|
||||||
|
}
|
||||||
|
|
||||||
|
"$@"
|
||||||
|
# /!\ do not remove the previous line
|
||||||
|
# do not write below this line
|
||||||
|
|
|
||||||
25
dot_zshenv
25
dot_zshenv
|
|
@ -1,20 +1,13 @@
|
||||||
# export PYENV_ROOT="$HOME/.pyenv"
|
# ~/.zshenv - Environment variables for ALL shells (including non-interactive)
|
||||||
# export PATH="$PYENV_ROOT/bin:$PATH"
|
# This file is sourced first, before .zshrc
|
||||||
# eval "$(pyenv init -)"
|
# Only put truly global environment variables here
|
||||||
|
|
||||||
#export PATH="/home/viktor/.pyenv/bin:$PATH"
|
# Editor
|
||||||
#eval "$(pyenv init -)"
|
export EDITOR='vim'
|
||||||
#eval "$(pyenv virtualenv-init -)"
|
|
||||||
|
|
||||||
|
# Locale (uncomment if needed)
|
||||||
|
# export LANG=en_US.UTF-8
|
||||||
|
# export LC_ALL=en_US.UTF-8
|
||||||
|
|
||||||
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
|
# Cargo/Rust
|
||||||
export VIRTUALENV_PYTHON=python3
|
|
||||||
export WORKON_HOME=$HOME/.virtualenvs
|
|
||||||
# export VIRTUALENV_PYTHON=python
|
|
||||||
|
|
||||||
if [ -f $HOME/.virtualenvwrapper.sh ]; then
|
|
||||||
source $HOME/.virtualenvwrapper.sh
|
|
||||||
fi
|
|
||||||
export DRONE_SERVER=https://drone.viktorbarzin.me
|
|
||||||
. "$HOME/.cargo/env"
|
. "$HOME/.cargo/env"
|
||||||
export VAULT_ADDR="https://vault.viktorbarzin.me"
|
|
||||||
|
|
|
||||||
206
dot_zshrc
206
dot_zshrc
|
|
@ -1,133 +1,61 @@
|
||||||
#zmodload zsh/zprof
|
# ~/.zshrc - Zsh configuration for interactive shells
|
||||||
#[[ $TERM != "screen" ]] && exec tmux
|
# Customizations are in ~/.oh-my-zsh/custom/*.zsh (auto-loaded)
|
||||||
# If you come from bash you might have to change your $PATH.
|
|
||||||
# export PATH=$HOME/bin:/usr/local/bin:$PATH
|
|
||||||
|
|
||||||
include () {
|
# ============================================================================
|
||||||
[[ -f "$1" ]] && source "$1"
|
# Oh-My-Zsh Configuration (BEFORE sourcing oh-my-zsh.sh)
|
||||||
}
|
# ============================================================================
|
||||||
# Path to your oh-my-zsh installation.
|
|
||||||
export ZSH=~/.oh-my-zsh
|
|
||||||
# unset LD_PRELOAD
|
|
||||||
|
|
||||||
# Set name of the theme to load. Optionally, if you set this to "random"
|
# Path to oh-my-zsh installation
|
||||||
# it'll load a random theme each time that oh-my-zsh is loaded.
|
export ZSH="$HOME/.oh-my-zsh"
|
||||||
# See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
|
|
||||||
ZSH_THEME="bira"
|
|
||||||
# ZSH_THEME="adben"
|
|
||||||
|
|
||||||
# Uncomment the following line to use case-sensitive completion.
|
# Theme - see https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
|
||||||
# CASE_SENSITIVE="true"
|
ZSH_THEME="bira-time"
|
||||||
#
|
|
||||||
|
# Case-insensitive completion (a-z matches A-Z)
|
||||||
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}'
|
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}'
|
||||||
|
|
||||||
HISTSIZE=9000
|
# Hyphen-insensitive completion (_ and - are interchangeable)
|
||||||
HISTFILESIZE=9000
|
|
||||||
#HISTFILE="~/.bash_history"
|
|
||||||
|
|
||||||
# Uncomment the following line to use hyphen-insensitive completion. Case
|
|
||||||
# sensitive completion must be off. _ and - will be interchangeable.
|
|
||||||
HYPHEN_INSENSITIVE="true"
|
HYPHEN_INSENSITIVE="true"
|
||||||
|
|
||||||
# Uncomment the following line to disable bi-weekly auto-update checks.
|
# Disable automatic updates (update manually with: omz update)
|
||||||
DISABLE_AUTO_UPDATE="true"
|
zstyle ':omz:update' mode disabled
|
||||||
|
|
||||||
# Uncomment the following line to change how often to auto-update (in days).
|
# Show red dots while waiting for completion
|
||||||
# export UPDATE_ZSH_DAYS=13
|
|
||||||
|
|
||||||
# Uncomment the following line to disable colors in ls.
|
|
||||||
# DISABLE_LS_COLORS="true"
|
|
||||||
|
|
||||||
# Uncomment the following line to disable auto-setting terminal title.
|
|
||||||
# DISABLE_AUTO_TITLE="true"
|
|
||||||
|
|
||||||
# Uncomment the following line to enable command auto-correction.
|
|
||||||
# ENABLE_CORRECTION="true"
|
|
||||||
|
|
||||||
# Uncomment the following line to display red dots whilst waiting for completion.
|
|
||||||
COMPLETION_WAITING_DOTS="true"
|
COMPLETION_WAITING_DOTS="true"
|
||||||
|
|
||||||
# Uncomment the following line if you want to disable marking untracked files
|
# Don't mark untracked files as dirty (faster for large repos)
|
||||||
# under VCS as dirty. This makes repository status check for large repositories
|
|
||||||
# much, much faster.
|
|
||||||
DISABLE_UNTRACKED_FILES_DIRTY="true"
|
DISABLE_UNTRACKED_FILES_DIRTY="true"
|
||||||
|
|
||||||
# Uncomment the following line if you want to change the command execution time
|
# History timestamp format
|
||||||
# stamp shown in the history command output.
|
|
||||||
# The optional three formats: "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
|
|
||||||
HIST_STAMPS="dd.mm.yyyy"
|
HIST_STAMPS="dd.mm.yyyy"
|
||||||
|
|
||||||
# Would you like to use another custom folder than $ZSH/custom?
|
# History settings
|
||||||
# ZSH_CUSTOM=/path/to/new-custom-folder
|
HISTSIZE=10000
|
||||||
|
SAVEHIST=10000
|
||||||
|
|
||||||
# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
|
# Plugins - loaded from $ZSH/plugins/ and $ZSH_CUSTOM/plugins/
|
||||||
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
|
# Keep this list minimal for fast startup
|
||||||
# Example format: plugins=(rails git textmate ruby lighthouse)
|
plugins=(
|
||||||
# Add wisely, as too many plugins slow down shell startup.
|
git
|
||||||
plugins=(encode64 gitignore zsh-z)
|
encode64
|
||||||
|
gitignore
|
||||||
|
z
|
||||||
|
)
|
||||||
|
|
||||||
|
# ============================================================================
|
||||||
|
# Load Oh-My-Zsh
|
||||||
|
# ============================================================================
|
||||||
source $ZSH/oh-my-zsh.sh
|
source $ZSH/oh-my-zsh.sh
|
||||||
# Update PROMPT to include current time
|
|
||||||
local time='%{$terminfo[bold]$fg[red]%}%*%{$reset_color%}'
|
|
||||||
PROMPT="╭─${user_host}${time}${current_dir}${rvm_ruby}${git_branch}${venv_prompt}
|
|
||||||
╰─%B${user_symbol}%b "
|
|
||||||
# tmux source-file /home/viktor/.tmux.conf
|
|
||||||
|
|
||||||
# User configuration
|
# ============================================================================
|
||||||
|
# Post-OMZ Settings
|
||||||
|
# ============================================================================
|
||||||
|
|
||||||
# export MANPATH="/usr/local/man:$MANPATH"
|
# Enable extended glob patterns
|
||||||
|
setopt extendedglob
|
||||||
|
|
||||||
# You may need to manually set your language environment
|
# Disable command_not_found handler (can be slow)
|
||||||
# export LANG=en_US.UTF-8
|
unset command_not_found_handle
|
||||||
|
|
||||||
# Preferred editor for local and remote sessions
|
|
||||||
if [[ -n $SSH_CONNECTION ]]; then
|
|
||||||
export EDITOR='vim'
|
|
||||||
else
|
|
||||||
# export EDITOR='mvim'
|
|
||||||
export EDITOR='vim'
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Compilation flags
|
|
||||||
# export ARCHFLAGS="-arch x86_64"
|
|
||||||
|
|
||||||
# ssh
|
|
||||||
# export SSH_KEY_PATH="~/.ssh/rsa_id"
|
|
||||||
|
|
||||||
# Set personal aliases, overriding those provided by oh-my-zsh libs,
|
|
||||||
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
|
|
||||||
# users are encouraged to define aliases within the ZSH_CUSTOM folder.
|
|
||||||
# For a full list of active aliases, run `alias`.
|
|
||||||
#
|
|
||||||
# Example aliases
|
|
||||||
# alias zshconfig="mate ~/.zshrc"
|
|
||||||
# alias ohmyzsh="mate ~/.oh-my-zsh"
|
|
||||||
#eval "$(jump shell)"
|
|
||||||
|
|
||||||
# Load aliases
|
|
||||||
. ~/.bash_aliases
|
|
||||||
|
|
||||||
# . ~/.bash_completion
|
|
||||||
|
|
||||||
# Locale settings for perl
|
|
||||||
#export LC_CTYPE=en_US.UTF-8
|
|
||||||
#export LC_ALL=C
|
|
||||||
#export LC_ALL=en_US.UTF-8
|
|
||||||
|
|
||||||
# Defined in ~/.zshenv
|
|
||||||
PYENV_ROOT="$HOME/.pyenv"
|
|
||||||
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
|
|
||||||
eval "$(pyenv init - bash)"
|
|
||||||
|
|
||||||
#export PYENV_VIRTUALENVWRAPPER_PREFER_PYVENV="true"
|
|
||||||
#export WORKON_HOME=$HOME/.virtualenvs
|
|
||||||
#pyenv virtualenvwrapper_lazy
|
|
||||||
|
|
||||||
include /usr/local/bin/virtualenvwrapper.sh
|
|
||||||
# eval ssh-agent > /dev/null
|
|
||||||
# VIRTUALENVWRAPPER_PYTHON=python3
|
|
||||||
export PYTHONBREAKPOINT=ipdb.set_trace
|
|
||||||
include ~/.zshenv
|
|
||||||
|
|
||||||
# Color man pages
|
# Color man pages
|
||||||
export LESS_TERMCAP_mb=$'\e[1;32m'
|
export LESS_TERMCAP_mb=$'\e[1;32m'
|
||||||
|
|
@ -138,51 +66,13 @@ export LESS_TERMCAP_so=$'\e[01;33m'
|
||||||
export LESS_TERMCAP_ue=$'\e[0m'
|
export LESS_TERMCAP_ue=$'\e[0m'
|
||||||
export LESS_TERMCAP_us=$'\e[1;4;31m'
|
export LESS_TERMCAP_us=$'\e[1;4;31m'
|
||||||
|
|
||||||
# Enable extended glob
|
# ============================================================================
|
||||||
setopt extendedglob
|
# Files in ~/.oh-my-zsh/custom/ are auto-loaded:
|
||||||
|
# - aliases.zsh : All aliases
|
||||||
# Enable Ctrl-x-e to edit command line
|
# - functions.zsh : All functions
|
||||||
autoload -U edit-command-line
|
# - path.zsh : PATH modifications
|
||||||
# Emacs style
|
# - prompt.zsh : Custom prompt
|
||||||
zle -N edit-command-line
|
# - keybindings.zsh : Key bindings
|
||||||
bindkey '^xe' edit-command-line
|
# - secrets.zsh : API tokens (gitignored)
|
||||||
bindkey '^x^e' edit-command-line
|
# - tools/*.zsh : Tool-specific configs (pyenv, nvm, kubectl)
|
||||||
# Vi style:
|
# ============================================================================
|
||||||
# zle -N edit-command-line
|
|
||||||
# bindkey -M vicmd v edit-command-line
|
|
||||||
|
|
||||||
# add GO to path
|
|
||||||
export PATH="/home/wizard/go/bin:$PATH"
|
|
||||||
export PATH="/home/wizard/.local/bin:$PATH"
|
|
||||||
#export GO111MODULE=on
|
|
||||||
export GOPATH="/home/$USER/go"
|
|
||||||
|
|
||||||
# add JDK 12 go path
|
|
||||||
export PATH="/opt/jdk-12.0.1/bin:$PATH"
|
|
||||||
|
|
||||||
# add azure core tools to path
|
|
||||||
# export PATH="/opt/azure/:$PATH"
|
|
||||||
|
|
||||||
unset command_not_found_handle
|
|
||||||
|
|
||||||
# Load nvm
|
|
||||||
export NVM_DIR="$HOME/.nvm"
|
|
||||||
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"# This loads nvm
|
|
||||||
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"# This loads nvm bash_completion
|
|
||||||
|
|
||||||
export PATH="/home/viktor/.local/bin:$PATH"
|
|
||||||
|
|
||||||
# Load Z to jump around recent dirs
|
|
||||||
#. ~/z.sh
|
|
||||||
|
|
||||||
fpath+=~/.zfunc
|
|
||||||
autoload -Uz compinit && compinit
|
|
||||||
|
|
||||||
# add k8s autocompletion, must be after compinit!
|
|
||||||
if which kubectl >/dev/null 2>/dev/null; then
|
|
||||||
source <(kubectl completion zsh)
|
|
||||||
fi
|
|
||||||
include /etc/profile.d/golang_path.sh
|
|
||||||
|
|
||||||
# krew path
|
|
||||||
export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue