feat: move zsh to XDG
This commit is contained in:
		
							
								
								
									
										4
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -10,3 +10,7 @@
 | 
				
			|||||||
!git
 | 
					!git
 | 
				
			||||||
!alacritty
 | 
					!alacritty
 | 
				
			||||||
!nvim
 | 
					!nvim
 | 
				
			||||||
 | 
					!zsh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# explicity ignore zcoredump
 | 
				
			||||||
 | 
					zsh/.zcomp*
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										1
									
								
								zsh/.zprofile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								zsh/.zprofile
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					export PATH="/usr/local/bin:/opt/homebrew/bin:$Home/neovim/bin:${PATH}"
 | 
				
			||||||
							
								
								
									
										89
									
								
								zsh/.zshrc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										89
									
								
								zsh/.zshrc
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,89 @@
 | 
				
			|||||||
 | 
					# default configuration as per https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
 | 
				
			||||||
 | 
					export XDG_CONFIG_HOME="$HOME/.config"
 | 
				
			||||||
 | 
					export XDG_CACHE_HOME="$HOME/.cache"
 | 
				
			||||||
 | 
					export XDG_DATA_HOME="$HOME/.local/share"
 | 
				
			||||||
 | 
					export XDG_STATE_HOME="$HOME/.local/state"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# 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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# zsh history file 
 | 
				
			||||||
 | 
					export HISTFILE="$XDG_STATE_HOME/zsh/history"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Path to your oh-my-zsh installation.
 | 
				
			||||||
 | 
					export ZSH="$HOME/.oh-my-zsh"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Set name of the theme to load
 | 
				
			||||||
 | 
					ZSH_THEME="powerlevel10k/powerlevel10k"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# just remind me to update when it's time
 | 
				
			||||||
 | 
					zstyle ':omz:update' mode reminder  
 | 
				
			||||||
 | 
					zstyle ':omz:update' frequency 7
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# pre plugin load
 | 
				
			||||||
 | 
					export NVM_COMPLETION=true
 | 
				
			||||||
 | 
					export NVM_AUTO_USE=true
 | 
				
			||||||
 | 
					# i don't lazy load nvm because neovim doesn't work well with it
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# plugins
 | 
				
			||||||
 | 
					plugins=(zsh-nvm git zsh-autosuggestions zsh-syntax-highlighting)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# TODO: lose oh my zsh at some point
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# oh my zsh
 | 
				
			||||||
 | 
					source $ZSH/oh-my-zsh.sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# language environment
 | 
				
			||||||
 | 
					export LANG=en_US.UTF-8
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# brew sbin
 | 
				
			||||||
 | 
					export PATH="/opt/homebrew/sbin:$PATH"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# pyenv
 | 
				
			||||||
 | 
					export PYENV_ROOT="$HOME/.pyenv"
 | 
				
			||||||
 | 
					command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
 | 
				
			||||||
 | 
					eval "$(pyenv init -)"
 | 
				
			||||||
 | 
					eval "$(pyenv virtualenv-init -)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# # nvim
 | 
				
			||||||
 | 
					export PATH="$HOME/neovim/bin:$PATH"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# go
 | 
				
			||||||
 | 
					export GOHOME=$HOME/go
 | 
				
			||||||
 | 
					export PATH=$PATH:$GOHOME/bin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# ggman
 | 
				
			||||||
 | 
					export GGROOT=/Users/janezicmatej/Desktop/git
 | 
				
			||||||
 | 
					eval "$(ggman shellrc)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# gpg
 | 
				
			||||||
 | 
					export GPG_TTY=$(tty)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# deno
 | 
				
			||||||
 | 
					export DENO_INSTALL="/Users/janezicmatej/.deno"
 | 
				
			||||||
 | 
					export PATH="$DENO_INSTALL/bin:$PATH"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# dvm
 | 
				
			||||||
 | 
					export DVM_DIR="/Users/janezicmatej/.dvm"
 | 
				
			||||||
 | 
					export PATH="$DVM_DIR/bin:$PATH"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# editor
 | 
				
			||||||
 | 
					export EDITOR=nvim
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# gcloud sdk
 | 
				
			||||||
 | 
					source "$(brew --prefix)/share/google-cloud-sdk/path.zsh.inc"
 | 
				
			||||||
 | 
					source "$(brew --prefix)/share/google-cloud-sdk/completion.zsh.inc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# custom functions and aliases
 | 
				
			||||||
 | 
					source "$ZDOTDIR/aliases.zsh"
 | 
				
			||||||
 | 
					source "$ZDOTDIR/functions.zsh"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
 | 
				
			||||||
 | 
					[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# opam configuration
 | 
				
			||||||
 | 
					[[ ! -r /Users/janezicmatej/.opam/opam-init/init.zsh ]] || source /Users/janezicmatej/.opam/opam-init/init.zsh  > /dev/null 2> /dev/null
 | 
				
			||||||
							
								
								
									
										28
									
								
								zsh/aliases.zsh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								zsh/aliases.zsh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,28 @@
 | 
				
			|||||||
 | 
					alias n=nvim_ve
 | 
				
			||||||
 | 
					alias vim=nvim_ve
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# navigation
 | 
				
			||||||
 | 
					alias cdgit="cd $GGROOT"
 | 
				
			||||||
 | 
					alias icloud="cd $HOME/Library/Mobile\ Documents/com\~apple\~CloudDocs"
 | 
				
			||||||
 | 
					alias temp="cd $HOME/Desktop/temp"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# apple specific
 | 
				
			||||||
 | 
					alias accenton="defaults write -g ApplePressAndHoldEnabled -bool true"
 | 
				
			||||||
 | 
					alias accentoff="defaults write -g ApplePressAndHoldEnabled -bool false"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# docker
 | 
				
			||||||
 | 
					alias aafh=./helper
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# git
 | 
				
			||||||
 | 
					alias gcan="git commit -v --amend --no-edit"
 | 
				
			||||||
 | 
					alias gros="git reset origin/$(git_current_branch) --soft"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# quick edit .dotfiles
 | 
				
			||||||
 | 
					alias zshrc="n $ZDOTDIR/.zshrc && source $ZDOTDIR/.zshrc"
 | 
				
			||||||
 | 
					alias addalias="n $ZDOTDIR/aliases.zsh && source $ZDOTDIR/.zshrc"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# unsorted
 | 
				
			||||||
 | 
					alias ci="glab ci list"
 | 
				
			||||||
 | 
					alias bm=batman
 | 
				
			||||||
 | 
					alias grow="~/.local/bin/cbonsai -liWC -M 15 -t 2 -w 60 -s $(date +%s)"
 | 
				
			||||||
 | 
					alias clean_ds_store='find . -name ".DS_Store" -type f -delete -print'
 | 
				
			||||||
							
								
								
									
										46
									
								
								zsh/functions.zsh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								zsh/functions.zsh
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,46 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					function nvim_ve {
 | 
				
			||||||
 | 
					  if [[ -e "$VIRTUAL_ENV" && -f "$VIRTUAL_ENV/bin/activate" ]]; then
 | 
				
			||||||
 | 
					    source "$VIRTUAL_ENV/bin/activate"
 | 
				
			||||||
 | 
					    command nvim $@
 | 
				
			||||||
 | 
					    deactivate
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    command nvim $@
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					alias nvim=nvim_ve
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function ffb {
 | 
				
			||||||
 | 
					  if ! [[ -f package.json ]]; then
 | 
				
			||||||
 | 
					    echo "no package.json"
 | 
				
			||||||
 | 
					    return
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if [[ -f yarn.lock ]]; then
 | 
				
			||||||
 | 
					    PACKAGE_MANAGER=yarn
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    PACKAGE_MANAGER=npm
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if [[ -n $(grep "react-scripts" package.json) ]]; then
 | 
				
			||||||
 | 
					    BROWSER=none FORCE_COLOR=true "$PACKAGE_MANAGER" start | cat
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function afm {
 | 
				
			||||||
 | 
					  RES=$(curl -s "https://$1/api/monitoring/requirements")
 | 
				
			||||||
 | 
					  COUNT=$(echo "$RES" | grep -c $2)
 | 
				
			||||||
 | 
					  if [[ $COUNT -ge 0 ]]; then
 | 
				
			||||||
 | 
					    VER=$(echo "$RES" | jq '.[] | select(.name | contains("'"$2"'")).version')
 | 
				
			||||||
 | 
					    # OP=$(echo "$RES" | jq '.[] | select(.name | contains("'"$2"'")).requirement?[0][0]')
 | 
				
			||||||
 | 
					    # echo "$2""$(echo "$OP" | tr -d '"')""$(echo "$VER" | tr -d '"')"
 | 
				
			||||||
 | 
					    echo "$2""==""$(echo "$VER" | tr -d '"')"
 | 
				
			||||||
 | 
					  fi
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function nukepip {
 | 
				
			||||||
 | 
					  pip uninstall $(pip freeze) -y
 | 
				
			||||||
 | 
					  pip install -r $(pyenv root)/default-packages
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user