Created
June 8, 2022 07:01
-
-
Save jancimajek/be31985541dd537b7f834a87c917df44 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Protect against non-zsh execution of Oh My Zsh (use POSIX syntax here) | |
[ -n "$ZSH_VERSION" ] || { | |
# ANSI formatting function (\033[<code>m) | |
# 0: reset, 1: bold, 4: underline, 22: no bold, 24: no underline, 31: red, 33: yellow | |
omz_f() { | |
[ $# -gt 0 ] || return | |
IFS=";" printf "\033[%sm" $* | |
} | |
# If stdout is not a terminal ignore all formatting | |
[ -t 1 ] || omz_f() { :; } | |
omz_ptree() { | |
# Get process tree of the current process | |
pid=$$; pids="$pid" | |
while [ ${pid-0} -ne 1 ] && ppid=$(ps -e -o pid,ppid | awk "\$1 == $pid { print \$2 }"); do | |
pids="$pids $pid"; pid=$ppid | |
done | |
# Show process tree | |
case "$(uname)" in | |
Linux) ps -o ppid,pid,command -f -p $pids 2>/dev/null ;; | |
Darwin|*) ps -o ppid,pid,command -p $pids 2>/dev/null ;; | |
esac | |
# If ps command failed, try Busybox ps | |
[ $? -eq 0 ] || ps -o ppid,pid,comm | awk "NR == 1 || index(\"$pids\", \$2) != 0" | |
} | |
{ | |
shell=$(ps -o pid,comm | awk "\$1 == $$ { print \$2 }") | |
printf "$(omz_f 1 31)Error:$(omz_f 22) Oh My Zsh can't be loaded from: $(omz_f 1)${shell}$(omz_f 22). " | |
printf "You need to run $(omz_f 1)zsh$(omz_f 22) instead.$(omz_f 0)\n" | |
printf "$(omz_f 33)Here's the process tree:$(omz_f 22)\n\n" | |
omz_ptree | |
printf "$(omz_f 0)\n" | |
} >&2 | |
return 1 | |
} | |
# If ZSH is not defined, use the current script's directory. | |
[[ -z "$ZSH" ]] && export ZSH="${${(%):-%x}:a:h}" | |
# Set ZSH_CACHE_DIR to the path where cache files should be created | |
# or else we will use the default cache/ | |
if [[ -z "$ZSH_CACHE_DIR" ]]; then | |
ZSH_CACHE_DIR="$ZSH/cache" | |
fi | |
# Make sure $ZSH_CACHE_DIR is writable, otherwise use a directory in $HOME | |
if [[ ! -w "$ZSH_CACHE_DIR" ]]; then | |
ZSH_CACHE_DIR="${XDG_CACHE_HOME:-$HOME/.cache}/oh-my-zsh" | |
fi | |
# Create cache and completions dir and add to $fpath | |
mkdir -p "$ZSH_CACHE_DIR/completions" | |
(( ${fpath[(Ie)"$ZSH_CACHE_DIR/completions"]} )) || fpath=("$ZSH_CACHE_DIR/completions" $fpath) | |
# Check for updates on initial load... | |
if [[ "$DISABLE_AUTO_UPDATE" != true ]]; then | |
source "$ZSH/tools/check_for_upgrade.sh" | |
fi | |
# Initializes Oh My Zsh | |
# add a function path | |
fpath=("$ZSH/functions" "$ZSH/completions" $fpath) | |
# Load all stock functions (from $fpath files) called below. | |
autoload -U compaudit compinit | |
# Set ZSH_CUSTOM to the path where your custom config files | |
# and plugins exists, or else we will use the default custom/ | |
if [[ -z "$ZSH_CUSTOM" ]]; then | |
ZSH_CUSTOM="$ZSH/custom" | |
fi | |
is_plugin() { | |
local base_dir=$1 | |
local name=$2 | |
builtin test -f $base_dir/plugins/$name/$name.plugin.zsh \ | |
|| builtin test -f $base_dir/plugins/$name/_$name | |
} | |
# Add all defined plugins to fpath. This must be done | |
# before running compinit. | |
for plugin ($plugins); do | |
if is_plugin "$ZSH_CUSTOM" "$plugin"; then | |
fpath=("$ZSH_CUSTOM/plugins/$plugin" $fpath) | |
elif is_plugin "$ZSH" "$plugin"; then | |
fpath=("$ZSH/plugins/$plugin" $fpath) | |
else | |
echo "[oh-my-zsh] plugin '$plugin' not found" | |
fi | |
done | |
# Figure out the SHORT hostname | |
if [[ "$OSTYPE" = darwin* ]]; then | |
# macOS's $HOST changes with dhcp, etc. Use ComputerName if possible. | |
SHORT_HOST=$(scutil --get ComputerName 2>/dev/null) || SHORT_HOST="${HOST/.*/}" | |
else | |
SHORT_HOST="${HOST/.*/}" | |
fi | |
# Save the location of the current completion dump file. | |
if [[ -z "$ZSH_COMPDUMP" ]]; then | |
ZSH_COMPDUMP="${ZDOTDIR:-$HOME}/.zcompdump-${SHORT_HOST}-${ZSH_VERSION}" | |
fi | |
# Construct zcompdump OMZ metadata | |
zcompdump_revision="#omz revision: $(builtin cd -q "$ZSH"; git rev-parse HEAD 2>/dev/null)" | |
zcompdump_fpath="#omz fpath: $fpath" | |
# Delete the zcompdump file if OMZ zcompdump metadata changed | |
if ! command grep -q -Fx "$zcompdump_revision" "$ZSH_COMPDUMP" 2>/dev/null \ | |
|| ! command grep -q -Fx "$zcompdump_fpath" "$ZSH_COMPDUMP" 2>/dev/null; then | |
command rm -f "$ZSH_COMPDUMP" | |
zcompdump_refresh=1 | |
fi | |
if [[ "$ZSH_DISABLE_COMPFIX" != true ]]; then | |
source "$ZSH/lib/compfix.zsh" | |
# Load only from secure directories | |
compinit -i -d "$ZSH_COMPDUMP" | |
# If completion insecurities exist, warn the user | |
handle_completion_insecurities &| | |
else | |
# If the user wants it, load from all found directories | |
compinit -u -d "$ZSH_COMPDUMP" | |
fi | |
# Append zcompdump metadata if missing | |
if (( $zcompdump_refresh )) \ | |
|| ! command grep -q -Fx "$zcompdump_revision" "$ZSH_COMPDUMP" 2>/dev/null; then | |
# Use `tee` in case the $ZSH_COMPDUMP filename is invalid, to silence the error | |
# See https://github.com/ohmyzsh/ohmyzsh/commit/dd1a7269#commitcomment-39003489 | |
tee -a "$ZSH_COMPDUMP" &>/dev/null <<EOF | |
$zcompdump_revision | |
$zcompdump_fpath | |
EOF | |
fi | |
unset zcompdump_revision zcompdump_fpath zcompdump_refresh | |
# Load all of the config files in ~/oh-my-zsh that end in .zsh | |
# TIP: Add files you don't want in git to .gitignore | |
for config_file ("$ZSH"/lib/*.zsh); do | |
custom_config_file="$ZSH_CUSTOM/lib/${config_file:t}" | |
[[ -f "$custom_config_file" ]] && config_file="$custom_config_file" | |
source "$config_file" | |
done | |
unset custom_config_file | |
# Load all of the plugins that were defined in ~/.zshrc | |
for plugin ($plugins); do | |
if [[ -f "$ZSH_CUSTOM/plugins/$plugin/$plugin.plugin.zsh" ]]; then | |
source "$ZSH_CUSTOM/plugins/$plugin/$plugin.plugin.zsh" | |
elif [[ -f "$ZSH/plugins/$plugin/$plugin.plugin.zsh" ]]; then | |
source "$ZSH/plugins/$plugin/$plugin.plugin.zsh" | |
fi | |
done | |
unset plugin | |
# Load all of your custom configurations from custom/ | |
for config_file ("$ZSH_CUSTOM"/*.zsh(N)); do | |
source "$config_file" | |
done | |
unset config_file | |
# Load the theme | |
is_theme() { | |
local base_dir=$1 | |
local name=$2 | |
builtin test -f $base_dir/$name.zsh-theme | |
} | |
if [[ -n "$ZSH_THEME" ]]; then | |
if is_theme "$ZSH_CUSTOM" "$ZSH_THEME"; then | |
source "$ZSH_CUSTOM/$ZSH_THEME.zsh-theme" | |
elif is_theme "$ZSH_CUSTOM/themes" "$ZSH_THEME"; then | |
source "$ZSH_CUSTOM/themes/$ZSH_THEME.zsh-theme" | |
elif is_theme "$ZSH/themes" "$ZSH_THEME"; then | |
source "$ZSH/themes/$ZSH_THEME.zsh-theme" | |
else | |
echo "[oh-my-zsh] theme '$ZSH_THEME' not found" | |
fi | |
fi |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# If you come from bash you might have to change your $PATH. | |
export PATH=$HOME/bin:$PATH | |
# Path to your oh-my-zsh installation. | |
export ZSH="/Users/jan.majek/.oh-my-zsh" | |
# Set name of the theme to load --- if set to "random", it will | |
# load a random theme each time oh-my-zsh is loaded, in which case, | |
# to know which specific one was loaded, run: echo $RANDOM_THEME | |
# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes | |
# ZSH_THEME="robbyrussell" | |
# ZSH_THEME="agnoster" | |
# ZSH_THEME="amuse" | |
# Set list of themes to pick from when loading at random | |
# Setting this variable when ZSH_THEME=random will cause zsh to load | |
# a theme from this variable instead of looking in $ZSH/themes/ | |
# If set to an empty array, this variable will have no effect. | |
# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" ) | |
# Uncomment the following line to use case-sensitive completion. | |
# CASE_SENSITIVE="true" | |
# Uncomment the following line to use hyphen-insensitive completion. | |
# Case-sensitive completion must be off. _ and - will be interchangeable. | |
# HYPHEN_INSENSITIVE="true" | |
# Uncomment the following line to disable bi-weekly auto-update checks. | |
# DISABLE_AUTO_UPDATE="true" | |
# Uncomment the following line to automatically update without prompting. | |
# DISABLE_UPDATE_PROMPT="true" | |
# Uncomment the following line to change how often to auto-update (in days). | |
# export UPDATE_ZSH_DAYS=13 | |
# Uncomment the following line if pasting URLs and other text is messed up. | |
# DISABLE_MAGIC_FUNCTIONS="true" | |
# 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. | |
# Caution: this setting can cause issues with multiline prompts (zsh 5.7.1 and newer seem to work) | |
# See https://github.com/ohmyzsh/ohmyzsh/issues/5765 | |
# COMPLETION_WAITING_DOTS="true" | |
# Uncomment the 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 the following line if you want to change the command execution time | |
# stamp shown in the history command output. | |
# You can set one of the optional three formats: | |
# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd" | |
# or set a custom format using the strftime function format specifications, | |
# see 'man strftime' for details. | |
# HIST_STAMPS="mm/dd/yyyy" | |
# Would you like to use another custom folder than $ZSH/custom? | |
# ZSH_CUSTOM=/path/to/new-custom-folder | |
# Which plugins would you like to load? | |
# Standard plugins can be found in $ZSH/plugins/ | |
# Custom plugins may be added to $ZSH_CUSTOM/plugins/ | |
# Example format: plugins=(rails git textmate ruby lighthouse) | |
# Add wisely, as too many plugins slow down shell startup. | |
plugins=( | |
git | |
colored-man-pages | |
docker | |
npm | |
yarn | |
zsh_reload | |
terraform | |
nvm | |
kubectl | |
gcloud | |
docker-compose | |
zsh-autosuggestions | |
zsh-syntax-highlighting | |
history-substring-search | |
zsh-navigation-tools | |
# timer | |
) | |
CLOUDSDK_HOME="/Users/jan.majek/Applications/google-cloud-sdk" | |
# TIMER_FORMAT='[%d]' | |
# TIMER_PRECISION=2 | |
ZSH_AUTOSUGGEST_STRATEGY=(history completion) | |
source $ZSH/oh-my-zsh.sh | |
# User configuration | |
source <(stern --completion=zsh) | |
eval "$(starship init zsh)" | |
# autoload -U compinit && compinit | |
# zstyle ':completion:*' menu select | |
# export MANPATH="/usr/local/man:$MANPATH" | |
# You may need to manually set your language environment | |
# export LANG=en_US.UTF-8 | |
# 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" | |
# 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" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment