···11+#!/bin/bash
22+33+# cut_video_segment - Remove time segments from video files
44+# Usage: cut_video_segment <input> <start> <end> <output>
55+# Times: HH:MM:SS, MM:SS, or seconds
66+# Example: ffmpeg_cut_video_segment video.mp4 7:22 7:33 clean.mp4
77+ffmpeg_cut_video_segment() {
88+ if [[ $# -ne 4 ]]; then
99+ echo "Usage: cut_video_segment <input_file> <start_time> <end_time> <output_file>"
1010+ echo "Time format: HH:MM:SS or seconds"
1111+ echo "Example: cut_video_segment video.mp4 7:22 7:33 output.mp4"
1212+ return 1
1313+ fi
1414+1515+ local input_file="$1"
1616+ local start_time="$2"
1717+ local end_time="$3"
1818+ local output_file="$4"
1919+2020+ # Check if input file exists
2121+ if [[ ! -f "$input_file" ]]; then
2222+ echo "Error: Input file '$input_file' not found"
2323+ return 1
2424+ fi
2525+2626+ # Convert time to seconds if needed
2727+ local start_seconds=$(ffmpeg -f lavfi -i "nullsrc" -t 1 -f null - 2>&1 | grep -o "time=[0-9:]*" | head -1 | cut -d= -f2)
2828+ start_seconds=$(echo "$start_time" | awk -F: '{if(NF==1) print $1; else if(NF==2) print $1*60+$2; else print $1*3600+$2*60+$3}')
2929+ local end_seconds=$(echo "$end_time" | awk -F: '{if(NF==1) print $1; else if(NF==2) print $1*60+$2; else print $1*3600+$2*60+$3}')
3030+3131+ echo "Cutting segment from $start_time to $end_time..."
3232+ echo "Working with temporary files..."
3333+3434+ # Create temp directory
3535+ local temp_dir=$(mktemp -d)
3636+ local part1="$temp_dir/part1.mp4"
3737+ local part2="$temp_dir/part2.mp4"
3838+ local filelist="$temp_dir/filelist.txt"
3939+4040+ # Step 1: Extract everything before the cut
4141+ echo "Step 1: Extracting part before $start_time..."
4242+ ffmpeg -i "$input_file" -t "$start_seconds" -c copy "$part1" -loglevel error
4343+4444+ # Step 2: Extract everything after the cut
4545+ echo "Step 2: Extracting part after $end_time..."
4646+ ffmpeg -i "$input_file" -ss "$end_seconds" -c copy "$part2" -loglevel error
4747+4848+ # Step 3: Create file list for concatenation
4949+ echo "file '$part1'" > "$filelist"
5050+ echo "file '$part2'" >> "$filelist"
5151+5252+ # Step 4: Concatenate the parts
5353+ echo "Step 3: Joining parts together..."
5454+ ffmpeg -f concat -safe 0 -i "$filelist" -c copy "$output_file" -loglevel error
5555+5656+ # Clean up
5757+ rm -rf "$temp_dir"
5858+5959+ echo "✅ Done! Output saved as: $output_file"
6060+}
6161+6262+# ffmpeg_extract_video_segment - Extract ONLY the segment between two timestamps
6363+# Usage: ffmpeg_extract_video_segment <input> <start> <end> <output>
6464+# Times: HH:MM:SS, MM:SS, or seconds
6565+# Example: ffmpeg_extract_video_segment video.mp4 7:22 7:33 highlight.mp4
6666+ffmpeg_extract_video_segment() {
6767+ if [[ $# -ne 4 ]]; then
6868+ echo "Usage: ffmpeg_extract_video_segment <input_file> <start_time> <end_time> <output_file>"
6969+ echo "Time format: HH:MM:SS or seconds"
7070+ echo "Example: ffmpeg_extract_video_segment video.mp4 7:22 7:33 highlight.mp4"
7171+ return 1
7272+ fi
7373+7474+ local input_file="$1"
7575+ local start_time="$2"
7676+ local end_time="$3"
7777+ local output_file="$4"
7878+7979+ # Check if input file exists
8080+ if [[ ! -f "$input_file" ]]; then
8181+ echo "Error: Input file '$input_file' not found"
8282+ return 1
8383+ fi
8484+8585+ # Convert time to seconds if needed
8686+ local start_seconds=$(echo "$start_time" | awk -F: '{if(NF==1) print $1; else if(NF==2) print $1*60+$2; else print $1*3600+$2*60+$3}')
8787+ local end_seconds=$(echo "$end_time" | awk -F: '{if(NF==1) print $1; else if(NF==2) print $1*60+$2; else print $1*3600+$2*60+$3}')
8888+8989+ # Calculate duration
9090+ local duration=$((end_seconds - start_seconds))
9191+9292+ if [[ $duration -le 0 ]]; then
9393+ echo "Error: End time must be after start time"
9494+ return 1
9595+ fi
9696+9797+ echo "Extracting segment from $start_time to $end_time (duration: ${duration}s)..."
9898+9999+ # Extract the segment directly
100100+ ffmpeg -i "$input_file" -ss "$start_seconds" -t "$duration" -c copy "$output_file" -loglevel error
101101+102102+ if [[ $? -eq 0 ]]; then
103103+ echo "✅ Done! Extracted segment saved as: $output_file"
104104+ else
105105+ echo "❌ Error: Failed to extract segment"
106106+ return 1
107107+ fi
108108+}
+60
zsh/.dotfiles/zsh/configs.shrc
···11+set -o vi
22+33+#bash completion
44+[[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && . "/usr/local/etc/profile.d/bash_completion.sh"
55+66+#This will create separate history files in your home directory
77+#MYTTY=`tty`
88+#HISTFILE=$HOME/.bash_history_`basename $MYTTY`
99+1010+# #allow e.g. "pip install -e .[full]" to work -> zsh uses square brackets for globbing / pattern matching.
1111+# #alias pip='noglob pip'
1212+1313+#always move hidden files as well
1414+#shopt -s dotglob
1515+1616+# ignore certification setings to add to history file
1717+# export HISTIGNORE='*TMP_CERT*:*BEGIN CERTIFICATE*' #does not work for zsh
1818+# ignore commands you don't want stored in the history with a space
1919+setopt HIST_IGNORE_SPACE
2020+2121+2222+# bindkey '^r' history-incremental-search-backward
2323+bindkey -M viins 'jk' vi-cmd-mode
2424+bindkey -M viins 'kj' vi-cmd-mode
2525+2626+# fzf search
2727+[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
2828+2929+##adoptopenjdk to change java versions with e.g. "jdk 11"
3030+#jdk() {
3131+# version=$1
3232+# export JAVA_HOME=$(/usr/libexec/java_home -v"$version");
3333+# # java -version
3434+# }
3535+## Set a default Java version for every new terminal session
3636+#jdk 17
3737+3838+3939+#gradle: from: https://docs.airbyte.com/contributing-to-airbyte/developing-locally#build-with-gradle
4040+export GRADLE_OPTS="-Dorg.gradle.workers.max=6"
4141+4242+# zoxide is a smarter cd command, inspired by z and autojump.
4343+source ~/.dotfiles/zsh/zoxide.sh
4444+eval "$(zoxide init zsh)"
4545+export PATH=~/.dotfiles/helpers/bin:$PATH
4646+4747+# function to automatically upgrade pip when creating a venv. Crate with create_venv ~/.venvs/my-env
4848+create_venv() {
4949+ python -m venv "$1"
5050+ source "$1/bin/activate"
5151+ pip install --upgrade pip
5252+}
5353+5454+# search content with fzf and open return directly with vim
5555+fzfvim() {
5656+ vim "$(rg . | fzf)"
5757+}
5858+5959+#mise replaces asdf
6060+eval "$(mise activate)"
+16
zsh/.dotfiles/zsh/end.shrc
···11+#python 3: set after mise
22+alias python=python3
33+alias pip=pip3
44+55+source /usr/share/zsh-theme-powerlevel10k/powerlevel10k.zsh-theme
66+77+# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
88+[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
99+typeset -g POWERLEVEL9K_INSTANT_PROMPT=off
1010+1111+#autocompletion kubernetes
1212+source <(kubectl completion zsh)
1313+1414+#needs to be on the end:
1515+source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
1616+source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
···11+# Generated by Powerlevel10k configuration wizard on 2025-07-06 at 16:54 CEST.
22+# Based on romkatv/powerlevel10k/config/p10k-lean-8colors.zsh, checksum 31091.
33+# Wizard options: nerdfont-v3 + powerline, small icons, unicode, lean_8colors, 1 line,
44+# compact, few icons, concise, transient_prompt, instant_prompt=verbose.
55+# Type `p10k configure` to generate another config.
66+#
77+# Config for Powerlevel10k with 8-color lean prompt style. Type `p10k configure` to generate
88+# your own config based on it.
99+#
1010+# Tip: Looking for a nice color? Here's a one-liner to print colormap.
1111+#
1212+# for i in {0..255}; do print -Pn "%K{$i} %k%F{$i}${(l:3::0:)i}%f " ${${(M)$((i%6)):#3}:+$'\n'}; done
1313+1414+# Temporarily change options.
1515+'builtin' 'local' '-a' 'p10k_config_opts'
1616+[[ ! -o 'aliases' ]] || p10k_config_opts+=('aliases')
1717+[[ ! -o 'sh_glob' ]] || p10k_config_opts+=('sh_glob')
1818+[[ ! -o 'no_brace_expand' ]] || p10k_config_opts+=('no_brace_expand')
1919+'builtin' 'setopt' 'no_aliases' 'no_sh_glob' 'brace_expand'
2020+2121+() {
2222+ emulate -L zsh -o extended_glob
2323+2424+ # Unset all configuration options. This allows you to apply configuration changes without
2525+ # restarting zsh. Edit ~/.p10k.zsh and type `source ~/.p10k.zsh`.
2626+ unset -m '(POWERLEVEL9K_*|DEFAULT_USER)~POWERLEVEL9K_GITSTATUS_DIR'
2727+2828+ # Zsh >= 5.1 is required.
2929+ [[ $ZSH_VERSION == (5.<1->*|<6->.*) ]] || return
3030+3131+ # The list of segments shown on the left. Fill it with the most important segments.
3232+ typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(
3333+ # os_icon # os identifier
3434+ dir # current directory
3535+ vcs # git status
3636+ prompt_char # prompt symbol
3737+ )
3838+3939+ # The list of segments shown on the right. Fill it with less important segments.
4040+ # Right prompt on the last prompt line (where you are typing your commands) gets
4141+ # automatically hidden when the input line reaches it. Right prompt above the
4242+ # last prompt line gets hidden if it would overlap with left prompt.
4343+ typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(
4444+ status # exit code of the last command
4545+ command_execution_time # duration of the last command
4646+ background_jobs # presence of background jobs
4747+ direnv # direnv status (https://direnv.net/)
4848+ asdf # asdf version manager (https://github.com/asdf-vm/asdf)
4949+ virtualenv # python virtual environment (https://docs.python.org/3/library/venv.html)
5050+ anaconda # conda environment (https://conda.io/)
5151+ pyenv # python environment (https://github.com/pyenv/pyenv)
5252+ goenv # go environment (https://github.com/syndbg/goenv)
5353+ nodenv # node.js version from nodenv (https://github.com/nodenv/nodenv)
5454+ nvm # node.js version from nvm (https://github.com/nvm-sh/nvm)
5555+ nodeenv # node.js environment (https://github.com/ekalinin/nodeenv)
5656+ # node_version # node.js version
5757+ # go_version # go version (https://golang.org)
5858+ # rust_version # rustc version (https://www.rust-lang.org)
5959+ # dotnet_version # .NET version (https://dotnet.microsoft.com)
6060+ # php_version # php version (https://www.php.net/)
6161+ # laravel_version # laravel php framework version (https://laravel.com/)
6262+ # java_version # java version (https://www.java.com/)
6363+ # package # name@version from package.json (https://docs.npmjs.com/files/package.json)
6464+ rbenv # ruby version from rbenv (https://github.com/rbenv/rbenv)
6565+ rvm # ruby version from rvm (https://rvm.io)
6666+ fvm # flutter version management (https://github.com/leoafarias/fvm)
6767+ luaenv # lua version from luaenv (https://github.com/cehoffman/luaenv)
6868+ jenv # java version from jenv (https://github.com/jenv/jenv)
6969+ plenv # perl version from plenv (https://github.com/tokuhirom/plenv)
7070+ perlbrew # perl version from perlbrew (https://github.com/gugod/App-perlbrew)
7171+ phpenv # php version from phpenv (https://github.com/phpenv/phpenv)
7272+ scalaenv # scala version from scalaenv (https://github.com/scalaenv/scalaenv)
7373+ haskell_stack # haskell version from stack (https://haskellstack.org/)
7474+ kubecontext # current kubernetes context (https://kubernetes.io/)
7575+ terraform # terraform workspace (https://www.terraform.io)
7676+ # terraform_version # terraform version (https://www.terraform.io)
7777+ aws # aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html)
7878+ aws_eb_env # aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/)
7979+ azure # azure account name (https://docs.microsoft.com/en-us/cli/azure)
8080+ gcloud # google cloud cli account and project (https://cloud.google.com/)
8181+ google_app_cred # google application credentials (https://cloud.google.com/docs/authentication/production)
8282+ toolbox # toolbox name (https://github.com/containers/toolbox)
8383+ context # user@hostname
8484+ nordvpn # nordvpn connection status, linux only (https://nordvpn.com/)
8585+ ranger # ranger shell (https://github.com/ranger/ranger)
8686+ yazi # yazi shell (https://github.com/sxyazi/yazi)
8787+ nnn # nnn shell (https://github.com/jarun/nnn)
8888+ lf # lf shell (https://github.com/gokcehan/lf)
8989+ xplr # xplr shell (https://github.com/sayanarijit/xplr)
9090+ vim_shell # vim shell indicator (:sh)
9191+ midnight_commander # midnight commander shell (https://midnight-commander.org/)
9292+ nix_shell # nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html)
9393+ chezmoi_shell # chezmoi shell (https://www.chezmoi.io/)
9494+ # vpn_ip # virtual private network indicator
9595+ # load # CPU load
9696+ # disk_usage # disk usage
9797+ # ram # free RAM
9898+ # swap # used swap
9999+ todo # todo items (https://github.com/todotxt/todo.txt-cli)
100100+ timewarrior # timewarrior tracking status (https://timewarrior.net/)
101101+ taskwarrior # taskwarrior task count (https://taskwarrior.org/)
102102+ per_directory_history # Oh My Zsh per-directory-history local/global indicator
103103+ # cpu_arch # CPU architecture
104104+ # time # current time
105105+ # ip # ip address and bandwidth usage for a specified network interface
106106+ # public_ip # public IP address
107107+ # proxy # system-wide http/https/ftp proxy
108108+ # battery # internal battery
109109+ # wifi # wifi speed
110110+ # example # example user-defined segment (see prompt_example function below)
111111+ )
112112+113113+ # Defines character set used by powerlevel10k. It's best to let `p10k configure` set it for you.
114114+ typeset -g POWERLEVEL9K_MODE=nerdfont-v3
115115+ # When set to `moderate`, some icons will have an extra space after them. This is meant to avoid
116116+ # icon overlap when using non-monospace fonts. When set to `none`, spaces are not added.
117117+ typeset -g POWERLEVEL9K_ICON_PADDING=none
118118+119119+ # Basic style options that define the overall look of your prompt. You probably don't want to
120120+ # change them.
121121+ typeset -g POWERLEVEL9K_BACKGROUND= # transparent background
122122+ typeset -g POWERLEVEL9K_{LEFT,RIGHT}_{LEFT,RIGHT}_WHITESPACE= # no surrounding whitespace
123123+ typeset -g POWERLEVEL9K_{LEFT,RIGHT}_SUBSEGMENT_SEPARATOR=' ' # separate segments with a space
124124+ typeset -g POWERLEVEL9K_{LEFT,RIGHT}_SEGMENT_SEPARATOR= # no end-of-line symbol
125125+126126+ # When set to true, icons appear before content on both sides of the prompt. When set
127127+ # to false, icons go after content. If empty or not set, icons go before content in the left
128128+ # prompt and after content in the right prompt.
129129+ #
130130+ # You can also override it for a specific segment:
131131+ #
132132+ # POWERLEVEL9K_STATUS_ICON_BEFORE_CONTENT=false
133133+ #
134134+ # Or for a specific segment in specific state:
135135+ #
136136+ # POWERLEVEL9K_DIR_NOT_WRITABLE_ICON_BEFORE_CONTENT=false
137137+ typeset -g POWERLEVEL9K_ICON_BEFORE_CONTENT=true
138138+139139+ # Add an empty line before each prompt.
140140+ typeset -g POWERLEVEL9K_PROMPT_ADD_NEWLINE=false
141141+142142+ # Connect left prompt lines with these symbols.
143143+ typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX=
144144+ typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_PREFIX=
145145+ typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX=
146146+ # Connect right prompt lines with these symbols.
147147+ typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_SUFFIX=
148148+ typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_SUFFIX=
149149+ typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_SUFFIX=
150150+151151+ # The left end of left prompt.
152152+ typeset -g POWERLEVEL9K_LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL=
153153+ # The right end of right prompt.
154154+ typeset -g POWERLEVEL9K_RIGHT_PROMPT_LAST_SEGMENT_END_SYMBOL=
155155+156156+ # Ruler, a.k.a. the horizontal line before each prompt. If you set it to true, you'll
157157+ # probably want to set POWERLEVEL9K_PROMPT_ADD_NEWLINE=false above and
158158+ # POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR=' ' below.
159159+ typeset -g POWERLEVEL9K_SHOW_RULER=false
160160+ typeset -g POWERLEVEL9K_RULER_CHAR='─' # reasonable alternative: '·'
161161+ typeset -g POWERLEVEL9K_RULER_FOREGROUND=7
162162+163163+ # Filler between left and right prompt on the first prompt line. You can set it to '·' or '─'
164164+ # to make it easier to see the alignment between left and right prompt and to separate prompt
165165+ # from command output. It serves the same purpose as ruler (see above) without increasing
166166+ # the number of prompt lines. You'll probably want to set POWERLEVEL9K_SHOW_RULER=false
167167+ # if using this. You might also like POWERLEVEL9K_PROMPT_ADD_NEWLINE=false for more compact
168168+ # prompt.
169169+ typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR=' '
170170+ if [[ $POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR != ' ' ]]; then
171171+ # The color of the filler.
172172+ typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND=7
173173+ # Add a space between the end of left prompt and the filler.
174174+ typeset -g POWERLEVEL9K_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL=' '
175175+ # Add a space between the filler and the start of right prompt.
176176+ typeset -g POWERLEVEL9K_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL=' '
177177+ # Start filler from the edge of the screen if there are no left segments on the first line.
178178+ typeset -g POWERLEVEL9K_EMPTY_LINE_LEFT_PROMPT_FIRST_SEGMENT_END_SYMBOL='%{%}'
179179+ # End filler on the edge of the screen if there are no right segments on the first line.
180180+ typeset -g POWERLEVEL9K_EMPTY_LINE_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL='%{%}'
181181+ fi
182182+183183+ #################################[ os_icon: os identifier ]##################################
184184+ # OS identifier color.
185185+ typeset -g POWERLEVEL9K_OS_ICON_FOREGROUND=
186186+ # Custom icon.
187187+ # typeset -g POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION='⭐'
188188+189189+ ################################[ prompt_char: prompt symbol ]################################
190190+ # Green prompt symbol if the last command succeeded.
191191+ typeset -g POWERLEVEL9K_PROMPT_CHAR_OK_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=2
192192+ # Red prompt symbol if the last command failed.
193193+ typeset -g POWERLEVEL9K_PROMPT_CHAR_ERROR_{VIINS,VICMD,VIVIS,VIOWR}_FOREGROUND=1
194194+ # Default prompt symbol.
195195+ typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIINS_CONTENT_EXPANSION='❯'
196196+ # Prompt symbol in command vi mode.
197197+ typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VICMD_CONTENT_EXPANSION='❮'
198198+ # Prompt symbol in visual vi mode.
199199+ typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIVIS_CONTENT_EXPANSION='V'
200200+ # Prompt symbol in overwrite vi mode.
201201+ typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIOWR_CONTENT_EXPANSION='▶'
202202+ typeset -g POWERLEVEL9K_PROMPT_CHAR_OVERWRITE_STATE=true
203203+ # No line terminator if prompt_char is the last segment.
204204+ typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL=''
205205+ # No line introducer if prompt_char is the first segment.
206206+ typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL=
207207+208208+ ##################################[ dir: current directory ]##################################
209209+ # Default current directory color.
210210+ typeset -g POWERLEVEL9K_DIR_FOREGROUND=4
211211+ # If directory is too long, shorten some of its segments to the shortest possible unique
212212+ # prefix. The shortened directory can be tab-completed to the original.
213213+ typeset -g POWERLEVEL9K_SHORTEN_STRATEGY=truncate_to_unique
214214+ # Replace removed segment suffixes with this symbol.
215215+ typeset -g POWERLEVEL9K_SHORTEN_DELIMITER=
216216+ # Color of the shortened directory segments.
217217+ typeset -g POWERLEVEL9K_DIR_SHORTENED_FOREGROUND=4
218218+ # Color of the anchor directory segments. Anchor segments are never shortened. The first
219219+ # segment is always an anchor.
220220+ typeset -g POWERLEVEL9K_DIR_ANCHOR_FOREGROUND=4
221221+ # Set to true to display anchor directory segments in bold.
222222+ typeset -g POWERLEVEL9K_DIR_ANCHOR_BOLD=false
223223+ # Don't shorten directories that contain any of these files. They are anchors.
224224+ local anchor_files=(
225225+ .bzr
226226+ .citc
227227+ .git
228228+ .hg
229229+ .node-version
230230+ .python-version
231231+ .go-version
232232+ .ruby-version
233233+ .lua-version
234234+ .java-version
235235+ .perl-version
236236+ .php-version
237237+ .tool-versions
238238+ .mise.toml
239239+ .shorten_folder_marker
240240+ .svn
241241+ .terraform
242242+ CVS
243243+ Cargo.toml
244244+ composer.json
245245+ go.mod
246246+ package.json
247247+ stack.yaml
248248+ )
249249+ typeset -g POWERLEVEL9K_SHORTEN_FOLDER_MARKER="(${(j:|:)anchor_files})"
250250+ # If set to "first" ("last"), remove everything before the first (last) subdirectory that contains
251251+ # files matching $POWERLEVEL9K_SHORTEN_FOLDER_MARKER. For example, when the current directory is
252252+ # /foo/bar/git_repo/nested_git_repo/baz, prompt will display git_repo/nested_git_repo/baz (first)
253253+ # or nested_git_repo/baz (last). This assumes that git_repo and nested_git_repo contain markers
254254+ # and other directories don't.
255255+ #
256256+ # Optionally, "first" and "last" can be followed by ":<offset>" where <offset> is an integer.
257257+ # This moves the truncation point to the right (positive offset) or to the left (negative offset)
258258+ # relative to the marker. Plain "first" and "last" are equivalent to "first:0" and "last:0"
259259+ # respectively.
260260+ typeset -g POWERLEVEL9K_DIR_TRUNCATE_BEFORE_MARKER=false
261261+ # Don't shorten this many last directory segments. They are anchors.
262262+ typeset -g POWERLEVEL9K_SHORTEN_DIR_LENGTH=1
263263+ # Shorten directory if it's longer than this even if there is space for it. The value can
264264+ # be either absolute (e.g., '80') or a percentage of terminal width (e.g, '50%'). If empty,
265265+ # directory will be shortened only when prompt doesn't fit or when other parameters demand it
266266+ # (see POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS and POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT below).
267267+ # If set to `0`, directory will always be shortened to its minimum length.
268268+ typeset -g POWERLEVEL9K_DIR_MAX_LENGTH=80
269269+ # When `dir` segment is on the last prompt line, try to shorten it enough to leave at least this
270270+ # many columns for typing commands.
271271+ typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS=40
272272+ # When `dir` segment is on the last prompt line, try to shorten it enough to leave at least
273273+ # COLUMNS * POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT * 0.01 columns for typing commands.
274274+ typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT=50
275275+ # If set to true, embed a hyperlink into the directory. Useful for quickly
276276+ # opening a directory in the file manager simply by clicking the link.
277277+ # Can also be handy when the directory is shortened, as it allows you to see
278278+ # the full directory that was used in previous commands.
279279+ typeset -g POWERLEVEL9K_DIR_HYPERLINK=false
280280+281281+ # Enable special styling for non-writable and non-existent directories. See POWERLEVEL9K_LOCK_ICON
282282+ # and POWERLEVEL9K_DIR_CLASSES below.
283283+ typeset -g POWERLEVEL9K_DIR_SHOW_WRITABLE=v3
284284+285285+ # The default icon shown next to non-writable and non-existent directories when
286286+ # POWERLEVEL9K_DIR_SHOW_WRITABLE is set to v3.
287287+ # typeset -g POWERLEVEL9K_LOCK_ICON='⭐'
288288+289289+ # POWERLEVEL9K_DIR_CLASSES allows you to specify custom icons and colors for different
290290+ # directories. It must be an array with 3 * N elements. Each triplet consists of:
291291+ #
292292+ # 1. A pattern against which the current directory ($PWD) is matched. Matching is done with
293293+ # extended_glob option enabled.
294294+ # 2. Directory class for the purpose of styling.
295295+ # 3. An empty string.
296296+ #
297297+ # Triplets are tried in order. The first triplet whose pattern matches $PWD wins.
298298+ #
299299+ # If POWERLEVEL9K_DIR_SHOW_WRITABLE is set to v3, non-writable and non-existent directories
300300+ # acquire class suffix _NOT_WRITABLE and NON_EXISTENT respectively.
301301+ #
302302+ # For example, given these settings:
303303+ #
304304+ # typeset -g POWERLEVEL9K_DIR_CLASSES=(
305305+ # '~/work(|/*)' WORK ''
306306+ # '~(|/*)' HOME ''
307307+ # '*' DEFAULT '')
308308+ #
309309+ # Whenever the current directory is ~/work or a subdirectory of ~/work, it gets styled with one
310310+ # of the following classes depending on its writability and existence: WORK, WORK_NOT_WRITABLE or
311311+ # WORK_NON_EXISTENT.
312312+ #
313313+ # Simply assigning classes to directories doesn't have any visible effects. It merely gives you an
314314+ # option to define custom colors and icons for different directory classes.
315315+ #
316316+ # # Styling for WORK.
317317+ # typeset -g POWERLEVEL9K_DIR_WORK_VISUAL_IDENTIFIER_EXPANSION='⭐'
318318+ # typeset -g POWERLEVEL9K_DIR_WORK_FOREGROUND=4
319319+ # typeset -g POWERLEVEL9K_DIR_WORK_SHORTENED_FOREGROUND=4
320320+ # typeset -g POWERLEVEL9K_DIR_WORK_ANCHOR_FOREGROUND=4
321321+ #
322322+ # # Styling for WORK_NOT_WRITABLE.
323323+ # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_VISUAL_IDENTIFIER_EXPANSION='⭐'
324324+ # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_FOREGROUND=4
325325+ # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_SHORTENED_FOREGROUND=4
326326+ # typeset -g POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_ANCHOR_FOREGROUND=4#
327327+ #
328328+ # Styling for WORK_NON_EXISTENT.
329329+ # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_VISUAL_IDENTIFIER_EXPANSION='⭐'
330330+ # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_FOREGROUND=4
331331+ # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_SHORTENED_FOREGROUND=4
332332+ # typeset -g POWERLEVEL9K_DIR_WORK_NON_EXISTENT_ANCHOR_FOREGROUND=4
333333+ #
334334+ # If a styling parameter isn't explicitly defined for some class, it falls back to the classless
335335+ # parameter. For example, if POWERLEVEL9K_DIR_WORK_NOT_WRITABLE_FOREGROUND is not set, it falls
336336+ # back to POWERLEVEL9K_DIR_FOREGROUND.
337337+ #
338338+ typeset -g POWERLEVEL9K_DIR_CLASSES=()
339339+340340+ # Custom prefix.
341341+ # typeset -g POWERLEVEL9K_DIR_PREFIX='%fin '
342342+343343+ #####################################[ vcs: git status ]######################################
344344+ # Branch icon. Set this parameter to '\UE0A0 ' for the popular Powerline branch icon.
345345+ typeset -g POWERLEVEL9K_VCS_BRANCH_ICON=
346346+347347+ # Untracked files icon. It's really a question mark, your font isn't broken.
348348+ # Change the value of this parameter to show a different icon.
349349+ typeset -g POWERLEVEL9K_VCS_UNTRACKED_ICON='?'
350350+351351+ # Formatter for Git status.
352352+ #
353353+ # Example output: master wip ⇣42⇡42 *42 merge ~42 +42 !42 ?42.
354354+ #
355355+ # You can edit the function to customize how Git status looks.
356356+ #
357357+ # VCS_STATUS_* parameters are set by gitstatus plugin. See reference:
358358+ # https://github.com/romkatv/gitstatus/blob/master/gitstatus.plugin.zsh.
359359+ function my_git_formatter() {
360360+ emulate -L zsh
361361+362362+ if [[ -n $P9K_CONTENT ]]; then
363363+ # If P9K_CONTENT is not empty, use it. It's either "loading" or from vcs_info (not from
364364+ # gitstatus plugin). VCS_STATUS_* parameters are not available in this case.
365365+ typeset -g my_git_format=$P9K_CONTENT
366366+ return
367367+ fi
368368+369369+ if (( $1 )); then
370370+ # Styling for up-to-date Git status.
371371+ local meta='%f' # default foreground
372372+ local clean='%2F' # green foreground
373373+ local modified='%3F' # yellow foreground
374374+ local untracked='%4F' # blue foreground
375375+ local conflicted='%1F' # red foreground
376376+ else
377377+ # Styling for incomplete and stale Git status.
378378+ local meta='%f' # default foreground
379379+ local clean='%f' # default foreground
380380+ local modified='%f' # default foreground
381381+ local untracked='%f' # default foreground
382382+ local conflicted='%f' # default foreground
383383+ fi
384384+385385+ local res
386386+387387+ if [[ -n $VCS_STATUS_LOCAL_BRANCH ]]; then
388388+ local branch=${(V)VCS_STATUS_LOCAL_BRANCH}
389389+ # If local branch name is at most 32 characters long, show it in full.
390390+ # Otherwise show the first 12 … the last 12.
391391+ # Tip: To always show local branch name in full without truncation, delete the next line.
392392+ (( $#branch > 32 )) && branch[13,-13]="…" # <-- this line
393393+ res+="${clean}${(g::)POWERLEVEL9K_VCS_BRANCH_ICON}${branch//\%/%%}"
394394+ fi
395395+396396+ if [[ -n $VCS_STATUS_TAG
397397+ # Show tag only if not on a branch.
398398+ # Tip: To always show tag, delete the next line.
399399+ && -z $VCS_STATUS_LOCAL_BRANCH # <-- this line
400400+ ]]; then
401401+ local tag=${(V)VCS_STATUS_TAG}
402402+ # If tag name is at most 32 characters long, show it in full.
403403+ # Otherwise show the first 12 … the last 12.
404404+ # Tip: To always show tag name in full without truncation, delete the next line.
405405+ (( $#tag > 32 )) && tag[13,-13]="…" # <-- this line
406406+ res+="${meta}#${clean}${tag//\%/%%}"
407407+ fi
408408+409409+ # Display the current Git commit if there is no branch and no tag.
410410+ # Tip: To always display the current Git commit, delete the next line.
411411+ [[ -z $VCS_STATUS_LOCAL_BRANCH && -z $VCS_STATUS_TAG ]] && # <-- this line
412412+ res+="${meta}@${clean}${VCS_STATUS_COMMIT[1,8]}"
413413+414414+ # Show tracking branch name if it differs from local branch.
415415+ if [[ -n ${VCS_STATUS_REMOTE_BRANCH:#$VCS_STATUS_LOCAL_BRANCH} ]]; then
416416+ res+="${meta}:${clean}${(V)VCS_STATUS_REMOTE_BRANCH//\%/%%}"
417417+ fi
418418+419419+ # Display "wip" if the latest commit's summary contains "wip" or "WIP".
420420+ if [[ $VCS_STATUS_COMMIT_SUMMARY == (|*[^[:alnum:]])(wip|WIP)(|[^[:alnum:]]*) ]]; then
421421+ res+=" ${modified}wip"
422422+ fi
423423+424424+ if (( VCS_STATUS_COMMITS_AHEAD || VCS_STATUS_COMMITS_BEHIND )); then
425425+ # ⇣42 if behind the remote.
426426+ (( VCS_STATUS_COMMITS_BEHIND )) && res+=" ${clean}⇣${VCS_STATUS_COMMITS_BEHIND}"
427427+ # ⇡42 if ahead of the remote; no leading space if also behind the remote: ⇣42⇡42.
428428+ (( VCS_STATUS_COMMITS_AHEAD && !VCS_STATUS_COMMITS_BEHIND )) && res+=" "
429429+ (( VCS_STATUS_COMMITS_AHEAD )) && res+="${clean}⇡${VCS_STATUS_COMMITS_AHEAD}"
430430+ elif [[ -n $VCS_STATUS_REMOTE_BRANCH ]]; then
431431+ # Tip: Uncomment the next line to display '=' if up to date with the remote.
432432+ # res+=" ${clean}="
433433+ fi
434434+435435+ # ⇠42 if behind the push remote.
436436+ (( VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=" ${clean}⇠${VCS_STATUS_PUSH_COMMITS_BEHIND}"
437437+ (( VCS_STATUS_PUSH_COMMITS_AHEAD && !VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=" "
438438+ # ⇢42 if ahead of the push remote; no leading space if also behind: ⇠42⇢42.
439439+ (( VCS_STATUS_PUSH_COMMITS_AHEAD )) && res+="${clean}⇢${VCS_STATUS_PUSH_COMMITS_AHEAD}"
440440+ # *42 if have stashes.
441441+ (( VCS_STATUS_STASHES )) && res+=" ${clean}*${VCS_STATUS_STASHES}"
442442+ # 'merge' if the repo is in an unusual state.
443443+ [[ -n $VCS_STATUS_ACTION ]] && res+=" ${conflicted}${VCS_STATUS_ACTION}"
444444+ # ~42 if have merge conflicts.
445445+ (( VCS_STATUS_NUM_CONFLICTED )) && res+=" ${conflicted}~${VCS_STATUS_NUM_CONFLICTED}"
446446+ # +42 if have staged changes.
447447+ (( VCS_STATUS_NUM_STAGED )) && res+=" ${modified}+${VCS_STATUS_NUM_STAGED}"
448448+ # !42 if have unstaged changes.
449449+ (( VCS_STATUS_NUM_UNSTAGED )) && res+=" ${modified}!${VCS_STATUS_NUM_UNSTAGED}"
450450+ # ?42 if have untracked files. It's really a question mark, your font isn't broken.
451451+ # See POWERLEVEL9K_VCS_UNTRACKED_ICON above if you want to use a different icon.
452452+ # Remove the next line if you don't want to see untracked files at all.
453453+ (( VCS_STATUS_NUM_UNTRACKED )) && res+=" ${untracked}${(g::)POWERLEVEL9K_VCS_UNTRACKED_ICON}${VCS_STATUS_NUM_UNTRACKED}"
454454+ # "─" if the number of unstaged files is unknown. This can happen due to
455455+ # POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY (see below) being set to a non-negative number lower
456456+ # than the number of files in the Git index, or due to bash.showDirtyState being set to false
457457+ # in the repository config. The number of staged and untracked files may also be unknown
458458+ # in this case.
459459+ (( VCS_STATUS_HAS_UNSTAGED == -1 )) && res+=" ${modified}─"
460460+461461+ typeset -g my_git_format=$res
462462+ }
463463+ functions -M my_git_formatter 2>/dev/null
464464+465465+ # Don't count the number of unstaged, untracked and conflicted files in Git repositories with
466466+ # more than this many files in the index. Negative value means infinity.
467467+ #
468468+ # If you are working in Git repositories with tens of millions of files and seeing performance
469469+ # sagging, try setting POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY to a number lower than the output
470470+ # of `git ls-files | wc -l`. Alternatively, add `bash.showDirtyState = false` to the repository's
471471+ # config: `git config bash.showDirtyState false`.
472472+ typeset -g POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY=-1
473473+474474+ # Don't show Git status in prompt for repositories whose workdir matches this pattern.
475475+ # For example, if set to '~', the Git repository at $HOME/.git will be ignored.
476476+ # Multiple patterns can be combined with '|': '~(|/foo)|/bar/baz/*'.
477477+ typeset -g POWERLEVEL9K_VCS_DISABLED_WORKDIR_PATTERN='~'
478478+479479+ # Disable the default Git status formatting.
480480+ typeset -g POWERLEVEL9K_VCS_DISABLE_GITSTATUS_FORMATTING=true
481481+ # Install our own Git status formatter.
482482+ typeset -g POWERLEVEL9K_VCS_CONTENT_EXPANSION='${$((my_git_formatter(1)))+${my_git_format}}'
483483+ typeset -g POWERLEVEL9K_VCS_LOADING_CONTENT_EXPANSION='${$((my_git_formatter(0)))+${my_git_format}}'
484484+ # Enable counters for staged, unstaged, etc.
485485+ typeset -g POWERLEVEL9K_VCS_{STAGED,UNSTAGED,UNTRACKED,CONFLICTED,COMMITS_AHEAD,COMMITS_BEHIND}_MAX_NUM=-1
486486+487487+ # Icon color.
488488+ typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_COLOR=2
489489+ typeset -g POWERLEVEL9K_VCS_LOADING_VISUAL_IDENTIFIER_COLOR=
490490+ # Custom icon.
491491+ typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_EXPANSION=
492492+ # Custom prefix.
493493+ # typeset -g POWERLEVEL9K_VCS_PREFIX='%fon '
494494+495495+ # Show status of repositories of these types. You can add svn and/or hg if you are
496496+ # using them. If you do, your prompt may become slow even when your current directory
497497+ # isn't in an svn or hg repository.
498498+ typeset -g POWERLEVEL9K_VCS_BACKENDS=(git)
499499+500500+ # These settings are used for repositories other than Git or when gitstatusd fails and
501501+ # Powerlevel10k has to fall back to using vcs_info.
502502+ typeset -g POWERLEVEL9K_VCS_CLEAN_FOREGROUND=2
503503+ typeset -g POWERLEVEL9K_VCS_UNTRACKED_FOREGROUND=2
504504+ typeset -g POWERLEVEL9K_VCS_MODIFIED_FOREGROUND=3
505505+506506+ ##########################[ status: exit code of the last command ]###########################
507507+ # Enable OK_PIPE, ERROR_PIPE and ERROR_SIGNAL status states to allow us to enable, disable and
508508+ # style them independently from the regular OK and ERROR state.
509509+ typeset -g POWERLEVEL9K_STATUS_EXTENDED_STATES=true
510510+511511+ # Status on success. No content, just an icon. No need to show it if prompt_char is enabled as
512512+ # it will signify success by turning green.
513513+ typeset -g POWERLEVEL9K_STATUS_OK=false
514514+ typeset -g POWERLEVEL9K_STATUS_OK_FOREGROUND=2
515515+ typeset -g POWERLEVEL9K_STATUS_OK_VISUAL_IDENTIFIER_EXPANSION='✔'
516516+517517+ # Status when some part of a pipe command fails but the overall exit status is zero. It may look
518518+ # like this: 1|0.
519519+ typeset -g POWERLEVEL9K_STATUS_OK_PIPE=true
520520+ typeset -g POWERLEVEL9K_STATUS_OK_PIPE_FOREGROUND=2
521521+ typeset -g POWERLEVEL9K_STATUS_OK_PIPE_VISUAL_IDENTIFIER_EXPANSION='✔'
522522+523523+ # Status when it's just an error code (e.g., '1'). No need to show it if prompt_char is enabled as
524524+ # it will signify error by turning red.
525525+ typeset -g POWERLEVEL9K_STATUS_ERROR=false
526526+ typeset -g POWERLEVEL9K_STATUS_ERROR_FOREGROUND=1
527527+ typeset -g POWERLEVEL9K_STATUS_ERROR_VISUAL_IDENTIFIER_EXPANSION='✘'
528528+529529+ # Status when the last command was terminated by a signal.
530530+ typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL=true
531531+ typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_FOREGROUND=1
532532+ # Use terse signal names: "INT" instead of "SIGINT(2)".
533533+ typeset -g POWERLEVEL9K_STATUS_VERBOSE_SIGNAME=false
534534+ typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_VISUAL_IDENTIFIER_EXPANSION='✘'
535535+536536+ # Status when some part of a pipe command fails and the overall exit status is also non-zero.
537537+ # It may look like this: 1|0.
538538+ typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE=true
539539+ typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_FOREGROUND=1
540540+ typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_VISUAL_IDENTIFIER_EXPANSION='✘'
541541+542542+ ###################[ command_execution_time: duration of the last command ]###################
543543+ # Show duration of the last command if takes at least this many seconds.
544544+ typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=3
545545+ # Show this many fractional digits. Zero means round to seconds.
546546+ typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION=0
547547+ # Execution time color.
548548+ typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND=3
549549+ # Duration format: 1d 2h 3m 4s.
550550+ typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FORMAT='d h m s'
551551+ # Custom icon.
552552+ typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_VISUAL_IDENTIFIER_EXPANSION=
553553+ # Custom prefix.
554554+ # typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PREFIX='%ftook '
555555+556556+ #######################[ background_jobs: presence of background jobs ]#######################
557557+ # Don't show the number of background jobs.
558558+ typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VERBOSE=false
559559+ # Background jobs color.
560560+ typeset -g POWERLEVEL9K_BACKGROUND_JOBS_FOREGROUND=1
561561+ # Custom icon.
562562+ # typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VISUAL_IDENTIFIER_EXPANSION='⭐'
563563+564564+ #######################[ direnv: direnv status (https://direnv.net/) ]########################
565565+ # Direnv color.
566566+ typeset -g POWERLEVEL9K_DIRENV_FOREGROUND=3
567567+ # Custom icon.
568568+ # typeset -g POWERLEVEL9K_DIRENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
569569+570570+ ###############[ asdf: asdf version manager (https://github.com/asdf-vm/asdf) ]###############
571571+ # Default asdf color. Only used to display tools for which there is no color override (see below).
572572+ # Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_FOREGROUND.
573573+ typeset -g POWERLEVEL9K_ASDF_FOREGROUND=6
574574+575575+ # There are four parameters that can be used to hide asdf tools. Each parameter describes
576576+ # conditions under which a tool gets hidden. Parameters can hide tools but not unhide them. If at
577577+ # least one parameter decides to hide a tool, that tool gets hidden. If no parameter decides to
578578+ # hide a tool, it gets shown.
579579+ #
580580+ # Special note on the difference between POWERLEVEL9K_ASDF_SOURCES and
581581+ # POWERLEVEL9K_ASDF_PROMPT_ALWAYS_SHOW. Consider the effect of the following commands:
582582+ #
583583+ # asdf local python 3.8.1
584584+ # asdf global python 3.8.1
585585+ #
586586+ # After running both commands the current python version is 3.8.1 and its source is "local" as
587587+ # it takes precedence over "global". If POWERLEVEL9K_ASDF_PROMPT_ALWAYS_SHOW is set to false,
588588+ # it'll hide python version in this case because 3.8.1 is the same as the global version.
589589+ # POWERLEVEL9K_ASDF_SOURCES will hide python version only if the value of this parameter doesn't
590590+ # contain "local".
591591+592592+ # Hide tool versions that don't come from one of these sources.
593593+ #
594594+ # Available sources:
595595+ #
596596+ # - shell `asdf current` says "set by ASDF_${TOOL}_VERSION environment variable"
597597+ # - local `asdf current` says "set by /some/not/home/directory/file"
598598+ # - global `asdf current` says "set by /home/username/file"
599599+ #
600600+ # Note: If this parameter is set to (shell local global), it won't hide tools.
601601+ # Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_SOURCES.
602602+ typeset -g POWERLEVEL9K_ASDF_SOURCES=(shell local global)
603603+604604+ # If set to false, hide tool versions that are the same as global.
605605+ #
606606+ # Note: The name of this parameter doesn't reflect its meaning at all.
607607+ # Note: If this parameter is set to true, it won't hide tools.
608608+ # Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_PROMPT_ALWAYS_SHOW.
609609+ typeset -g POWERLEVEL9K_ASDF_PROMPT_ALWAYS_SHOW=false
610610+611611+ # If set to false, hide tool versions that are equal to "system".
612612+ #
613613+ # Note: If this parameter is set to true, it won't hide tools.
614614+ # Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_SHOW_SYSTEM.
615615+ typeset -g POWERLEVEL9K_ASDF_SHOW_SYSTEM=true
616616+617617+ # If set to non-empty value, hide tools unless there is a file matching the specified file pattern
618618+ # in the current directory, or its parent directory, or its grandparent directory, and so on.
619619+ #
620620+ # Note: If this parameter is set to empty value, it won't hide tools.
621621+ # Note: SHOW_ON_UPGLOB isn't specific to asdf. It works with all prompt segments.
622622+ # Tip: Override this parameter for ${TOOL} with POWERLEVEL9K_ASDF_${TOOL}_SHOW_ON_UPGLOB.
623623+ #
624624+ # Example: Hide nodejs version when there is no package.json and no *.js files in the current
625625+ # directory, in `..`, in `../..` and so on.
626626+ #
627627+ # typeset -g POWERLEVEL9K_ASDF_NODEJS_SHOW_ON_UPGLOB='*.js|package.json'
628628+ typeset -g POWERLEVEL9K_ASDF_SHOW_ON_UPGLOB=
629629+630630+ # Ruby version from asdf.
631631+ typeset -g POWERLEVEL9K_ASDF_RUBY_FOREGROUND=1
632632+ # typeset -g POWERLEVEL9K_ASDF_RUBY_VISUAL_IDENTIFIER_EXPANSION='⭐'
633633+ # typeset -g POWERLEVEL9K_ASDF_RUBY_SHOW_ON_UPGLOB='*.foo|*.bar'
634634+635635+ # Python version from asdf.
636636+ typeset -g POWERLEVEL9K_ASDF_PYTHON_FOREGROUND=6
637637+ # typeset -g POWERLEVEL9K_ASDF_PYTHON_VISUAL_IDENTIFIER_EXPANSION='⭐'
638638+ # typeset -g POWERLEVEL9K_ASDF_PYTHON_SHOW_ON_UPGLOB='*.foo|*.bar'
639639+640640+ # Go version from asdf.
641641+ typeset -g POWERLEVEL9K_ASDF_GOLANG_FOREGROUND=6
642642+ # typeset -g POWERLEVEL9K_ASDF_GOLANG_VISUAL_IDENTIFIER_EXPANSION='⭐'
643643+ # typeset -g POWERLEVEL9K_ASDF_GOLANG_SHOW_ON_UPGLOB='*.foo|*.bar'
644644+645645+ # Node.js version from asdf.
646646+ typeset -g POWERLEVEL9K_ASDF_NODEJS_FOREGROUND=2
647647+ # typeset -g POWERLEVEL9K_ASDF_NODEJS_VISUAL_IDENTIFIER_EXPANSION='⭐'
648648+ # typeset -g POWERLEVEL9K_ASDF_NODEJS_SHOW_ON_UPGLOB='*.foo|*.bar'
649649+650650+ # Rust version from asdf.
651651+ typeset -g POWERLEVEL9K_ASDF_RUST_FOREGROUND=4
652652+ # typeset -g POWERLEVEL9K_ASDF_RUST_VISUAL_IDENTIFIER_EXPANSION='⭐'
653653+ # typeset -g POWERLEVEL9K_ASDF_RUST_SHOW_ON_UPGLOB='*.foo|*.bar'
654654+655655+ # .NET Core version from asdf.
656656+ typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_FOREGROUND=5
657657+ # typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_VISUAL_IDENTIFIER_EXPANSION='⭐'
658658+ # typeset -g POWERLEVEL9K_ASDF_DOTNET_CORE_SHOW_ON_UPGLOB='*.foo|*.bar'
659659+660660+ # Flutter version from asdf.
661661+ typeset -g POWERLEVEL9K_ASDF_FLUTTER_FOREGROUND=4
662662+ # typeset -g POWERLEVEL9K_ASDF_FLUTTER_VISUAL_IDENTIFIER_EXPANSION='⭐'
663663+ # typeset -g POWERLEVEL9K_ASDF_FLUTTER_SHOW_ON_UPGLOB='*.foo|*.bar'
664664+665665+ # Lua version from asdf.
666666+ typeset -g POWERLEVEL9K_ASDF_LUA_FOREGROUND=4
667667+ # typeset -g POWERLEVEL9K_ASDF_LUA_VISUAL_IDENTIFIER_EXPANSION='⭐'
668668+ # typeset -g POWERLEVEL9K_ASDF_LUA_SHOW_ON_UPGLOB='*.foo|*.bar'
669669+670670+ # Java version from asdf.
671671+ typeset -g POWERLEVEL9K_ASDF_JAVA_FOREGROUND=4
672672+ # typeset -g POWERLEVEL9K_ASDF_JAVA_VISUAL_IDENTIFIER_EXPANSION='⭐'
673673+ # typeset -g POWERLEVEL9K_ASDF_JAVA_SHOW_ON_UPGLOB='*.foo|*.bar'
674674+675675+ # Perl version from asdf.
676676+ typeset -g POWERLEVEL9K_ASDF_PERL_FOREGROUND=6
677677+ # typeset -g POWERLEVEL9K_ASDF_PERL_VISUAL_IDENTIFIER_EXPANSION='⭐'
678678+ # typeset -g POWERLEVEL9K_ASDF_PERL_SHOW_ON_UPGLOB='*.foo|*.bar'
679679+680680+ # Erlang version from asdf.
681681+ typeset -g POWERLEVEL9K_ASDF_ERLANG_FOREGROUND=1
682682+ # typeset -g POWERLEVEL9K_ASDF_ERLANG_VISUAL_IDENTIFIER_EXPANSION='⭐'
683683+ # typeset -g POWERLEVEL9K_ASDF_ERLANG_SHOW_ON_UPGLOB='*.foo|*.bar'
684684+685685+ # Elixir version from asdf.
686686+ typeset -g POWERLEVEL9K_ASDF_ELIXIR_FOREGROUND=5
687687+ # typeset -g POWERLEVEL9K_ASDF_ELIXIR_VISUAL_IDENTIFIER_EXPANSION='⭐'
688688+ # typeset -g POWERLEVEL9K_ASDF_ELIXIR_SHOW_ON_UPGLOB='*.foo|*.bar'
689689+690690+ # Postgres version from asdf.
691691+ typeset -g POWERLEVEL9K_ASDF_POSTGRES_FOREGROUND=6
692692+ # typeset -g POWERLEVEL9K_ASDF_POSTGRES_VISUAL_IDENTIFIER_EXPANSION='⭐'
693693+ # typeset -g POWERLEVEL9K_ASDF_POSTGRES_SHOW_ON_UPGLOB='*.foo|*.bar'
694694+695695+ # PHP version from asdf.
696696+ typeset -g POWERLEVEL9K_ASDF_PHP_FOREGROUND=5
697697+ # typeset -g POWERLEVEL9K_ASDF_PHP_VISUAL_IDENTIFIER_EXPANSION='⭐'
698698+ # typeset -g POWERLEVEL9K_ASDF_PHP_SHOW_ON_UPGLOB='*.foo|*.bar'
699699+700700+ # Haskell version from asdf.
701701+ typeset -g POWERLEVEL9K_ASDF_HASKELL_FOREGROUND=3
702702+ # typeset -g POWERLEVEL9K_ASDF_HASKELL_VISUAL_IDENTIFIER_EXPANSION='⭐'
703703+ # typeset -g POWERLEVEL9K_ASDF_HASKELL_SHOW_ON_UPGLOB='*.foo|*.bar'
704704+705705+ # Julia version from asdf.
706706+ typeset -g POWERLEVEL9K_ASDF_JULIA_FOREGROUND=2
707707+ # typeset -g POWERLEVEL9K_ASDF_JULIA_VISUAL_IDENTIFIER_EXPANSION='⭐'
708708+ # typeset -g POWERLEVEL9K_ASDF_JULIA_SHOW_ON_UPGLOB='*.foo|*.bar'
709709+710710+ ##########[ nordvpn: nordvpn connection status, linux only (https://nordvpn.com/) ]###########
711711+ # NordVPN connection indicator color.
712712+ typeset -g POWERLEVEL9K_NORDVPN_FOREGROUND=6
713713+ # Hide NordVPN connection indicator when not connected.
714714+ typeset -g POWERLEVEL9K_NORDVPN_{DISCONNECTED,CONNECTING,DISCONNECTING}_CONTENT_EXPANSION=
715715+ typeset -g POWERLEVEL9K_NORDVPN_{DISCONNECTED,CONNECTING,DISCONNECTING}_VISUAL_IDENTIFIER_EXPANSION=
716716+ # Custom icon.
717717+ # typeset -g POWERLEVEL9K_NORDVPN_VISUAL_IDENTIFIER_EXPANSION='⭐'
718718+719719+ #################[ ranger: ranger shell (https://github.com/ranger/ranger) ]##################
720720+ # Ranger shell color.
721721+ typeset -g POWERLEVEL9K_RANGER_FOREGROUND=3
722722+ # Custom icon.
723723+ # typeset -g POWERLEVEL9K_RANGER_VISUAL_IDENTIFIER_EXPANSION='⭐'
724724+725725+ ####################[ yazi: yazi shell (https://github.com/sxyazi/yazi) ]#####################
726726+ # Yazi shell color.
727727+ typeset -g POWERLEVEL9K_YAZI_FOREGROUND=3
728728+ # Custom icon.
729729+ # typeset -g POWERLEVEL9K_YAZI_VISUAL_IDENTIFIER_EXPANSION='⭐'
730730+731731+ ######################[ nnn: nnn shell (https://github.com/jarun/nnn) ]#######################
732732+ # Nnn shell color.
733733+ typeset -g POWERLEVEL9K_NNN_FOREGROUND=3
734734+ # Custom icon.
735735+ # typeset -g POWERLEVEL9K_NNN_VISUAL_IDENTIFIER_EXPANSION='⭐'
736736+737737+ ######################[ lf: lf shell (https://github.com/gokcehan/lf) ]#######################
738738+ # lf shell color.
739739+ typeset -g POWERLEVEL9K_LF_FOREGROUND=3
740740+ # Custom icon.
741741+ # typeset -g POWERLEVEL9K_LF_VISUAL_IDENTIFIER_EXPANSION='⭐'
742742+743743+ ##################[ xplr: xplr shell (https://github.com/sayanarijit/xplr) ]##################
744744+ # xplr shell color.
745745+ typeset -g POWERLEVEL9K_XPLR_FOREGROUND=3
746746+ # Custom icon.
747747+ # typeset -g POWERLEVEL9K_XPLR_VISUAL_IDENTIFIER_EXPANSION='⭐'
748748+749749+ ###########################[ vim_shell: vim shell indicator (:sh) ]###########################
750750+ # Vim shell indicator color.
751751+ typeset -g POWERLEVEL9K_VIM_SHELL_FOREGROUND=3
752752+ # Custom icon.
753753+ # typeset -g POWERLEVEL9K_VIM_SHELL_VISUAL_IDENTIFIER_EXPANSION='⭐'
754754+755755+ ######[ midnight_commander: midnight commander shell (https://midnight-commander.org/) ]######
756756+ # Midnight Commander shell color.
757757+ typeset -g POWERLEVEL9K_MIDNIGHT_COMMANDER_FOREGROUND=3
758758+ # Custom icon.
759759+ # typeset -g POWERLEVEL9K_MIDNIGHT_COMMANDER_VISUAL_IDENTIFIER_EXPANSION='⭐'
760760+761761+ #[ nix_shell: nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html) ]##
762762+ # Nix shell color.
763763+ typeset -g POWERLEVEL9K_NIX_SHELL_FOREGROUND=4
764764+765765+ # Display the icon of nix_shell if PATH contains a subdirectory of /nix/store.
766766+ # typeset -g POWERLEVEL9K_NIX_SHELL_INFER_FROM_PATH=false
767767+768768+ # Tip: If you want to see just the icon without "pure" and "impure", uncomment the next line.
769769+ # typeset -g POWERLEVEL9K_NIX_SHELL_CONTENT_EXPANSION=
770770+771771+ # Custom icon.
772772+ # typeset -g POWERLEVEL9K_NIX_SHELL_VISUAL_IDENTIFIER_EXPANSION='⭐'
773773+774774+ ##################[ chezmoi_shell: chezmoi shell (https://www.chezmoi.io/) ]##################
775775+ # chezmoi shell color.
776776+ typeset -g POWERLEVEL9K_CHEZMOI_SHELL_FOREGROUND=4
777777+ # Custom icon.
778778+ # typeset -g POWERLEVEL9K_CHEZMOI_SHELL_VISUAL_IDENTIFIER_EXPANSION='⭐'
779779+780780+ ##################################[ disk_usage: disk usage ]##################################
781781+ # Colors for different levels of disk usage.
782782+ typeset -g POWERLEVEL9K_DISK_USAGE_NORMAL_FOREGROUND=2
783783+ typeset -g POWERLEVEL9K_DISK_USAGE_WARNING_FOREGROUND=3
784784+ typeset -g POWERLEVEL9K_DISK_USAGE_CRITICAL_FOREGROUND=1
785785+ # Thresholds for different levels of disk usage (percentage points).
786786+ typeset -g POWERLEVEL9K_DISK_USAGE_WARNING_LEVEL=90
787787+ typeset -g POWERLEVEL9K_DISK_USAGE_CRITICAL_LEVEL=95
788788+ # If set to true, hide disk usage when below $POWERLEVEL9K_DISK_USAGE_WARNING_LEVEL percent.
789789+ typeset -g POWERLEVEL9K_DISK_USAGE_ONLY_WARNING=false
790790+ # Custom icon.
791791+ # typeset -g POWERLEVEL9K_DISK_USAGE_VISUAL_IDENTIFIER_EXPANSION='⭐'
792792+793793+ ######################################[ ram: free RAM ]#######################################
794794+ # RAM color.
795795+ typeset -g POWERLEVEL9K_RAM_FOREGROUND=2
796796+ # Custom icon.
797797+ # typeset -g POWERLEVEL9K_RAM_VISUAL_IDENTIFIER_EXPANSION='⭐'
798798+799799+ #####################################[ swap: used swap ]######################################
800800+ # Swap color.
801801+ typeset -g POWERLEVEL9K_SWAP_FOREGROUND=3
802802+ # Custom icon.
803803+ # typeset -g POWERLEVEL9K_SWAP_VISUAL_IDENTIFIER_EXPANSION='⭐'
804804+805805+ ######################################[ load: CPU load ]######################################
806806+ # Show average CPU load over this many last minutes. Valid values are 1, 5 and 15.
807807+ typeset -g POWERLEVEL9K_LOAD_WHICH=5
808808+ # Load color when load is under 50%.
809809+ typeset -g POWERLEVEL9K_LOAD_NORMAL_FOREGROUND=2
810810+ # Load color when load is between 50% and 70%.
811811+ typeset -g POWERLEVEL9K_LOAD_WARNING_FOREGROUND=3
812812+ # Load color when load is over 70%.
813813+ typeset -g POWERLEVEL9K_LOAD_CRITICAL_FOREGROUND=1
814814+ # Custom icon.
815815+ # typeset -g POWERLEVEL9K_LOAD_VISUAL_IDENTIFIER_EXPANSION='⭐'
816816+817817+ ################[ todo: todo items (https://github.com/todotxt/todo.txt-cli) ]################
818818+ # Todo color.
819819+ typeset -g POWERLEVEL9K_TODO_FOREGROUND=4
820820+ # Hide todo when the total number of tasks is zero.
821821+ typeset -g POWERLEVEL9K_TODO_HIDE_ZERO_TOTAL=true
822822+ # Hide todo when the number of tasks after filtering is zero.
823823+ typeset -g POWERLEVEL9K_TODO_HIDE_ZERO_FILTERED=false
824824+825825+ # Todo format. The following parameters are available within the expansion.
826826+ #
827827+ # - P9K_TODO_TOTAL_TASK_COUNT The total number of tasks.
828828+ # - P9K_TODO_FILTERED_TASK_COUNT The number of tasks after filtering.
829829+ #
830830+ # These variables correspond to the last line of the output of `todo.sh -p ls`:
831831+ #
832832+ # TODO: 24 of 42 tasks shown
833833+ #
834834+ # Here 24 is P9K_TODO_FILTERED_TASK_COUNT and 42 is P9K_TODO_TOTAL_TASK_COUNT.
835835+ #
836836+ # typeset -g POWERLEVEL9K_TODO_CONTENT_EXPANSION='$P9K_TODO_FILTERED_TASK_COUNT'
837837+838838+ # Custom icon.
839839+ # typeset -g POWERLEVEL9K_TODO_VISUAL_IDENTIFIER_EXPANSION='⭐'
840840+841841+ ###########[ timewarrior: timewarrior tracking status (https://timewarrior.net/) ]############
842842+ # Timewarrior color.
843843+ typeset -g POWERLEVEL9K_TIMEWARRIOR_FOREGROUND=4
844844+ # If the tracked task is longer than 24 characters, truncate and append "…".
845845+ # Tip: To always display tasks without truncation, delete the following parameter.
846846+ # Tip: To hide task names and display just the icon when time tracking is enabled, set the
847847+ # value of the following parameter to "".
848848+ typeset -g POWERLEVEL9K_TIMEWARRIOR_CONTENT_EXPANSION='${P9K_CONTENT:0:24}${${P9K_CONTENT:24}:+…}'
849849+850850+ # Custom icon.
851851+ # typeset -g POWERLEVEL9K_TIMEWARRIOR_VISUAL_IDENTIFIER_EXPANSION='⭐'
852852+853853+ ##############[ taskwarrior: taskwarrior task count (https://taskwarrior.org/) ]##############
854854+ # Taskwarrior color.
855855+ typeset -g POWERLEVEL9K_TASKWARRIOR_FOREGROUND=6
856856+857857+ # Taskwarrior segment format. The following parameters are available within the expansion.
858858+ #
859859+ # - P9K_TASKWARRIOR_PENDING_COUNT The number of pending tasks: `task +PENDING count`.
860860+ # - P9K_TASKWARRIOR_OVERDUE_COUNT The number of overdue tasks: `task +OVERDUE count`.
861861+ #
862862+ # Zero values are represented as empty parameters.
863863+ #
864864+ # The default format:
865865+ #
866866+ # '${P9K_TASKWARRIOR_OVERDUE_COUNT:+"!$P9K_TASKWARRIOR_OVERDUE_COUNT/"}$P9K_TASKWARRIOR_PENDING_COUNT'
867867+ #
868868+ # typeset -g POWERLEVEL9K_TASKWARRIOR_CONTENT_EXPANSION='$P9K_TASKWARRIOR_PENDING_COUNT'
869869+870870+ # Custom icon.
871871+ # typeset -g POWERLEVEL9K_TASKWARRIOR_VISUAL_IDENTIFIER_EXPANSION='⭐'
872872+873873+ ######[ per_directory_history: Oh My Zsh per-directory-history local/global indicator ]#######
874874+ # Color when using local/global history.
875875+ typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_LOCAL_FOREGROUND=5
876876+ typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_GLOBAL_FOREGROUND=3
877877+878878+ # Tip: Uncomment the next two lines to hide "local"/"global" text and leave just the icon.
879879+ # typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_LOCAL_CONTENT_EXPANSION=''
880880+ # typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_GLOBAL_CONTENT_EXPANSION=''
881881+882882+ # Custom icon.
883883+ # typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_LOCAL_VISUAL_IDENTIFIER_EXPANSION='⭐'
884884+ # typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_GLOBAL_VISUAL_IDENTIFIER_EXPANSION='⭐'
885885+886886+ ################################[ cpu_arch: CPU architecture ]################################
887887+ # CPU architecture color.
888888+ typeset -g POWERLEVEL9K_CPU_ARCH_FOREGROUND=3
889889+890890+ # Hide the segment when on a specific CPU architecture.
891891+ # typeset -g POWERLEVEL9K_CPU_ARCH_X86_64_CONTENT_EXPANSION=
892892+ # typeset -g POWERLEVEL9K_CPU_ARCH_X86_64_VISUAL_IDENTIFIER_EXPANSION=
893893+894894+ # Custom icon.
895895+ # typeset -g POWERLEVEL9K_CPU_ARCH_VISUAL_IDENTIFIER_EXPANSION='⭐'
896896+897897+ ##################################[ context: user@hostname ]##################################
898898+ # Context color when running with privileges.
899899+ typeset -g POWERLEVEL9K_CONTEXT_ROOT_FOREGROUND=1
900900+ # Context color in SSH without privileges.
901901+ typeset -g POWERLEVEL9K_CONTEXT_{REMOTE,REMOTE_SUDO}_FOREGROUND=7
902902+ # Default context color (no privileges, no SSH).
903903+ typeset -g POWERLEVEL9K_CONTEXT_FOREGROUND=7
904904+905905+ # Context format when running with privileges: bold user@hostname.
906906+ typeset -g POWERLEVEL9K_CONTEXT_ROOT_TEMPLATE='%B%n@%m'
907907+ # Context format when in SSH without privileges: user@hostname.
908908+ typeset -g POWERLEVEL9K_CONTEXT_{REMOTE,REMOTE_SUDO}_TEMPLATE='%n@%m'
909909+ # Default context format (no privileges, no SSH): user@hostname.
910910+ typeset -g POWERLEVEL9K_CONTEXT_TEMPLATE='%n@%m'
911911+912912+ # Don't show context unless running with privileges or in SSH.
913913+ # Tip: Remove the next line to always show context.
914914+ typeset -g POWERLEVEL9K_CONTEXT_{DEFAULT,SUDO}_{CONTENT,VISUAL_IDENTIFIER}_EXPANSION=
915915+916916+ # Custom icon.
917917+ # typeset -g POWERLEVEL9K_CONTEXT_VISUAL_IDENTIFIER_EXPANSION='⭐'
918918+ # Custom prefix.
919919+ # typeset -g POWERLEVEL9K_CONTEXT_PREFIX='%fwith '
920920+921921+ ###[ virtualenv: python virtual environment (https://docs.python.org/3/library/venv.html) ]###
922922+ # Python virtual environment color.
923923+ typeset -g POWERLEVEL9K_VIRTUALENV_FOREGROUND=6
924924+ # Don't show Python version next to the virtual environment name.
925925+ typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_PYTHON_VERSION=false
926926+ # If set to "false", won't show virtualenv if pyenv is already shown.
927927+ # If set to "if-different", won't show virtualenv if it's the same as pyenv.
928928+ typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_WITH_PYENV=false
929929+ # Separate environment name from Python version only with a space.
930930+ typeset -g POWERLEVEL9K_VIRTUALENV_{LEFT,RIGHT}_DELIMITER=
931931+ # Custom icon.
932932+ # typeset -g POWERLEVEL9K_VIRTUALENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
933933+934934+ #####################[ anaconda: conda environment (https://conda.io/) ]######################
935935+ # Anaconda environment color.
936936+ typeset -g POWERLEVEL9K_ANACONDA_FOREGROUND=6
937937+938938+ # Anaconda segment format. The following parameters are available within the expansion.
939939+ #
940940+ # - CONDA_PREFIX Absolute path to the active Anaconda/Miniconda environment.
941941+ # - CONDA_DEFAULT_ENV Name of the active Anaconda/Miniconda environment.
942942+ # - CONDA_PROMPT_MODIFIER Configurable prompt modifier (see below).
943943+ # - P9K_ANACONDA_PYTHON_VERSION Current python version (python --version).
944944+ #
945945+ # CONDA_PROMPT_MODIFIER can be configured with the following command:
946946+ #
947947+ # conda config --set env_prompt '({default_env}) '
948948+ #
949949+ # The last argument is a Python format string that can use the following variables:
950950+ #
951951+ # - prefix The same as CONDA_PREFIX.
952952+ # - default_env The same as CONDA_DEFAULT_ENV.
953953+ # - name The last segment of CONDA_PREFIX.
954954+ # - stacked_env Comma-separated list of names in the environment stack. The first element is
955955+ # always the same as default_env.
956956+ #
957957+ # Note: '({default_env}) ' is the default value of env_prompt.
958958+ #
959959+ # The default value of POWERLEVEL9K_ANACONDA_CONTENT_EXPANSION expands to $CONDA_PROMPT_MODIFIER
960960+ # without the surrounding parentheses, or to the last path component of CONDA_PREFIX if the former
961961+ # is empty.
962962+ typeset -g POWERLEVEL9K_ANACONDA_CONTENT_EXPANSION='${${${${CONDA_PROMPT_MODIFIER#\(}% }%\)}:-${CONDA_PREFIX:t}}'
963963+964964+ # Custom icon.
965965+ # typeset -g POWERLEVEL9K_ANACONDA_VISUAL_IDENTIFIER_EXPANSION='⭐'
966966+967967+ ################[ pyenv: python environment (https://github.com/pyenv/pyenv) ]################
968968+ # Pyenv color.
969969+ typeset -g POWERLEVEL9K_PYENV_FOREGROUND=6
970970+ # Hide python version if it doesn't come from one of these sources.
971971+ typeset -g POWERLEVEL9K_PYENV_SOURCES=(shell local global)
972972+ # If set to false, hide python version if it's the same as global:
973973+ # $(pyenv version-name) == $(pyenv global).
974974+ typeset -g POWERLEVEL9K_PYENV_PROMPT_ALWAYS_SHOW=false
975975+ # If set to false, hide python version if it's equal to "system".
976976+ typeset -g POWERLEVEL9K_PYENV_SHOW_SYSTEM=true
977977+978978+ # Pyenv segment format. The following parameters are available within the expansion.
979979+ #
980980+ # - P9K_CONTENT Current pyenv environment (pyenv version-name).
981981+ # - P9K_PYENV_PYTHON_VERSION Current python version (python --version).
982982+ #
983983+ # The default format has the following logic:
984984+ #
985985+ # 1. Display just "$P9K_CONTENT" if it's equal to "$P9K_PYENV_PYTHON_VERSION" or
986986+ # starts with "$P9K_PYENV_PYTHON_VERSION/".
987987+ # 2. Otherwise display "$P9K_CONTENT $P9K_PYENV_PYTHON_VERSION".
988988+ typeset -g POWERLEVEL9K_PYENV_CONTENT_EXPANSION='${P9K_CONTENT}${${P9K_CONTENT:#$P9K_PYENV_PYTHON_VERSION(|/*)}:+ $P9K_PYENV_PYTHON_VERSION}'
989989+990990+ # Custom icon.
991991+ # typeset -g POWERLEVEL9K_PYENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
992992+993993+ ################[ goenv: go environment (https://github.com/syndbg/goenv) ]################
994994+ # Goenv color.
995995+ typeset -g POWERLEVEL9K_GOENV_FOREGROUND=6
996996+ # Hide go version if it doesn't come from one of these sources.
997997+ typeset -g POWERLEVEL9K_GOENV_SOURCES=(shell local global)
998998+ # If set to false, hide go version if it's the same as global:
999999+ # $(goenv version-name) == $(goenv global).
10001000+ typeset -g POWERLEVEL9K_GOENV_PROMPT_ALWAYS_SHOW=false
10011001+ # If set to false, hide go version if it's equal to "system".
10021002+ typeset -g POWERLEVEL9K_GOENV_SHOW_SYSTEM=true
10031003+ # Custom icon.
10041004+ # typeset -g POWERLEVEL9K_GOENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
10051005+10061006+ ##########[ nodenv: node.js version from nodenv (https://github.com/nodenv/nodenv) ]##########
10071007+ # Nodenv color.
10081008+ typeset -g POWERLEVEL9K_NODENV_FOREGROUND=2
10091009+ # Hide node version if it doesn't come from one of these sources.
10101010+ typeset -g POWERLEVEL9K_NODENV_SOURCES=(shell local global)
10111011+ # If set to false, hide node version if it's the same as global:
10121012+ # $(nodenv version-name) == $(nodenv global).
10131013+ typeset -g POWERLEVEL9K_NODENV_PROMPT_ALWAYS_SHOW=false
10141014+ # If set to false, hide node version if it's equal to "system".
10151015+ typeset -g POWERLEVEL9K_NODENV_SHOW_SYSTEM=true
10161016+ # Custom icon.
10171017+ # typeset -g POWERLEVEL9K_NODENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
10181018+10191019+ ##############[ nvm: node.js version from nvm (https://github.com/nvm-sh/nvm) ]###############
10201020+ # Nvm color.
10211021+ typeset -g POWERLEVEL9K_NVM_FOREGROUND=2
10221022+ # If set to false, hide node version if it's the same as default:
10231023+ # $(nvm version current) == $(nvm version default).
10241024+ typeset -g POWERLEVEL9K_NVM_PROMPT_ALWAYS_SHOW=false
10251025+ # If set to false, hide node version if it's equal to "system".
10261026+ typeset -g POWERLEVEL9K_NVM_SHOW_SYSTEM=true
10271027+ # Custom icon.
10281028+ # typeset -g POWERLEVEL9K_NVM_VISUAL_IDENTIFIER_EXPANSION='⭐'
10291029+10301030+ ############[ nodeenv: node.js environment (https://github.com/ekalinin/nodeenv) ]############
10311031+ # Nodeenv color.
10321032+ typeset -g POWERLEVEL9K_NODEENV_FOREGROUND=2
10331033+ # Don't show Node version next to the environment name.
10341034+ typeset -g POWERLEVEL9K_NODEENV_SHOW_NODE_VERSION=false
10351035+ # Separate environment name from Node version only with a space.
10361036+ typeset -g POWERLEVEL9K_NODEENV_{LEFT,RIGHT}_DELIMITER=
10371037+ # Custom icon.
10381038+ # typeset -g POWERLEVEL9K_NODEENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
10391039+10401040+ ##############################[ node_version: node.js version ]###############################
10411041+ # Node version color.
10421042+ typeset -g POWERLEVEL9K_NODE_VERSION_FOREGROUND=2
10431043+ # Show node version only when in a directory tree containing package.json.
10441044+ typeset -g POWERLEVEL9K_NODE_VERSION_PROJECT_ONLY=true
10451045+ # Custom icon.
10461046+ # typeset -g POWERLEVEL9K_NODE_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'
10471047+10481048+ #######################[ go_version: go version (https://golang.org) ]########################
10491049+ # Go version color.
10501050+ typeset -g POWERLEVEL9K_GO_VERSION_FOREGROUND=6
10511051+ # Show go version only when in a go project subdirectory.
10521052+ typeset -g POWERLEVEL9K_GO_VERSION_PROJECT_ONLY=true
10531053+ # Custom icon.
10541054+ # typeset -g POWERLEVEL9K_GO_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'
10551055+10561056+ #################[ rust_version: rustc version (https://www.rust-lang.org) ]##################
10571057+ # Rust version color.
10581058+ typeset -g POWERLEVEL9K_RUST_VERSION_FOREGROUND=4
10591059+ # Show rust version only when in a rust project subdirectory.
10601060+ typeset -g POWERLEVEL9K_RUST_VERSION_PROJECT_ONLY=true
10611061+ # Custom icon.
10621062+ # typeset -g POWERLEVEL9K_RUST_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'
10631063+10641064+ ###############[ dotnet_version: .NET version (https://dotnet.microsoft.com) ]################
10651065+ # .NET version color.
10661066+ typeset -g POWERLEVEL9K_DOTNET_VERSION_FOREGROUND=5
10671067+ # Show .NET version only when in a .NET project subdirectory.
10681068+ typeset -g POWERLEVEL9K_DOTNET_VERSION_PROJECT_ONLY=true
10691069+ # Custom icon.
10701070+ # typeset -g POWERLEVEL9K_DOTNET_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'
10711071+10721072+ #####################[ php_version: php version (https://www.php.net/) ]######################
10731073+ # PHP version color.
10741074+ typeset -g POWERLEVEL9K_PHP_VERSION_FOREGROUND=5
10751075+ # Show PHP version only when in a PHP project subdirectory.
10761076+ typeset -g POWERLEVEL9K_PHP_VERSION_PROJECT_ONLY=true
10771077+ # Custom icon.
10781078+ # typeset -g POWERLEVEL9K_PHP_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'
10791079+10801080+ ##########[ laravel_version: laravel php framework version (https://laravel.com/) ]###########
10811081+ # Laravel version color.
10821082+ typeset -g POWERLEVEL9K_LARAVEL_VERSION_FOREGROUND=1
10831083+ # Custom icon.
10841084+ # typeset -g POWERLEVEL9K_LARAVEL_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'
10851085+10861086+ ####################[ java_version: java version (https://www.java.com/) ]####################
10871087+ # Java version color.
10881088+ typeset -g POWERLEVEL9K_JAVA_VERSION_FOREGROUND=4
10891089+ # Show java version only when in a java project subdirectory.
10901090+ typeset -g POWERLEVEL9K_JAVA_VERSION_PROJECT_ONLY=true
10911091+ # Show brief version.
10921092+ typeset -g POWERLEVEL9K_JAVA_VERSION_FULL=false
10931093+ # Custom icon.
10941094+ # typeset -g POWERLEVEL9K_JAVA_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'
10951095+10961096+ ###[ package: name@version from package.json (https://docs.npmjs.com/files/package.json) ]####
10971097+ # Package color.
10981098+ typeset -g POWERLEVEL9K_PACKAGE_FOREGROUND=6
10991099+ # Package format. The following parameters are available within the expansion.
11001100+ #
11011101+ # - P9K_PACKAGE_NAME The value of `name` field in package.json.
11021102+ # - P9K_PACKAGE_VERSION The value of `version` field in package.json.
11031103+ #
11041104+ # typeset -g POWERLEVEL9K_PACKAGE_CONTENT_EXPANSION='${P9K_PACKAGE_NAME//\%/%%}@${P9K_PACKAGE_VERSION//\%/%%}'
11051105+ # Custom icon.
11061106+ # typeset -g POWERLEVEL9K_PACKAGE_VISUAL_IDENTIFIER_EXPANSION='⭐'
11071107+11081108+ #############[ rbenv: ruby version from rbenv (https://github.com/rbenv/rbenv) ]##############
11091109+ # Rbenv color.
11101110+ typeset -g POWERLEVEL9K_RBENV_FOREGROUND=1
11111111+ # Hide ruby version if it doesn't come from one of these sources.
11121112+ typeset -g POWERLEVEL9K_RBENV_SOURCES=(shell local global)
11131113+ # If set to false, hide ruby version if it's the same as global:
11141114+ # $(rbenv version-name) == $(rbenv global).
11151115+ typeset -g POWERLEVEL9K_RBENV_PROMPT_ALWAYS_SHOW=false
11161116+ # If set to false, hide ruby version if it's equal to "system".
11171117+ typeset -g POWERLEVEL9K_RBENV_SHOW_SYSTEM=true
11181118+ # Custom icon.
11191119+ # typeset -g POWERLEVEL9K_RBENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
11201120+11211121+ #######################[ rvm: ruby version from rvm (https://rvm.io) ]########################
11221122+ # Rvm color.
11231123+ typeset -g POWERLEVEL9K_RVM_FOREGROUND=1
11241124+ # Don't show @gemset at the end.
11251125+ typeset -g POWERLEVEL9K_RVM_SHOW_GEMSET=false
11261126+ # Don't show ruby- at the front.
11271127+ typeset -g POWERLEVEL9K_RVM_SHOW_PREFIX=false
11281128+ # Custom icon.
11291129+ # typeset -g POWERLEVEL9K_RVM_VISUAL_IDENTIFIER_EXPANSION='⭐'
11301130+11311131+ ###########[ fvm: flutter version management (https://github.com/leoafarias/fvm) ]############
11321132+ # Fvm color.
11331133+ typeset -g POWERLEVEL9K_FVM_FOREGROUND=4
11341134+ # Custom icon.
11351135+ # typeset -g POWERLEVEL9K_FVM_VISUAL_IDENTIFIER_EXPANSION='⭐'
11361136+11371137+ ##########[ luaenv: lua version from luaenv (https://github.com/cehoffman/luaenv) ]###########
11381138+ # Lua color.
11391139+ typeset -g POWERLEVEL9K_LUAENV_FOREGROUND=4
11401140+ # Hide lua version if it doesn't come from one of these sources.
11411141+ typeset -g POWERLEVEL9K_LUAENV_SOURCES=(shell local global)
11421142+ # If set to false, hide lua version if it's the same as global:
11431143+ # $(luaenv version-name) == $(luaenv global).
11441144+ typeset -g POWERLEVEL9K_LUAENV_PROMPT_ALWAYS_SHOW=false
11451145+ # If set to false, hide lua version if it's equal to "system".
11461146+ typeset -g POWERLEVEL9K_LUAENV_SHOW_SYSTEM=true
11471147+ # Custom icon.
11481148+ # typeset -g POWERLEVEL9K_LUAENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
11491149+11501150+ ###############[ jenv: java version from jenv (https://github.com/jenv/jenv) ]################
11511151+ # Java color.
11521152+ typeset -g POWERLEVEL9K_JENV_FOREGROUND=4
11531153+ # Hide java version if it doesn't come from one of these sources.
11541154+ typeset -g POWERLEVEL9K_JENV_SOURCES=(shell local global)
11551155+ # If set to false, hide java version if it's the same as global:
11561156+ # $(jenv version-name) == $(jenv global).
11571157+ typeset -g POWERLEVEL9K_JENV_PROMPT_ALWAYS_SHOW=false
11581158+ # If set to false, hide java version if it's equal to "system".
11591159+ typeset -g POWERLEVEL9K_JENV_SHOW_SYSTEM=true
11601160+ # Custom icon.
11611161+ # typeset -g POWERLEVEL9K_JENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
11621162+11631163+ ###########[ plenv: perl version from plenv (https://github.com/tokuhirom/plenv) ]############
11641164+ # Perl color.
11651165+ typeset -g POWERLEVEL9K_PLENV_FOREGROUND=6
11661166+ # Hide perl version if it doesn't come from one of these sources.
11671167+ typeset -g POWERLEVEL9K_PLENV_SOURCES=(shell local global)
11681168+ # If set to false, hide perl version if it's the same as global:
11691169+ # $(plenv version-name) == $(plenv global).
11701170+ typeset -g POWERLEVEL9K_PLENV_PROMPT_ALWAYS_SHOW=false
11711171+ # If set to false, hide perl version if it's equal to "system".
11721172+ typeset -g POWERLEVEL9K_PLENV_SHOW_SYSTEM=true
11731173+ # Custom icon.
11741174+ # typeset -g POWERLEVEL9K_PLENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
11751175+11761176+ ###########[ perlbrew: perl version from perlbrew (https://github.com/gugod/App-perlbrew) ]############
11771177+ # Perlbrew color.
11781178+ typeset -g POWERLEVEL9K_PERLBREW_FOREGROUND=67
11791179+ # Show perlbrew version only when in a perl project subdirectory.
11801180+ typeset -g POWERLEVEL9K_PERLBREW_PROJECT_ONLY=true
11811181+ # Don't show "perl-" at the front.
11821182+ typeset -g POWERLEVEL9K_PERLBREW_SHOW_PREFIX=false
11831183+ # Custom icon.
11841184+ # typeset -g POWERLEVEL9K_PERLBREW_VISUAL_IDENTIFIER_EXPANSION='⭐'
11851185+11861186+ ############[ phpenv: php version from phpenv (https://github.com/phpenv/phpenv) ]############
11871187+ # PHP color.
11881188+ typeset -g POWERLEVEL9K_PHPENV_FOREGROUND=5
11891189+ # Hide php version if it doesn't come from one of these sources.
11901190+ typeset -g POWERLEVEL9K_PHPENV_SOURCES=(shell local global)
11911191+ # If set to false, hide php version if it's the same as global:
11921192+ # $(phpenv version-name) == $(phpenv global).
11931193+ typeset -g POWERLEVEL9K_PHPENV_PROMPT_ALWAYS_SHOW=false
11941194+ # If set to false, hide php version if it's equal to "system".
11951195+ typeset -g POWERLEVEL9K_PHPENV_SHOW_SYSTEM=true
11961196+ # Custom icon.
11971197+ # typeset -g POWERLEVEL9K_PHPENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
11981198+11991199+ #######[ scalaenv: scala version from scalaenv (https://github.com/scalaenv/scalaenv) ]#######
12001200+ # Scala color.
12011201+ typeset -g POWERLEVEL9K_SCALAENV_FOREGROUND=1
12021202+ # Hide scala version if it doesn't come from one of these sources.
12031203+ typeset -g POWERLEVEL9K_SCALAENV_SOURCES=(shell local global)
12041204+ # If set to false, hide scala version if it's the same as global:
12051205+ # $(scalaenv version-name) == $(scalaenv global).
12061206+ typeset -g POWERLEVEL9K_SCALAENV_PROMPT_ALWAYS_SHOW=false
12071207+ # If set to false, hide scala version if it's equal to "system".
12081208+ typeset -g POWERLEVEL9K_SCALAENV_SHOW_SYSTEM=true
12091209+ # Custom icon.
12101210+ # typeset -g POWERLEVEL9K_SCALAENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
12111211+12121212+ ##########[ haskell_stack: haskell version from stack (https://haskellstack.org/) ]###########
12131213+ # Haskell color.
12141214+ typeset -g POWERLEVEL9K_HASKELL_STACK_FOREGROUND=3
12151215+ # Hide haskell version if it doesn't come from one of these sources.
12161216+ #
12171217+ # shell: version is set by STACK_YAML
12181218+ # local: version is set by stack.yaml up the directory tree
12191219+ # global: version is set by the implicit global project (~/.stack/global-project/stack.yaml)
12201220+ typeset -g POWERLEVEL9K_HASKELL_STACK_SOURCES=(shell local)
12211221+ # If set to false, hide haskell version if it's the same as in the implicit global project.
12221222+ typeset -g POWERLEVEL9K_HASKELL_STACK_ALWAYS_SHOW=true
12231223+ # Custom icon.
12241224+ # typeset -g POWERLEVEL9K_HASKELL_STACK_VISUAL_IDENTIFIER_EXPANSION='⭐'
12251225+12261226+ #############[ kubecontext: current kubernetes context (https://kubernetes.io/) ]#############
12271227+ # Show kubecontext only when the command you are typing invokes one of these tools.
12281228+ # Tip: Remove the next line to always show kubecontext.
12291229+ typeset -g POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND='kubectl|helm|kubens|kubectx|oc|istioctl|kogito|k9s|helmfile|flux|fluxctl|stern|kubeseal|skaffold|kubent|kubecolor|cmctl|sparkctl'
12301230+12311231+ # Kubernetes context classes for the purpose of using different colors, icons and expansions with
12321232+ # different contexts.
12331233+ #
12341234+ # POWERLEVEL9K_KUBECONTEXT_CLASSES is an array with even number of elements. The first element
12351235+ # in each pair defines a pattern against which the current kubernetes context gets matched.
12361236+ # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below)
12371237+ # that gets matched. If you unset all POWERLEVEL9K_KUBECONTEXT_*CONTENT_EXPANSION parameters,
12381238+ # you'll see this value in your prompt. The second element of each pair in
12391239+ # POWERLEVEL9K_KUBECONTEXT_CLASSES defines the context class. Patterns are tried in order. The
12401240+ # first match wins.
12411241+ #
12421242+ # For example, given these settings:
12431243+ #
12441244+ # typeset -g POWERLEVEL9K_KUBECONTEXT_CLASSES=(
12451245+ # '*prod*' PROD
12461246+ # '*test*' TEST
12471247+ # '*' DEFAULT)
12481248+ #
12491249+ # If your current kubernetes context is "deathray-testing/default", its class is TEST
12501250+ # because "deathray-testing/default" doesn't match the pattern '*prod*' but does match '*test*'.
12511251+ #
12521252+ # You can define different colors, icons and content expansions for different classes:
12531253+ #
12541254+ # typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_FOREGROUND=3
12551255+ # typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐'
12561256+ # typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <'
12571257+ typeset -g POWERLEVEL9K_KUBECONTEXT_CLASSES=(
12581258+ # '*prod*' PROD # These values are examples that are unlikely
12591259+ # '*test*' TEST # to match your needs. Customize them as needed.
12601260+ '*' DEFAULT)
12611261+ typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_FOREGROUND=5
12621262+ # typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='⭐'
12631263+12641264+ # Use POWERLEVEL9K_KUBECONTEXT_CONTENT_EXPANSION to specify the content displayed by kubecontext
12651265+ # segment. Parameter expansions are very flexible and fast, too. See reference:
12661266+ # http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion.
12671267+ #
12681268+ # Within the expansion the following parameters are always available:
12691269+ #
12701270+ # - P9K_CONTENT The content that would've been displayed if there was no content
12711271+ # expansion defined.
12721272+ # - P9K_KUBECONTEXT_NAME The current context's name. Corresponds to column NAME in the
12731273+ # output of `kubectl config get-contexts`.
12741274+ # - P9K_KUBECONTEXT_CLUSTER The current context's cluster. Corresponds to column CLUSTER in the
12751275+ # output of `kubectl config get-contexts`.
12761276+ # - P9K_KUBECONTEXT_NAMESPACE The current context's namespace. Corresponds to column NAMESPACE
12771277+ # in the output of `kubectl config get-contexts`. If there is no
12781278+ # namespace, the parameter is set to "default".
12791279+ # - P9K_KUBECONTEXT_USER The current context's user. Corresponds to column AUTHINFO in the
12801280+ # output of `kubectl config get-contexts`.
12811281+ #
12821282+ # If the context points to Google Kubernetes Engine (GKE) or Elastic Kubernetes Service (EKS),
12831283+ # the following extra parameters are available:
12841284+ #
12851285+ # - P9K_KUBECONTEXT_CLOUD_NAME Either "gke" or "eks".
12861286+ # - P9K_KUBECONTEXT_CLOUD_ACCOUNT Account/project ID.
12871287+ # - P9K_KUBECONTEXT_CLOUD_ZONE Availability zone.
12881288+ # - P9K_KUBECONTEXT_CLOUD_CLUSTER Cluster.
12891289+ #
12901290+ # P9K_KUBECONTEXT_CLOUD_* parameters are derived from P9K_KUBECONTEXT_CLUSTER. For example,
12911291+ # if P9K_KUBECONTEXT_CLUSTER is "gke_my-account_us-east1-a_my-cluster-01":
12921292+ #
12931293+ # - P9K_KUBECONTEXT_CLOUD_NAME=gke
12941294+ # - P9K_KUBECONTEXT_CLOUD_ACCOUNT=my-account
12951295+ # - P9K_KUBECONTEXT_CLOUD_ZONE=us-east1-a
12961296+ # - P9K_KUBECONTEXT_CLOUD_CLUSTER=my-cluster-01
12971297+ #
12981298+ # If P9K_KUBECONTEXT_CLUSTER is "arn:aws:eks:us-east-1:123456789012:cluster/my-cluster-01":
12991299+ #
13001300+ # - P9K_KUBECONTEXT_CLOUD_NAME=eks
13011301+ # - P9K_KUBECONTEXT_CLOUD_ACCOUNT=123456789012
13021302+ # - P9K_KUBECONTEXT_CLOUD_ZONE=us-east-1
13031303+ # - P9K_KUBECONTEXT_CLOUD_CLUSTER=my-cluster-01
13041304+ typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION=
13051305+ # Show P9K_KUBECONTEXT_CLOUD_CLUSTER if it's not empty and fall back to P9K_KUBECONTEXT_NAME.
13061306+ POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION+='${P9K_KUBECONTEXT_CLOUD_CLUSTER:-${P9K_KUBECONTEXT_NAME}}'
13071307+ # Append the current context's namespace if it's not "default".
13081308+ POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION+='${${:-/$P9K_KUBECONTEXT_NAMESPACE}:#/default}'
13091309+13101310+ # Custom prefix.
13111311+ # typeset -g POWERLEVEL9K_KUBECONTEXT_PREFIX='%fat '
13121312+13131313+ ################[ terraform: terraform workspace (https://www.terraform.io) ]#################
13141314+ # Don't show terraform workspace if it's literally "default".
13151315+ typeset -g POWERLEVEL9K_TERRAFORM_SHOW_DEFAULT=false
13161316+ # POWERLEVEL9K_TERRAFORM_CLASSES is an array with even number of elements. The first element
13171317+ # in each pair defines a pattern against which the current terraform workspace gets matched.
13181318+ # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below)
13191319+ # that gets matched. If you unset all POWERLEVEL9K_TERRAFORM_*CONTENT_EXPANSION parameters,
13201320+ # you'll see this value in your prompt. The second element of each pair in
13211321+ # POWERLEVEL9K_TERRAFORM_CLASSES defines the workspace class. Patterns are tried in order. The
13221322+ # first match wins.
13231323+ #
13241324+ # For example, given these settings:
13251325+ #
13261326+ # typeset -g POWERLEVEL9K_TERRAFORM_CLASSES=(
13271327+ # '*prod*' PROD
13281328+ # '*test*' TEST
13291329+ # '*' OTHER)
13301330+ #
13311331+ # If your current terraform workspace is "project_test", its class is TEST because "project_test"
13321332+ # doesn't match the pattern '*prod*' but does match '*test*'.
13331333+ #
13341334+ # You can define different colors, icons and content expansions for different classes:
13351335+ #
13361336+ # typeset -g POWERLEVEL9K_TERRAFORM_TEST_FOREGROUND=2
13371337+ # typeset -g POWERLEVEL9K_TERRAFORM_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐'
13381338+ # typeset -g POWERLEVEL9K_TERRAFORM_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <'
13391339+ typeset -g POWERLEVEL9K_TERRAFORM_CLASSES=(
13401340+ # '*prod*' PROD # These values are examples that are unlikely
13411341+ # '*test*' TEST # to match your needs. Customize them as needed.
13421342+ '*' OTHER)
13431343+ typeset -g POWERLEVEL9K_TERRAFORM_OTHER_FOREGROUND=4
13441344+ # typeset -g POWERLEVEL9K_TERRAFORM_OTHER_VISUAL_IDENTIFIER_EXPANSION='⭐'
13451345+13461346+ #############[ terraform_version: terraform version (https://www.terraform.io) ]##############
13471347+ # Terraform version color.
13481348+ typeset -g POWERLEVEL9K_TERRAFORM_VERSION_FOREGROUND=4
13491349+ # Custom icon.
13501350+ # typeset -g POWERLEVEL9K_TERRAFORM_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'
13511351+13521352+ #[ aws: aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) ]#
13531353+ # Show aws only when the command you are typing invokes one of these tools.
13541354+ # Tip: Remove the next line to always show aws.
13551355+ typeset -g POWERLEVEL9K_AWS_SHOW_ON_COMMAND='aws|awless|cdk|terraform|pulumi|terragrunt'
13561356+13571357+ # POWERLEVEL9K_AWS_CLASSES is an array with even number of elements. The first element
13581358+ # in each pair defines a pattern against which the current AWS profile gets matched.
13591359+ # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below)
13601360+ # that gets matched. If you unset all POWERLEVEL9K_AWS_*CONTENT_EXPANSION parameters,
13611361+ # you'll see this value in your prompt. The second element of each pair in
13621362+ # POWERLEVEL9K_AWS_CLASSES defines the profile class. Patterns are tried in order. The
13631363+ # first match wins.
13641364+ #
13651365+ # For example, given these settings:
13661366+ #
13671367+ # typeset -g POWERLEVEL9K_AWS_CLASSES=(
13681368+ # '*prod*' PROD
13691369+ # '*test*' TEST
13701370+ # '*' DEFAULT)
13711371+ #
13721372+ # If your current AWS profile is "company_test", its class is TEST
13731373+ # because "company_test" doesn't match the pattern '*prod*' but does match '*test*'.
13741374+ #
13751375+ # You can define different colors, icons and content expansions for different classes:
13761376+ #
13771377+ # typeset -g POWERLEVEL9K_AWS_TEST_FOREGROUND=2
13781378+ # typeset -g POWERLEVEL9K_AWS_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐'
13791379+ # typeset -g POWERLEVEL9K_AWS_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <'
13801380+ typeset -g POWERLEVEL9K_AWS_CLASSES=(
13811381+ # '*prod*' PROD # These values are examples that are unlikely
13821382+ # '*test*' TEST # to match your needs. Customize them as needed.
13831383+ '*' DEFAULT)
13841384+ typeset -g POWERLEVEL9K_AWS_DEFAULT_FOREGROUND=3
13851385+ # typeset -g POWERLEVEL9K_AWS_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='⭐'
13861386+13871387+ # AWS segment format. The following parameters are available within the expansion.
13881388+ #
13891389+ # - P9K_AWS_PROFILE The name of the current AWS profile.
13901390+ # - P9K_AWS_REGION The region associated with the current AWS profile.
13911391+ typeset -g POWERLEVEL9K_AWS_CONTENT_EXPANSION='${P9K_AWS_PROFILE//\%/%%}${P9K_AWS_REGION:+ ${P9K_AWS_REGION//\%/%%}}'
13921392+13931393+ #[ aws_eb_env: aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/) ]#
13941394+ # AWS Elastic Beanstalk environment color.
13951395+ typeset -g POWERLEVEL9K_AWS_EB_ENV_FOREGROUND=2
13961396+ # Custom icon.
13971397+ # typeset -g POWERLEVEL9K_AWS_EB_ENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
13981398+13991399+ ##########[ azure: azure account name (https://docs.microsoft.com/en-us/cli/azure) ]##########
14001400+ # Show azure only when the command you are typing invokes one of these tools.
14011401+ # Tip: Remove the next line to always show azure.
14021402+ typeset -g POWERLEVEL9K_AZURE_SHOW_ON_COMMAND='az|terraform|pulumi|terragrunt'
14031403+14041404+ # POWERLEVEL9K_AZURE_CLASSES is an array with even number of elements. The first element
14051405+ # in each pair defines a pattern against which the current azure account name gets matched.
14061406+ # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below)
14071407+ # that gets matched. If you unset all POWERLEVEL9K_AZURE_*CONTENT_EXPANSION parameters,
14081408+ # you'll see this value in your prompt. The second element of each pair in
14091409+ # POWERLEVEL9K_AZURE_CLASSES defines the account class. Patterns are tried in order. The
14101410+ # first match wins.
14111411+ #
14121412+ # For example, given these settings:
14131413+ #
14141414+ # typeset -g POWERLEVEL9K_AZURE_CLASSES=(
14151415+ # '*prod*' PROD
14161416+ # '*test*' TEST
14171417+ # '*' OTHER)
14181418+ #
14191419+ # If your current azure account is "company_test", its class is TEST because "company_test"
14201420+ # doesn't match the pattern '*prod*' but does match '*test*'.
14211421+ #
14221422+ # You can define different colors, icons and content expansions for different classes:
14231423+ #
14241424+ # typeset -g POWERLEVEL9K_AZURE_TEST_FOREGROUND=2
14251425+ # typeset -g POWERLEVEL9K_AZURE_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐'
14261426+ # typeset -g POWERLEVEL9K_AZURE_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <'
14271427+ typeset -g POWERLEVEL9K_AZURE_CLASSES=(
14281428+ # '*prod*' PROD # These values are examples that are unlikely
14291429+ # '*test*' TEST # to match your needs. Customize them as needed.
14301430+ '*' OTHER)
14311431+14321432+ # Azure account name color.
14331433+ typeset -g POWERLEVEL9K_AZURE_OTHER_FOREGROUND=4
14341434+ # Custom icon.
14351435+ # typeset -g POWERLEVEL9K_AZURE_OTHER_VISUAL_IDENTIFIER_EXPANSION='⭐'
14361436+14371437+ ##########[ gcloud: google cloud account and project (https://cloud.google.com/) ]###########
14381438+ # Show gcloud only when the command you are typing invokes one of these tools.
14391439+ # Tip: Remove the next line to always show gcloud.
14401440+ typeset -g POWERLEVEL9K_GCLOUD_SHOW_ON_COMMAND='gcloud|gcs|gsutil'
14411441+ # Google cloud color.
14421442+ typeset -g POWERLEVEL9K_GCLOUD_FOREGROUND=4
14431443+14441444+ # Google cloud format. Change the value of POWERLEVEL9K_GCLOUD_PARTIAL_CONTENT_EXPANSION and/or
14451445+ # POWERLEVEL9K_GCLOUD_COMPLETE_CONTENT_EXPANSION if the default is too verbose or not informative
14461446+ # enough. You can use the following parameters in the expansions. Each of them corresponds to the
14471447+ # output of `gcloud` tool.
14481448+ #
14491449+ # Parameter | Source
14501450+ # -------------------------|--------------------------------------------------------------------
14511451+ # P9K_GCLOUD_CONFIGURATION | gcloud config configurations list --format='value(name)'
14521452+ # P9K_GCLOUD_ACCOUNT | gcloud config get-value account
14531453+ # P9K_GCLOUD_PROJECT_ID | gcloud config get-value project
14541454+ # P9K_GCLOUD_PROJECT_NAME | gcloud projects describe $P9K_GCLOUD_PROJECT_ID --format='value(name)'
14551455+ #
14561456+ # Note: ${VARIABLE//\%/%%} expands to ${VARIABLE} with all occurrences of '%' replaced with '%%'.
14571457+ #
14581458+ # Obtaining project name requires sending a request to Google servers. This can take a long time
14591459+ # and even fail. When project name is unknown, P9K_GCLOUD_PROJECT_NAME is not set and gcloud
14601460+ # prompt segment is in state PARTIAL. When project name gets known, P9K_GCLOUD_PROJECT_NAME gets
14611461+ # set and gcloud prompt segment transitions to state COMPLETE.
14621462+ #
14631463+ # You can customize the format, icon and colors of gcloud segment separately for states PARTIAL
14641464+ # and COMPLETE. You can also hide gcloud in state PARTIAL by setting
14651465+ # POWERLEVEL9K_GCLOUD_PARTIAL_VISUAL_IDENTIFIER_EXPANSION and
14661466+ # POWERLEVEL9K_GCLOUD_PARTIAL_CONTENT_EXPANSION to empty.
14671467+ typeset -g POWERLEVEL9K_GCLOUD_PARTIAL_CONTENT_EXPANSION='${P9K_GCLOUD_PROJECT_ID//\%/%%}'
14681468+ typeset -g POWERLEVEL9K_GCLOUD_COMPLETE_CONTENT_EXPANSION='${P9K_GCLOUD_PROJECT_NAME//\%/%%}'
14691469+14701470+ # Send a request to Google (by means of `gcloud projects describe ...`) to obtain project name
14711471+ # this often. Negative value disables periodic polling. In this mode project name is retrieved
14721472+ # only when the current configuration, account or project id changes.
14731473+ typeset -g POWERLEVEL9K_GCLOUD_REFRESH_PROJECT_NAME_SECONDS=60
14741474+14751475+ # Custom icon.
14761476+ # typeset -g POWERLEVEL9K_GCLOUD_VISUAL_IDENTIFIER_EXPANSION='⭐'
14771477+14781478+ #[ google_app_cred: google application credentials (https://cloud.google.com/docs/authentication/production) ]#
14791479+ # Show google_app_cred only when the command you are typing invokes one of these tools.
14801480+ # Tip: Remove the next line to always show google_app_cred.
14811481+ typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_SHOW_ON_COMMAND='terraform|pulumi|terragrunt'
14821482+14831483+ # Google application credentials classes for the purpose of using different colors, icons and
14841484+ # expansions with different credentials.
14851485+ #
14861486+ # POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES is an array with even number of elements. The first
14871487+ # element in each pair defines a pattern against which the current kubernetes context gets
14881488+ # matched. More specifically, it's P9K_CONTENT prior to the application of context expansion
14891489+ # (see below) that gets matched. If you unset all POWERLEVEL9K_GOOGLE_APP_CRED_*CONTENT_EXPANSION
14901490+ # parameters, you'll see this value in your prompt. The second element of each pair in
14911491+ # POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES defines the context class. Patterns are tried in order.
14921492+ # The first match wins.
14931493+ #
14941494+ # For example, given these settings:
14951495+ #
14961496+ # typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES=(
14971497+ # '*:*prod*:*' PROD
14981498+ # '*:*test*:*' TEST
14991499+ # '*' DEFAULT)
15001500+ #
15011501+ # If your current Google application credentials is "service_account deathray-testing x@y.com",
15021502+ # its class is TEST because it doesn't match the pattern '* *prod* *' but does match '* *test* *'.
15031503+ #
15041504+ # You can define different colors, icons and content expansions for different classes:
15051505+ #
15061506+ # typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_TEST_FOREGROUND=3
15071507+ # typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐'
15081508+ # typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_TEST_CONTENT_EXPANSION='$P9K_GOOGLE_APP_CRED_PROJECT_ID'
15091509+ typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_CLASSES=(
15101510+ # '*:*prod*:*' PROD # These values are examples that are unlikely
15111511+ # '*:*test*:*' TEST # to match your needs. Customize them as needed.
15121512+ '*' DEFAULT)
15131513+ typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_DEFAULT_FOREGROUND=5
15141514+ # typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='⭐'
15151515+15161516+ # Use POWERLEVEL9K_GOOGLE_APP_CRED_CONTENT_EXPANSION to specify the content displayed by
15171517+ # google_app_cred segment. Parameter expansions are very flexible and fast, too. See reference:
15181518+ # http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion.
15191519+ #
15201520+ # You can use the following parameters in the expansion. Each of them corresponds to one of the
15211521+ # fields in the JSON file pointed to by GOOGLE_APPLICATION_CREDENTIALS.
15221522+ #
15231523+ # Parameter | JSON key file field
15241524+ # ---------------------------------+---------------
15251525+ # P9K_GOOGLE_APP_CRED_TYPE | type
15261526+ # P9K_GOOGLE_APP_CRED_PROJECT_ID | project_id
15271527+ # P9K_GOOGLE_APP_CRED_CLIENT_EMAIL | client_email
15281528+ #
15291529+ # Note: ${VARIABLE//\%/%%} expands to ${VARIABLE} with all occurrences of '%' replaced by '%%'.
15301530+ typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_DEFAULT_CONTENT_EXPANSION='${P9K_GOOGLE_APP_CRED_PROJECT_ID//\%/%%}'
15311531+15321532+ ##############[ toolbox: toolbox name (https://github.com/containers/toolbox) ]###############
15331533+ # Toolbox color.
15341534+ typeset -g POWERLEVEL9K_TOOLBOX_FOREGROUND=3
15351535+ # Don't display the name of the toolbox if it matches fedora-toolbox-*.
15361536+ typeset -g POWERLEVEL9K_TOOLBOX_CONTENT_EXPANSION='${P9K_TOOLBOX_NAME:#fedora-toolbox-*}'
15371537+ # Custom icon.
15381538+ # typeset -g POWERLEVEL9K_TOOLBOX_VISUAL_IDENTIFIER_EXPANSION='⭐'
15391539+ # Custom prefix.
15401540+ # typeset -g POWERLEVEL9K_TOOLBOX_PREFIX='%fin '
15411541+15421542+ ###############################[ public_ip: public IP address ]###############################
15431543+ # Public IP color.
15441544+ typeset -g POWERLEVEL9K_PUBLIC_IP_FOREGROUND=6
15451545+ # Custom icon.
15461546+ # typeset -g POWERLEVEL9K_PUBLIC_IP_VISUAL_IDENTIFIER_EXPANSION='⭐'
15471547+15481548+ ########################[ vpn_ip: virtual private network indicator ]#########################
15491549+ # VPN IP color.
15501550+ typeset -g POWERLEVEL9K_VPN_IP_FOREGROUND=3
15511551+ # When on VPN, show just an icon without the IP address.
15521552+ # Tip: To display the private IP address when on VPN, remove the next line.
15531553+ typeset -g POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION=
15541554+ # Regular expression for the VPN network interface. Run `ifconfig` or `ip -4 a show` while on VPN
15551555+ # to see the name of the interface.
15561556+ typeset -g POWERLEVEL9K_VPN_IP_INTERFACE='(gpd|wg|(.*tun)|tailscale)[0-9]*|(zt.*)'
15571557+ # If set to true, show one segment per matching network interface. If set to false, show only
15581558+ # one segment corresponding to the first matching network interface.
15591559+ # Tip: If you set it to true, you'll probably want to unset POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION.
15601560+ typeset -g POWERLEVEL9K_VPN_IP_SHOW_ALL=false
15611561+ # Custom icon.
15621562+ # typeset -g POWERLEVEL9K_VPN_IP_VISUAL_IDENTIFIER_EXPANSION='⭐'
15631563+15641564+ ###########[ ip: ip address and bandwidth usage for a specified network interface ]###########
15651565+ # IP color.
15661566+ typeset -g POWERLEVEL9K_IP_FOREGROUND=4
15671567+ # The following parameters are accessible within the expansion:
15681568+ #
15691569+ # Parameter | Meaning
15701570+ # ----------------------+-------------------------------------------
15711571+ # P9K_IP_IP | IP address
15721572+ # P9K_IP_INTERFACE | network interface
15731573+ # P9K_IP_RX_BYTES | total number of bytes received
15741574+ # P9K_IP_TX_BYTES | total number of bytes sent
15751575+ # P9K_IP_RX_BYTES_DELTA | number of bytes received since last prompt
15761576+ # P9K_IP_TX_BYTES_DELTA | number of bytes sent since last prompt
15771577+ # P9K_IP_RX_RATE | receive rate (since last prompt)
15781578+ # P9K_IP_TX_RATE | send rate (since last prompt)
15791579+ typeset -g POWERLEVEL9K_IP_CONTENT_EXPANSION='$P9K_IP_IP${P9K_IP_RX_RATE:+ %2F⇣$P9K_IP_RX_RATE}${P9K_IP_TX_RATE:+ %3F⇡$P9K_IP_TX_RATE}'
15801580+ # Show information for the first network interface whose name matches this regular expression.
15811581+ # Run `ifconfig` or `ip -4 a show` to see the names of all network interfaces.
15821582+ typeset -g POWERLEVEL9K_IP_INTERFACE='[ew].*'
15831583+ # Custom icon.
15841584+ # typeset -g POWERLEVEL9K_IP_VISUAL_IDENTIFIER_EXPANSION='⭐'
15851585+15861586+ #########################[ proxy: system-wide http/https/ftp proxy ]##########################
15871587+ # Proxy color.
15881588+ typeset -g POWERLEVEL9K_PROXY_FOREGROUND=2
15891589+ # Custom icon.
15901590+ # typeset -g POWERLEVEL9K_PROXY_VISUAL_IDENTIFIER_EXPANSION='⭐'
15911591+15921592+ ################################[ battery: internal battery ]#################################
15931593+ # Show battery in red when it's below this level and not connected to power supply.
15941594+ typeset -g POWERLEVEL9K_BATTERY_LOW_THRESHOLD=20
15951595+ typeset -g POWERLEVEL9K_BATTERY_LOW_FOREGROUND=1
15961596+ # Show battery in green when it's charging or fully charged.
15971597+ typeset -g POWERLEVEL9K_BATTERY_{CHARGING,CHARGED}_FOREGROUND=2
15981598+ # Show battery in yellow when it's discharging.
15991599+ typeset -g POWERLEVEL9K_BATTERY_DISCONNECTED_FOREGROUND=3
16001600+ # Battery pictograms going from low to high level of charge.
16011601+ typeset -g POWERLEVEL9K_BATTERY_STAGES='\UF008E\UF007A\UF007B\UF007C\UF007D\UF007E\UF007F\UF0080\UF0081\UF0082\UF0079'
16021602+ # Don't show the remaining time to charge/discharge.
16031603+ typeset -g POWERLEVEL9K_BATTERY_VERBOSE=false
16041604+16051605+ #####################################[ wifi: wifi speed ]#####################################
16061606+ # WiFi color.
16071607+ typeset -g POWERLEVEL9K_WIFI_FOREGROUND=4
16081608+ # Custom icon.
16091609+ # typeset -g POWERLEVEL9K_WIFI_VISUAL_IDENTIFIER_EXPANSION='⭐'
16101610+16111611+ # Use different colors and icons depending on signal strength ($P9K_WIFI_BARS).
16121612+ #
16131613+ # # Wifi colors and icons for different signal strength levels (low to high).
16141614+ # typeset -g my_wifi_fg=(4 4 4 4 4) # <-- change these values
16151615+ # typeset -g my_wifi_icon=('WiFi' 'WiFi' 'WiFi' 'WiFi' 'WiFi') # <-- change these values
16161616+ #
16171617+ # typeset -g POWERLEVEL9K_WIFI_CONTENT_EXPANSION='%F{${my_wifi_fg[P9K_WIFI_BARS+1]}}$P9K_WIFI_LAST_TX_RATE Mbps'
16181618+ # typeset -g POWERLEVEL9K_WIFI_VISUAL_IDENTIFIER_EXPANSION='%F{${my_wifi_fg[P9K_WIFI_BARS+1]}}${my_wifi_icon[P9K_WIFI_BARS+1]}'
16191619+ #
16201620+ # The following parameters are accessible within the expansions:
16211621+ #
16221622+ # Parameter | Meaning
16231623+ # ----------------------+---------------
16241624+ # P9K_WIFI_SSID | service set identifier, a.k.a. network name
16251625+ # P9K_WIFI_LINK_AUTH | authentication protocol such as "wpa2-psk" or "none"; empty if unknown
16261626+ # P9K_WIFI_LAST_TX_RATE | wireless transmit rate in megabits per second
16271627+ # P9K_WIFI_RSSI | signal strength in dBm, from -120 to 0
16281628+ # P9K_WIFI_NOISE | noise in dBm, from -120 to 0
16291629+ # P9K_WIFI_BARS | signal strength in bars, from 0 to 4 (derived from P9K_WIFI_RSSI and P9K_WIFI_NOISE)
16301630+16311631+ ####################################[ time: current time ]####################################
16321632+ # Current time color.
16331633+ typeset -g POWERLEVEL9K_TIME_FOREGROUND=6
16341634+ # Format for the current time: 09:51:02. See `man 3 strftime`.
16351635+ typeset -g POWERLEVEL9K_TIME_FORMAT='%D{%H:%M:%S}'
16361636+ # If set to true, time will update when you hit enter. This way prompts for the past
16371637+ # commands will contain the start times of their commands as opposed to the default
16381638+ # behavior where they contain the end times of their preceding commands.
16391639+ typeset -g POWERLEVEL9K_TIME_UPDATE_ON_COMMAND=false
16401640+ # Custom icon.
16411641+ typeset -g POWERLEVEL9K_TIME_VISUAL_IDENTIFIER_EXPANSION=
16421642+ # Custom prefix.
16431643+ # typeset -g POWERLEVEL9K_TIME_PREFIX='%fat '
16441644+16451645+ # Example of a user-defined prompt segment. Function prompt_example will be called on every
16461646+ # prompt if `example` prompt segment is added to POWERLEVEL9K_LEFT_PROMPT_ELEMENTS or
16471647+ # POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS. It displays an icon and green text greeting the user.
16481648+ #
16491649+ # Type `p10k help segment` for documentation and a more sophisticated example.
16501650+ function prompt_example() {
16511651+ p10k segment -f 2 -i '⭐' -t 'hello, %n'
16521652+ }
16531653+16541654+ # User-defined prompt segments may optionally provide an instant_prompt_* function. Its job
16551655+ # is to generate the prompt segment for display in instant prompt. See
16561656+ # https://github.com/romkatv/powerlevel10k#instant-prompt.
16571657+ #
16581658+ # Powerlevel10k will call instant_prompt_* at the same time as the regular prompt_* function
16591659+ # and will record all `p10k segment` calls it makes. When displaying instant prompt, Powerlevel10k
16601660+ # will replay these calls without actually calling instant_prompt_*. It is imperative that
16611661+ # instant_prompt_* always makes the same `p10k segment` calls regardless of environment. If this
16621662+ # rule is not observed, the content of instant prompt will be incorrect.
16631663+ #
16641664+ # Usually, you should either not define instant_prompt_* or simply call prompt_* from it. If
16651665+ # instant_prompt_* is not defined for a segment, the segment won't be shown in instant prompt.
16661666+ function instant_prompt_example() {
16671667+ # Since prompt_example always makes the same `p10k segment` calls, we can call it from
16681668+ # instant_prompt_example. This will give us the same `example` prompt segment in the instant
16691669+ # and regular prompts.
16701670+ prompt_example
16711671+ }
16721672+16731673+ # User-defined prompt segments can be customized the same way as built-in segments.
16741674+ # typeset -g POWERLEVEL9K_EXAMPLE_FOREGROUND=208
16751675+ # typeset -g POWERLEVEL9K_EXAMPLE_VISUAL_IDENTIFIER_EXPANSION='⭐'
16761676+16771677+ # Transient prompt works similarly to the builtin transient_rprompt option. It trims down prompt
16781678+ # when accepting a command line. Supported values:
16791679+ #
16801680+ # - off: Don't change prompt when accepting a command line.
16811681+ # - always: Trim down prompt when accepting a command line.
16821682+ # - same-dir: Trim down prompt when accepting a command line unless this is the first command
16831683+ # typed after changing current working directory.
16841684+ typeset -g POWERLEVEL9K_TRANSIENT_PROMPT=always
16851685+16861686+ # Instant prompt mode.
16871687+ #
16881688+ # - off: Disable instant prompt. Choose this if you've tried instant prompt and found
16891689+ # it incompatible with your zsh configuration files.
16901690+ # - quiet: Enable instant prompt and don't print warnings when detecting console output
16911691+ # during zsh initialization. Choose this if you've read and understood
16921692+ # https://github.com/romkatv/powerlevel10k#instant-prompt.
16931693+ # - verbose: Enable instant prompt and print a warning when detecting console output during
16941694+ # zsh initialization. Choose this if you've never tried instant prompt, haven't
16951695+ # seen the warning, or if you are unsure what this all means.
16961696+ typeset -g POWERLEVEL9K_INSTANT_PROMPT=verbose
16971697+16981698+ # Hot reload allows you to change POWERLEVEL9K options after Powerlevel10k has been initialized.
16991699+ # For example, you can type POWERLEVEL9K_BACKGROUND=red and see your prompt turn red. Hot reload
17001700+ # can slow down prompt by 1-2 milliseconds, so it's better to keep it turned off unless you
17011701+ # really need it.
17021702+ typeset -g POWERLEVEL9K_DISABLE_HOT_RELOAD=true
17031703+17041704+ # If p10k is already loaded, reload configuration.
17051705+ # This works even with POWERLEVEL9K_DISABLE_HOT_RELOAD=true.
17061706+ (( ! $+functions[p10k] )) || p10k reload
17071707+}
17081708+17091709+# Tell `p10k configure` which file it should overwrite.
17101710+typeset -g POWERLEVEL9K_CONFIG_FILE=${${(%):-%x}:a}
17111711+17121712+(( ${#p10k_config_opts} )) && setopt ${p10k_config_opts[@]}
17131713+'builtin' 'unset' 'p10k_config_opts'
···11-#python 3
22-alias python=python3
33-alias pip=pip3
41#make neovim default vim
52export EDITOR="nvim"
33+export SUDO_EDITOR="$EDITOR"
64alias vim=nvim
75alias v=nvim
86···1715alias c=clear
18161917# show hidden files by default
2020-alias ll='ls -la'
1818+alias ll='ls -lah'
2119function chpwd() {
2220 emulate -L zsh
2321 ll
···9694alias lg=lazygit
9795alias ldd=lazydocker
9896alias lk=k9s
9999-alias cat=bat
100100-alias cato=/bin/cat
9797+alias cat=cat
9898+alias cato=bat
10199102100#docker
103101alias dkps="docker ps"
···120118alias mscreener="~/.config/mutt/initial_screening.sh >> ~/.config/mutt/logs/screening.log 2>&1"
121119alias msync="offlineimap -a sspaeti.com"
122120123123-alias snowsql=/Applications/SnowSQL.app/Contents/MacOS/snowsql
121121+122122+# use open as on macOs to open pdf, videos, images, and directories (send output to dev and start in background for file manager (nautilus))
123123+open() { xdg-open "$@" &>/dev/null & }
124124
-84
zsh/configs.shrc
···11-set -o vi
22-33-#bash completion
44-[[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && . "/usr/local/etc/profile.d/bash_completion.sh"
55-66-#This will create separate history files in your home directory
77-#MYTTY=`tty`
88-#HISTFILE=$HOME/.bash_history_`basename $MYTTY`
99-1010-# #allow e.g. "pip install -e .[full]" to work -> zsh uses square brackets for globbing / pattern matching.
1111-# #alias pip='noglob pip'
1212-1313-#always move hidden files as well
1414-#shopt -s dotglob
1515-1616-# ignore certification setings to add to history file
1717-# export HISTIGNORE='*TMP_CERT*:*BEGIN CERTIFICATE*' #does not work for zsh
1818-# ignore commands you don't want stored in the history with a space
1919-setopt HIST_IGNORE_SPACE
2020-2121-2222-# bindkey '^r' history-incremental-search-backward
2323-bindkey -M viins 'jk' vi-cmd-mode
2424-bindkey -M viins 'kj' vi-cmd-mode
2525-2626-# fzf search
2727-[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
2828-2929-#on slow internet connection brew update takes ages. Disabling it per default here
3030-export HOMEBREW_NO_AUTO_UPDATE=1
3131-export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
3232-3333-# . /opt/homebrew/opt/asdf/libexec/asdf.sh
3434-3535-#add homebrew
3636-export PATH=/opt/homebrew/bin:$PATH
3737-#add rust to path
3838-export PATH=/Users/sspaeti/.cargo/bin:$PATH
3939-4040-# following https://earthly.dev/blog/homebrew-on-m1/
4141-eval "$(/opt/homebrew/bin/brew shellenv)"
4242-export PATH="/opt/homebrew/bin:/opt/homebrew/sbin${PATH+:$PATH}"
4343-# m1 issue building python with asdf/pyenv
4444-export PATH="/opt/homebrew/opt/openssl@3/bin:$PATH"
4545-export PATH="/opt/homebrew/opt/llvm/bin:$PATH"
4646-4747-# add this after homebrew to use m1 /opt/homebrew before old homebrew that was in /usr/local/bin
4848-export PATH="$PATH:/usr/local/bin/"
4949-5050-# add path from uv
5151-export PATH="/Users/sspaeti/.local/share/../bin:$PATH"
5252-5353-#adoptopenjdk to change java versions with e.g. "jdk 11"
5454-jdk() {
5555- version=$1
5656- export JAVA_HOME=$(/usr/libexec/java_home -v"$version");
5757- # java -version
5858- }
5959-# Set a default Java version for every new terminal session
6060-jdk 17
6161-6262-6363-#gradle: from: https://docs.airbyte.com/contributing-to-airbyte/developing-locally#build-with-gradle
6464-export GRADLE_OPTS="-Dorg.gradle.workers.max=6"
6565-6666-# zoxide is a smarter cd command, inspired by z and autojump.
6767-source ~/.dotfiles/zsh/zoxide.sh
6868-eval "$(zoxide init zsh)"
6969-export PATH=~/.dotfiles/helpers/bin:$PATH
7070-7171-# function to automatically upgrade pip when creating a venv. Crate with create_venv ~/.venvs/my-env
7272-create_venv() {
7373- python -m venv "$1"
7474- source "$1/bin/activate"
7575- pip install --upgrade pip
7676-}
7777-7878-# search content with fzf and open return directly with vim
7979-fzfvim() {
8080- vim "$(rg . | fzf)"
8181-}
8282-8383-#asdf: Source asdf in my path to use before brew for Python
8484-. "$(brew --prefix asdf)"/libexec/asdf.sh
-11
zsh/end.shrc
···11-22-# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
33-[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
44-typeset -g POWERLEVEL9K_INSTANT_PROMPT=off
55-66-#autocompletion kubernetes
77-source <(kubectl completion zsh)
88-99-#needs to be on the end:
1010-source /usr/local/share/zsh-syntax-highlighting-active/zsh-syntax-highlighting.zsh
1111-source /usr/local/share/zsh-autosuggestions/zsh-autosuggestions.zsh
-55
zsh/helpers/bin/t
···11-#!/bin/sh
22-#from: https://www.joshmedeski.com/posts/smart-tmux-sessions-with-zoxide-and-fzf/
33-# store pwd in a variable
44-ZOXIDE_RESULT=$(zoxide query $1)
55-66-# if empty exit
77-if [ -z "$ZOXIDE_RESULT" ]; then
88- exit 0
99-fi
1010-1111-# get folder name
1212-FOLDER=$(basename $ZOXIDE_RESULT)
1313-1414-# lookup tmux session name
1515-SESSION=$(tmux list-sessions | grep $FOLDER | awk '{print $1}')
1616-SESSION=${SESSION//:/}
1717-1818-# check if variable is empty
1919-# if not currently in tmux
2020-if [ -z "$TMUX" ]; then
2121- # tmux is not active
2222- echo "is not tmux"
2323- if [ -z "$SESSION" ]; then
2424- # session does not exist
2525- echo "session does not exist"
2626- # jump to directory
2727- cd $ZOXIDE_RESULT
2828- # create session
2929- tmux new-session -s $FOLDER
3030- else
3131- # session exists
3232- echo "session exists"
3333- # attach to session
3434- tmux attach -t $SESSION
3535- fi
3636-else
3737- # tmux is active
3838- echo "is tmux"
3939- if [ -z "$SESSION" ]; then
4040- # session does not exist
4141- echo "session does not exist"
4242- # jump to directory
4343- cd $ZOXIDE_RESULT
4444- # create session
4545- tmux new-session -d -s $FOLDER
4646- # attach to session
4747- tmux switch-client -t $FOLDER
4848- else
4949- # session exists
5050- echo "session exists"
5151- # attach to session
5252- # switch to tmux session
5353- tmux switch-client -t $SESSION
5454- fi
5555-fi
···11-#!/bin/sh
22-#from: https://www.joshmedeski.com/posts/smart-tmux-sessions-with-zoxide-and-fzf/
33-# store pwd in a variable
44-ZOXIDE_RESULT=$(zoxide query $1)
55-66-# if empty exit
77-if [ -z "$ZOXIDE_RESULT" ]; then
88- exit 0
99-fi
1010-1111-# get folder name
1212-FOLDER=$(basename $ZOXIDE_RESULT)
1313-1414-# lookup tmux session name
1515-SESSION=$(tmux list-sessions | grep $FOLDER | awk '{print $1}')
1616-SESSION=${SESSION//:/}
1717-1818-# check if variable is empty
1919-# if not currently in tmux
2020-if [ -z "$TMUX" ]; then
2121- # tmux is not active
2222- echo "is not tmux"
2323- if [ -z "$SESSION" ]; then
2424- # session does not exist
2525- echo "session does not exist"
2626- # jump to directory
2727- cd $ZOXIDE_RESULT
2828- # create session
2929- tmux new-session -s $FOLDER
3030- else
3131- # session exists
3232- echo "session exists"
3333- # attach to session
3434- tmux attach -t $SESSION
3535- fi
3636-else
3737- # tmux is active
3838- echo "is tmux"
3939- if [ -z "$SESSION" ]; then
4040- # session does not exist
4141- echo "session does not exist"
4242- # jump to directory
4343- cd $ZOXIDE_RESULT
4444- # create session
4545- tmux new-session -d -s $FOLDER
4646- # attach to session
4747- tmux switch-client -t $FOLDER
4848- else
4949- # session exists
5050- echo "session exists"
5151- # attach to session
5252- # switch to tmux session
5353- tmux switch-client -t $SESSION
5454- fi
5555-fi
-67
zsh/helpers/tt
···11-#!/bin/sh
22-33-# if not currently in tmux
44-if [ -z "$TMUX" ]; then
55- # tmux is not active
66- echo "is not tmux"
77- # save fzf to variables
88- ZOXIDE_RESULT=$(zoxide query -l | fzf --reverse)
99-1010- # if empty exit
1111- if [ -z "$ZOXIDE_RESULT" ]; then
1212- exit 0
1313- fi
1414-1515- FOLDER=$(basename $ZOXIDE_RESULT)
1616-1717- # lookup tmux session name
1818- SESSION=$(tmux list-sessions | grep $FOLDER | awk '{print $1}')
1919- SESSION=${SESSION//:/}
2020- echo $SESSION
2121-2222- if [ -z "$SESSION" ]; then
2323- # session does not exist
2424- echo "session does not exist"
2525- # jump to directory
2626- cd $ZOXIDE_RESULT
2727- # create session
2828- tmux new-session -s $FOLDER
2929- else
3030- # session exists
3131- echo "session exists"
3232- # attach to session
3333- tmux attach -t $SESSION
3434- fi
3535-else
3636- # tmux is active
3737- echo "is tmux"
3838- # save fzf to variables
3939- ZOXIDE_RESULT=$(zoxide query -l | fzf --reverse)
4040-4141- # if no result exit
4242- if [ -z "$ZOXIDE_RESULT" ]; then
4343- exit 0
4444- fi
4545-4646- FOLDER=$(basename $ZOXIDE_RESULT)
4747- # lookup tmux session name
4848- SESSION=$(tmux list-sessions | grep $FOLDER | awk '{print $1}')
4949- SESSION=${SESSION//:/}
5050-5151- if [ -z "$SESSION" ]; then
5252- # session does not exist
5353- echo "session does not exist"
5454- # jump to directory
5555- cd $ZOXIDE_RESULT
5656- # create session
5757- tmux new-session -d -s $FOLDER
5858- # attach to session
5959- tmux switch-client -t $FOLDER
6060- else
6161- # session exists
6262- echo "session exists"
6363- # attach to session
6464- # switch to tmux session
6565- tmux switch-client -t $SESSION
6666- fi
6767-fi
+27-10
zsh/paths.shrc
zsh/.dotfiles/zsh/paths.shrc
···11# export SHELL=zsh
2233# Add Visual Studio Code (code)
44-export PATH="$PATH:/Applications/Visual Studio Code.app/Contents/Resources/app/bin"
44+# export PATH="$PATH:/Applications/Visual Studio Code.app/Contents/Resources/app/bin"
55+66+77+# Omarchy (Arch Linux) paths - Set complete path
88+export PATH="./bin:$HOME/.local/bin:$HOME/.local/share/omarchy/bin:$PATH"
99+set +h
1010+1111+#add rust to path
1212+export PATH="/home/sspaeti/.cargo/bin:$PATH"
1313+1414+# add path from uv
1515+export PATH="/Users/sspaeti/.local/share/../bin:$PATH"
516617#go path
718export GOPATH=$HOME/.go
···1122export PATH="~/.asdf/installs/poetry/1.2.2/bin:$PATH"
12231324# my shortcuts
1414-export git=~/Documents/git
2525+export git=~/git
1526export de=$git/de
1616-export general=$git/general
1717-export sspaeticom=$git/sspaeti.com
2727+export general=~/git/general
2828+export sspaeticom=~/git/sspaeti.com
1829export venvs=~/.venvs/
1930export sync=~/Simon/Sync
2020-export secondbrain=/Users/sspaeti/Simon/SecondBrain/
2121-export public_secondbrain=$git/sspaeti.com/second-brain-public/content
3131+export secondbrain=~/Simon/SecondBrain/
3232+export public_secondbrain=~/git/sspaeti.com/second-brain-public/content
223323342424-export areas=/Users/sspaeti/Simon/SecondBrain/⚛️\ Areas
2525-export blog=/Users/sspaeti/Documents/git/sspaeti.com/sspaeti-hugo-blog
3535+export areas=~/Simon/SecondBrain/⚛️\ Areas
3636+export blog=~/git/sspaeti.com/sspaeti-hugo-blog
2637export hugo=$blog
2738export docs=~/Documents
2828-export VS_Projects=/Users/sspaeti/Documents/VS_Projects/
3939+export VS_Projects=/Documents/VS_Projects/
2940# export SPARK_HOME=~/Documents/spark/spark-3.0.1-bin-hadoop3.2
3041# export SPARK_HOME=~/Documents/spark/spark-3.4.2-bin-hadoop3.3
3142export SPARK_HOME=~/Documents/spark/spark-3.5.1-bin-hadoop3.3
3243# export SPARK_HOME="/opt/homebrew/opt/apache-spark/libexec/"
3344export PATH="$SPARK_HOME/bin/:$PATH"
3445export PYSPARK_PYTHON=python3
3535-#export DATASETS=/Users/sspaeti/Simon/Sync/Business/13_sspaeti/Real-estate/_DATASETS
4646+#export DATASETS=/Simon/Sync/Business/13_sspaeti/Real-estate/_DATASETS
36473748export DAGSTER_HOME=~/.dagster
3849#set default deployment to local (staging or prod are usually others, check dagster code)
···4354export MYVIMRC=~/.config/nvim/init.lua
4455export VIMRC=$MYVIMRC
4556export RC=$MYVIMRC
5757+export HYPRRC=~/.config/hypr/hyprland.conf
5858+5959+export OMARCHY_SCREENSHOT_DIR=~/Pictures/Satty
6060+4661#vim in browser
4762export XDG_DATA_HOME=$HOME/.local/share/
4863# setting default config path from MacOS (`~/Library/Application Support/`) to Linux (`~/.config/`)
···8398# }
8499# display_greeting
85100101101+# filen-cli
102102+PATH=$PATH:~/.filen-cli/bin
+5-17
zsh/zshrc
zsh/.zshrc
···1717# export PATH=$HOME/bin:/usr/local/bin:$PATH
18181919# Path to your oh-my-zsh installation.
2020-export ZSH="/Users/sspaeti/.oh-my-zsh"
2020+export ZSH="$HOME/.oh-my-zsh"
21212222# load a random theme each time oh-my-zsh is loaded, in which case,
2323# to know which specific one was loaded, run: echo $RANDOM_THEME
···8282# Would you like to use another custom folder than $ZSH/custom?
8383# ZSH_CUSTOM=/path/to/new-custom-folder
84848585-export ZSH_HIGHLIGHT_HIGHLIGHTERS_DIR=/usr/local/share/zsh-syntax-highlighting/highlighters
8686-87858886# Performance Improvements
8987# Add to your .zshrc to disable oh-my-zsh updates
···143141source ~/.dotfiles/zsh/paths.shrc
144142source ~/.dotfiles/zsh/aliases.shrc
145143source ~/.dotfiles/zsh/.secrets
144144+145145+source ~/.dotfiles/zsh/omarchy.shrc
146146147147source ~/.dotfiles/zsh/configs.shrc
148148+source ~/.dotfiles/helpers/scripts/ffmpeg.sh
148149source ~/.dotfiles/zsh/end.shrc
149150150151151151-# OCTAVIA CLI 0.40.22
152152-OCTAVIA_ENV_FILE=/Users/sspaeti/.octavia
153153-export OCTAVIA_ENABLE_TELEMETRY=False
154154-alias octavia="docker run -i --rm -v \$(pwd):/home/octavia-project --network host --env-file \${OCTAVIA_ENV_FILE} --user \$(id -u):\$(id -g) airbyte/octavia-cli:0.40.22"
155155-156156-export PATH="/opt/homebrew/opt/openssl@3/bin:$PATH"
157157-export PATH="/opt/homebrew/opt/llvm/bin:$PATH"
158158-159159-160160-# Load Angular CLI autocompletion.
161161-source <(ng completion script)
162162-163163-# added by Snowflake SnowSQL installer v1.2
164164-export PATH=/Applications/SnowSQL.app/Contents/MacOS:$PATH
152152+. "$HOME/.local/share/../bin/env"