コンテンツにスキップ

Powerlevel10k - High-Performance Zsh Theme

Powerlevel10k is a theme for Zsh that emphasizes speed, flexibility, and out-of-the-box experience. It's a drop-in replacement for Powerlevel9k with dramatically improved performance, featuring instant prompt rendering, extensive customization options, and a user-friendly configuration wizard. Powerlevel10k delivers a beautiful, informative prompt while maintaining exceptional speed through advanced optimization techniques.

Installation

Prerequisites

# Ensure Zsh is installed and set as default shell
zsh --version
echo $SHELL

# Install a Nerd Font (required for icons)
# Download from: https://www.nerdfonts.com/
# Popular choices: MesloLGS NF, Hack Nerd Font, FiraCode Nerd Font

# Verify font installation
echo -e "\ue0b0 \u00b1 \ue0a0 \u27a6 \u2718 \u26a1 \u2699"

Installation Methods

# Clone Powerlevel10k repository
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git $\\\\{ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom\\\\}/themes/powerlevel10k

# Set theme in ~/.zshrc
ZSH_THEME="powerlevel10k/powerlevel10k"

# Reload configuration
source ~/.zshrc

# Run configuration wizard
p10k configure

Manual Installation (Zsh without Oh My Zsh)

# Clone repository
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k

# Add to ~/.zshrc
echo 'source ~/powerlevel10k/powerlevel10k.zsh-theme' >>~/.zshrc

# Reload and configure
source ~/.zshrc
p10k configure

Package Manager Installation

# Homebrew (macOS)
brew install romkatv/powerlevel10k/powerlevel10k
echo "source $(brew --prefix)/opt/powerlevel10k/powerlevel10k.zsh-theme" >>~/.zshrc

# Arch Linux
yay -S zsh-theme-powerlevel10k-git
echo 'source /usr/share/zsh-theme-powerlevel10k/powerlevel10k.zsh-theme' >>~/.zshrc

# Gentoo
emerge app-shells/powerlevel10k
echo 'source /usr/share/zsh/site-functions/powerlevel10k.zsh-theme' >>~/.zshrc

Zinit Plugin Manager

# Add to ~/.zshrc
zinit ice depth=1; zinit light romkatv/powerlevel10k

# Reload configuration
source ~/.zshrc
p10k configure

Font Configuration

# Download and install MesloLGS NF (recommended)
# Manual download from GitHub releases
wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Regular.ttf
wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold.ttf
wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Italic.ttf
wget https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold%20Italic.ttf

# Install fonts (Linux)
mkdir -p ~/.local/share/fonts
cp *.ttf ~/.local/share/fonts/
fc-cache -fv

# Configure terminal to use MesloLGS NF font
# Terminal-specific instructions vary

Configuration Wizard

Initial Setup

# Run configuration wizard
p10k configure

# Reconfigure anytime
p10k configure

# Configuration wizard options:
# 1. Diamond symbols display test
# 2. Lock symbol display test
# 3. Debian logo display test
# 4. Prompt style selection
# 5. Character set selection
# 6. Show current time
# 7. Prompt separators
# 8. Prompt heads
# 9. Prompt tails
# 10. Prompt height
# 11. Prompt connection
# 12. Prompt frame
# 13. Connection color
# 14. Prompt spacing
# 15. Icons
# 16. Prompt flow
# 17. Enable transient prompt
# 18. Instant prompt mode

Configuration File

# Configuration file location
~/.p10k.zsh

# Backup configuration
cp ~/.p10k.zsh ~/.p10k.zsh.backup

# Reset to defaults
rm ~/.p10k.zsh
p10k configure

# Apply configuration
source ~/.p10k.zsh

Core Features and Segments

Instant Prompt

# Enable instant prompt (default)
# Add to top of ~/.zshrc (before Oh My Zsh source)
if [[ -r "$\\\\{XDG_CACHE_HOME:-$HOME/.cache\\\\}/p10k-instant-prompt-$\\\\{(%):-%n\\\\}.zsh" ]]; then
  source "$\\\\{XDG_CACHE_HOME:-$HOME/.cache\\\\}/p10k-instant-prompt-$\\\\{(%):-%n\\\\}.zsh"
fi

# Disable instant prompt
typeset -g POWERLEVEL9K_INSTANT_PROMPT=off

# Instant prompt modes
typeset -g POWERLEVEL9K_INSTANT_PROMPT=verbose  # Show warnings
typeset -g POWERLEVEL9K_INSTANT_PROMPT=quiet    # Hide warnings
typeset -g POWERLEVEL9K_INSTANT_PROMPT=off      # Disable

Prompt Segments Configuration

# Configure left prompt segments
typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(
  os_icon                 # OS identifier
  dir                     # Current directory
  vcs                     # Git status
  prompt_char             # Prompt character
)

# Configure right prompt segments
typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(
  status                  # Exit code
  command_execution_time  # Command duration
  background_jobs         # Background jobs
  direnv                  # direnv status
  asdf                    # asdf version manager
  virtualenv              # Python virtual environment
  anaconda                # Anaconda environment
  pyenv                   # pyenv Python version
  goenv                   # goenv Go version
  nodenv                  # nodenv Node.js version
  nvm                     # nvm Node.js version
  nodeenv                 # nodeenv Node.js environment
  rbenv                   # rbenv Ruby version
  rvm                     # rvm Ruby version
  fvm                     # fvm Flutter version
  luaenv                  # luaenv Lua version
  jenv                    # jenv Java version
  plenv                   # plenv Perl version
  phpenv                  # phpenv PHP version
  scalaenv                # scalaenv Scala version
  haskell_stack           # Haskell Stack
  kubecontext             # Kubernetes context
  terraform               # Terraform workspace
  aws                     # AWS profile
  aws_eb_env              # AWS Elastic Beanstalk
  azure                   # Azure account
  gcloud                  # Google Cloud config
  google_app_cred         # Google Application Credentials
  context                 # User@hostname
  nordvpn                 # NordVPN status
  ranger                  # Ranger file manager
  nnn                     # nnn file manager
  vim_shell               # Vim shell indicator
  midnight_commander      # Midnight Commander
  nix_shell               # Nix shell
  vi_mode                 # Vi mode indicator
  todo                    # Todo.txt
  timewarrior             # Timewarrior
  taskwarrior             # Taskwarrior
  time                    # Current time
  ip                      # IP address
  public_ip               # Public IP address
  proxy                   # Proxy indicator
  battery                 # Battery level
  wifi                    # WiFi status
  vpn_ip                  # VPN IP address
  load                    # System load
  disk_usage              # Disk usage
  ram                     # RAM usage
  swap                    # Swap usage
  cpu_arch                # CPU architecture
  newline                 # Line break
)

Directory Segment

# Directory segment configuration
typeset -g POWERLEVEL9K_DIR_BACKGROUND=4
typeset -g POWERLEVEL9K_DIR_FOREGROUND=254
typeset -g POWERLEVEL9K_DIR_SHORTENED_FOREGROUND=250
typeset -g POWERLEVEL9K_DIR_ANCHOR_FOREGROUND=255
typeset -g POWERLEVEL9K_DIR_ANCHOR_BOLD=true

# Directory truncation
typeset -g POWERLEVEL9K_SHORTEN_STRATEGY=truncate_to_unique
typeset -g POWERLEVEL9K_SHORTEN_DELIMITER=
typeset -g POWERLEVEL9K_DIR_MAX_LENGTH=80
typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS=40
typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT=50

# Directory substitutions
typeset -g POWERLEVEL9K_DIR_PACKAGE_FILES=(package.json composer.json)
typeset -g POWERLEVEL9K_DIR_SHOW_WRITABLE=v3

# Custom directory colors
typeset -g POWERLEVEL9K_DIR_CLASSES=(
  '~/work(|/*)'  WORK
  '~/tmp(|/*)'   TEMP
  '*'            DEFAULT
)
typeset -g POWERLEVEL9K_DIR_WORK_BACKGROUND=4
typeset -g POWERLEVEL9K_DIR_TEMP_BACKGROUND=1

Git (VCS) Segment

# Git segment configuration
typeset -g POWERLEVEL9K_VCS_CLEAN_BACKGROUND=2
typeset -g POWERLEVEL9K_VCS_UNTRACKED_BACKGROUND=3
typeset -g POWERLEVEL9K_VCS_MODIFIED_BACKGROUND=1

# Git status icons
typeset -g POWERLEVEL9K_VCS_UNTRACKED_ICON='?'
typeset -g POWERLEVEL9K_VCS_UNSTAGED_ICON='!'
typeset -g POWERLEVEL9K_VCS_STAGED_ICON='+'
typeset -g POWERLEVEL9K_VCS_STASH_ICON='*'
typeset -g POWERLEVEL9K_VCS_INCOMING_CHANGES_ICON='⇣'
typeset -g POWERLEVEL9K_VCS_OUTGOING_CHANGES_ICON='⇡'
typeset -g POWERLEVEL9K_VCS_COMMIT_ICON=''

# Git branch icon
typeset -g POWERLEVEL9K_VCS_BRANCH_ICON='\uF126 '
typeset -g POWERLEVEL9K_VCS_REMOTE_BRANCH_ICON=' '
typeset -g POWERLEVEL9K_VCS_GIT_ICON=''
typeset -g POWERLEVEL9K_VCS_GIT_GITHUB_ICON=''
typeset -g POWERLEVEL9K_VCS_GIT_BITBUCKET_ICON=''
typeset -g POWERLEVEL9K_VCS_GIT_GITLAB_ICON=''

# Advanced Git configuration
typeset -g POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY=-1
typeset -g POWERLEVEL9K_VCS_DISABLED_WORKDIR_PATTERN='~'
typeset -g POWERLEVEL9K_VCS_DISABLE_GITSTATUS_FORMATTING=true
typeset -g POWERLEVEL9K_VCS_CONTENT_EXPANSION='$\\\\{P9K_CONTENT\\\\}$\\\\{$\\\\{P9K_CONTENT:#*[!0-9]*\\\\}:+ M\\\\}'

Status Segment

# Status segment configuration
typeset -g POWERLEVEL9K_STATUS_EXTENDED_STATES=true
typeset -g POWERLEVEL9K_STATUS_OK=false
typeset -g POWERLEVEL9K_STATUS_OK_FOREGROUND=2
typeset -g POWERLEVEL9K_STATUS_OK_BACKGROUND=0
typeset -g POWERLEVEL9K_STATUS_ERROR_FOREGROUND=1
typeset -g POWERLEVEL9K_STATUS_ERROR_BACKGROUND=0
typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_FOREGROUND=1
typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_BACKGROUND=0
typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_FOREGROUND=1
typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_BACKGROUND=0

Command Execution Time

# Command execution time configuration
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=3
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION=0
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND=0
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_BACKGROUND=3
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FORMAT='d h m s'

Background Jobs

# Background jobs configuration
typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VERBOSE=false
typeset -g POWERLEVEL9K_BACKGROUND_JOBS_FOREGROUND=6
typeset -g POWERLEVEL9K_BACKGROUND_JOBS_BACKGROUND=0

Language and Environment Integration

Python Environment

# Python virtual environment
typeset -g POWERLEVEL9K_VIRTUALENV_FOREGROUND=0
typeset -g POWERLEVEL9K_VIRTUALENV_BACKGROUND=4
typeset -g POWERLEVEL9K_VIRTUALENV_GENERIC_NAMES=(virtualenv venv .venv)
typeset -g POWERLEVEL9K_VIRTUALENV_LEFT_DELIMITER=
typeset -g POWERLEVEL9K_VIRTUALENV_RIGHT_DELIMITER=

# Anaconda environment
typeset -g POWERLEVEL9K_ANACONDA_FOREGROUND=0
typeset -g POWERLEVEL9K_ANACONDA_BACKGROUND=4
typeset -g POWERLEVEL9K_ANACONDA_LEFT_DELIMITER=
typeset -g POWERLEVEL9K_ANACONDA_RIGHT_DELIMITER=

# Pyenv Python version
typeset -g POWERLEVEL9K_PYENV_FOREGROUND=0
typeset -g POWERLEVEL9K_PYENV_BACKGROUND=4
typeset -g POWERLEVEL9K_PYENV_PROMPT_ALWAYS_SHOW=false
typeset -g POWERLEVEL9K_PYENV_SOURCES=(shell local global)

Node.js Environment

# Node.js version (nvm)
typeset -g POWERLEVEL9K_NVM_FOREGROUND=0
typeset -g POWERLEVEL9K_NVM_BACKGROUND=5
typeset -g POWERLEVEL9K_NVM_PROMPT_ALWAYS_SHOW=false

# Node.js version (nodenv)
typeset -g POWERLEVEL9K_NODENV_FOREGROUND=0
typeset -g POWERLEVEL9K_NODENV_BACKGROUND=2
typeset -g POWERLEVEL9K_NODENV_PROMPT_ALWAYS_SHOW=false
typeset -g POWERLEVEL9K_NODENV_SOURCES=(shell local global)

# Node.js environment (nodeenv)
typeset -g POWERLEVEL9K_NODEENV_FOREGROUND=2
typeset -g POWERLEVEL9K_NODEENV_BACKGROUND=0
typeset -g POWERLEVEL9K_NODEENV_LEFT_DELIMITER=
typeset -g POWERLEVEL9K_NODEENV_RIGHT_DELIMITER=

Ruby Environment

# Ruby version (rbenv)
typeset -g POWERLEVEL9K_RBENV_FOREGROUND=0
typeset -g POWERLEVEL9K_RBENV_BACKGROUND=1
typeset -g POWERLEVEL9K_RBENV_PROMPT_ALWAYS_SHOW=false
typeset -g POWERLEVEL9K_RBENV_SOURCES=(shell local global)

# Ruby version (rvm)
typeset -g POWERLEVEL9K_RVM_FOREGROUND=0
typeset -g POWERLEVEL9K_RVM_BACKGROUND=1
typeset -g POWERLEVEL9K_RVM_SHOW_GEMSET=false
typeset -g POWERLEVEL9K_RVM_SHOW_PREFIX=false

Go Environment

# Go version (goenv)
typeset -g POWERLEVEL9K_GOENV_FOREGROUND=0
typeset -g POWERLEVEL9K_GOENV_BACKGROUND=4
typeset -g POWERLEVEL9K_GOENV_PROMPT_ALWAYS_SHOW=false
typeset -g POWERLEVEL9K_GOENV_SOURCES=(shell local global)

Java Environment

# Java version (jenv)
typeset -g POWERLEVEL9K_JENV_FOREGROUND=1
typeset -g POWERLEVEL9K_JENV_BACKGROUND=7
typeset -g POWERLEVEL9K_JENV_PROMPT_ALWAYS_SHOW=false
typeset -g POWERLEVEL9K_JENV_SOURCES=(shell local global)

Cloud and Container Integration

Kubernetes

# Kubernetes context
typeset -g POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND='kubectl|helm|kubens|kubectx|oc|istioctl|kogito|k9s|helmfile|flux|fluxctl|stern'
typeset -g POWERLEVEL9K_KUBECONTEXT_FOREGROUND=0
typeset -g POWERLEVEL9K_KUBECONTEXT_BACKGROUND=5
typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_FOREGROUND=0
typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_BACKGROUND=5
typeset -g POWERLEVEL9K_KUBECONTEXT_SUFFIX=
typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION=
typeset -g POWERLEVEL9K_KUBECONTEXT_CONTENT_EXPANSION='$\\\\{P9K_KUBECONTEXT_CLOUD_CLUSTER:-$\\\\{P9K_KUBECONTEXT_NAME\\\\}\\\\}'

# Kubernetes context classes
typeset -g POWERLEVEL9K_KUBECONTEXT_CLASSES=(
  '*prod*'    PROD
  '*test*'    TEST
  '*'         DEFAULT
)
typeset -g POWERLEVEL9K_KUBECONTEXT_PROD_FOREGROUND=0
typeset -g POWERLEVEL9K_KUBECONTEXT_PROD_BACKGROUND=1
typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_FOREGROUND=0
typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_BACKGROUND=3

AWS

# AWS profile
typeset -g POWERLEVEL9K_AWS_SHOW_ON_COMMAND='aws|awless|terraform|pulumi|terragrunt'
typeset -g POWERLEVEL9K_AWS_FOREGROUND=232
typeset -g POWERLEVEL9K_AWS_BACKGROUND=39
typeset -g POWERLEVEL9K_AWS_CONTENT_EXPANSION='$\\\\{P9K_AWS_PROFILE//\%/%%\\\\}$\\\\{P9K_AWS_REGION:+ $\\\\{P9K_AWS_REGION//\%/%%\\\\}\\\\}'

# AWS profile classes
typeset -g POWERLEVEL9K_AWS_CLASSES=(
  '*prod*'    PROD
  '*test*'    TEST
  '*'         DEFAULT
)
typeset -g POWERLEVEL9K_AWS_PROD_FOREGROUND=232
typeset -g POWERLEVEL9K_AWS_PROD_BACKGROUND=1

Google Cloud

# Google Cloud configuration
typeset -g POWERLEVEL9K_GCLOUD_SHOW_ON_COMMAND='gcloud|gcs|gsutil'
typeset -g POWERLEVEL9K_GCLOUD_FOREGROUND=32
typeset -g POWERLEVEL9K_GCLOUD_BACKGROUND=4
typeset -g POWERLEVEL9K_GCLOUD_CONTENT_EXPANSION='$\\\\{P9K_GCLOUD_PROJECT_ID//\%/%%\\\\}$\\\\{P9K_GCLOUD_PROJECT_NAME:+ ($\\\\{P9K_GCLOUD_PROJECT_NAME//\%/%%\\\\})\\\\}'

Azure

# Azure account
typeset -g POWERLEVEL9K_AZURE_SHOW_ON_COMMAND='az|terraform|pulumi|terragrunt'
typeset -g POWERLEVEL9K_AZURE_FOREGROUND=232
typeset -g POWERLEVEL9K_AZURE_BACKGROUND=4

Terraform

# Terraform workspace
typeset -g POWERLEVEL9K_TERRAFORM_SHOW_ON_COMMAND='terraform|tf|terragrunt|tg'
typeset -g POWERLEVEL9K_TERRAFORM_FOREGROUND=0
typeset -g POWERLEVEL9K_TERRAFORM_BACKGROUND=5

# Terraform workspace classes
typeset -g POWERLEVEL9K_TERRAFORM_CLASSES=(
  '*prod*'    PROD
  '*test*'    TEST
  '*'         DEFAULT
)
typeset -g POWERLEVEL9K_TERRAFORM_PROD_FOREGROUND=0
typeset -g POWERLEVEL9K_TERRAFORM_PROD_BACKGROUND=1

System Information Segments

Time

# Time segment
typeset -g POWERLEVEL9K_TIME_FOREGROUND=0
typeset -g POWERLEVEL9K_TIME_BACKGROUND=7
typeset -g POWERLEVEL9K_TIME_FORMAT='%D\\\\{%H:%M:%S\\\\}'
typeset -g POWERLEVEL9K_TIME_UPDATE_ON_COMMAND=false

Battery

# Battery segment
typeset -g POWERLEVEL9K_BATTERY_LOW_THRESHOLD=20
typeset -g POWERLEVEL9K_BATTERY_LOW_FOREGROUND=1
typeset -g POWERLEVEL9K_BATTERY_LOW_BACKGROUND=0
typeset -g POWERLEVEL9K_BATTERY_CHARGING_FOREGROUND=2
typeset -g POWERLEVEL9K_BATTERY_CHARGING_BACKGROUND=0
typeset -g POWERLEVEL9K_BATTERY_CHARGED_FOREGROUND=2
typeset -g POWERLEVEL9K_BATTERY_CHARGED_BACKGROUND=0
typeset -g POWERLEVEL9K_BATTERY_DISCONNECTED_FOREGROUND=3
typeset -g POWERLEVEL9K_BATTERY_DISCONNECTED_BACKGROUND=0

# Battery stages
typeset -g POWERLEVEL9K_BATTERY_STAGES=(


### System Load
```bash
# System load
typeset -g POWERLEVEL9K_LOAD_WHICH=5
typeset -g POWERLEVEL9K_LOAD_NORMAL_FOREGROUND=0
typeset -g POWERLEVEL9K_LOAD_NORMAL_BACKGROUND=2
typeset -g POWERLEVEL9K_LOAD_WARNING_FOREGROUND=0
typeset -g POWERLEVEL9K_LOAD_WARNING_BACKGROUND=3
typeset -g POWERLEVEL9K_LOAD_CRITICAL_FOREGROUND=0
typeset -g POWERLEVEL9K_LOAD_CRITICAL_BACKGROUND=1

Disk Usage

# Disk usage
typeset -g POWERLEVEL9K_DISK_USAGE_NORMAL_FOREGROUND=0
typeset -g POWERLEVEL9K_DISK_USAGE_NORMAL_BACKGROUND=2
typeset -g POWERLEVEL9K_DISK_USAGE_WARNING_FOREGROUND=0
typeset -g POWERLEVEL9K_DISK_USAGE_WARNING_BACKGROUND=3
typeset -g POWERLEVEL9K_DISK_USAGE_CRITICAL_FOREGROUND=0
typeset -g POWERLEVEL9K_DISK_USAGE_CRITICAL_BACKGROUND=1
typeset -g POWERLEVEL9K_DISK_USAGE_WARNING_LEVEL=90
typeset -g POWERLEVEL9K_DISK_USAGE_CRITICAL_LEVEL=95
typeset -g POWERLEVEL9K_DISK_USAGE_ONLY_WARNING=false

RAM Usage

# RAM usage
typeset -g POWERLEVEL9K_RAM_FOREGROUND=0
typeset -g POWERLEVEL9K_RAM_BACKGROUND=3

WiFi

# WiFi status
typeset -g POWERLEVEL9K_WIFI_FOREGROUND=0
typeset -g POWERLEVEL9K_WIFI_BACKGROUND=4

Advanced Customization

Custom Segments

# Define custom segment
function prompt_my_custom_segment() \{
  local content="Custom"
  p10k segment -f 208 -b 0 -i '⚡' -t "$content"
\}

# Add to prompt elements
typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(
  # ... other elements
  my_custom_segment

# Custom segment with conditional display
function prompt_docker_status() \{
  if command -v docker >/dev/null 2>&1 && docker info >/dev/null 2>&1; then
    local containers=$(docker ps -q|wc -l)
    if [[ $containers -gt 0 ]]; then
      p10k segment -f 4 -b 0 -i '🐳' -t "$containers"
    fi
  fi
\}

# Git repository specific customization
function prompt_git_custom() \{
  if [[ -n $P9K_VCS_BRANCH ]]; then
    local repo_name=$\{$\{P9K_VCS_ROOT:t\}//\%/%%\}
    case $repo_name in
      work-*)
        p10k segment -f 0 -b 4 -i '💼' -t "$repo_name"
        ;;
      personal-*)
        p10k segment -f 0 -b 2 -i '🏠' -t "$repo_name"
        ;;
    esac
  fi
\}

Conditional Segments

# Show segment only in specific directories
typeset -g POWERLEVEL9K_TERRAFORM_SHOW_ON_COMMAND='terraform|tf'
typeset -g POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND='kubectl|helm'

# Custom conditional logic
function prompt_conditional_segment() \{
  if [[ $PWD == */work/* ]]; then
    p10k segment -f 0 -b 4 -i '💼' -t "WORK"
  elif [[ $PWD == */personal/* ]]; then
    p10k segment -f 0 -b 2 -i '🏠' -t "PERSONAL"
  fi
\}

# Environment-based segments
function prompt_env_indicator() \{
  if [[ -n $DEVELOPMENT ]]; then
    p10k segment -f 0 -b 3 -i '🔧' -t "DEV"
  elif [[ -n $PRODUCTION ]]; then
    p10k segment -f 0 -b 1 -i '⚠️' -t "PROD"
  fi
\}

Transient Prompt

# Enable transient prompt
typeset -g POWERLEVEL9K_TRANSIENT_PROMPT=always

# Transient prompt configuration
typeset -g POWERLEVEL9K_TRANSIENT_PROMPT=same-dir  # Only in same directory
typeset -g POWERLEVEL9K_TRANSIENT_PROMPT=off       # Disable

# Custom transient prompt
function p10k-on-post-prompt() \{
  p10k display '*/right'=hide
\}

Multi-line Prompt

# Enable multi-line prompt
typeset -g POWERLEVEL9K_PROMPT_ON_NEWLINE=true
typeset -g POWERLEVEL9K_PROMPT_ADD_NEWLINE=true

# Multi-line prompt character
typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX=
typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_PREFIX=
typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX=

# Connection line
typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_SUFFIX='%242F╭─'
typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_SUFFIX='%242F├─'
typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_SUFFIX='%242F╰─'

Performance Optimization

Gitstatus Configuration

# Gitstatus performance settings
typeset -g POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY=-1
typeset -g POWERLEVEL9K_VCS_STAGED_MAX_NUM=1
typeset -g POWERLEVEL9K_VCS_UNSTAGED_MAX_NUM=1
typeset -g POWERLEVEL9K_VCS_UNTRACKED_MAX_NUM=1
typeset -g POWERLEVEL9K_VCS_CONFLICTED_MAX_NUM=1
typeset -g POWERLEVEL9K_VCS_COMMITS_AHEAD_MAX_NUM=1
typeset -g POWERLEVEL9K_VCS_COMMITS_BEHIND_MAX_NUM=1

Segment Optimization

# Disable heavy segments
typeset -g POWERLEVEL9K_PUBLIC_IP_DISABLED=true
typeset -g POWERLEVEL9K_LOAD_DISABLED=true
typeset -g POWERLEVEL9K_DISK_USAGE_DISABLED=true

# Optimize command detection
typeset -g POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND='kubectl|helm'
typeset -g POWERLEVEL9K_TERRAFORM_SHOW_ON_COMMAND='terraform|tf'
typeset -g POWERLEVEL9K_AWS_SHOW_ON_COMMAND='aws|terraform'

# Cache expensive operations
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=3

Instant Prompt Optimization

# Optimize instant prompt
typeset -g POWERLEVEL9K_INSTANT_PROMPT=verbose

# Disable problematic segments for instant prompt
typeset -g POWERLEVEL9K_PUBLIC_IP_DISABLED=true
typeset -g POWERLEVEL9K_LOAD_DISABLED=true

# Configure instant prompt cache
export P9K_INSTANT_PROMPT_CACHE_TTL=3600  # 1 hour

Troubleshooting

Common Issues

# Font rendering issues
# Verify Nerd Font installation
echo -e "\ue0b0 \u00b1 \ue0a0 \u27a6 \u2718 \u26a1 \u2699"

# Check terminal font configuration
# Ensure terminal uses Nerd Font

# Performance issues
# Profile Zsh startup
time zsh -i -c exit

# Check gitstatus performance
gitstatus_query -d . -t 1000

# Debug instant prompt
typeset -g POWERLEVEL9K_INSTANT_PROMPT=verbose

# Reset configuration
rm ~/.p10k.zsh
p10k configure

Debug Mode

# Enable debug mode
typeset -g POWERLEVEL9K_DEBUG=1

# Check segment rendering
p10k segment -f 1 -b 2 -i '🔧' -t "test"

# Verify configuration
p10k configure

# Check gitstatus
gitstatus_query -d .

Configuration Validation

# Validate configuration file
source ~/.p10k.zsh

# Check for syntax errors
zsh -n ~/.p10k.zsh

# Test specific segments
p10k display '*'=show
p10k display 'dir'=hide
p10k display 'vcs'=show

Integration Examples

IDE Integration

# VS Code terminal integration
# Configure terminal.integrated.fontFamily: "MesloLGS NF"

# IntelliJ IDEA terminal
# Configure terminal font to MesloLGS NF

# Terminal multiplexer integration
# Tmux: ensure TERM is set correctly
# Screen: configure for 256 colors

CI/CD Integration

# Disable interactive features in CI
if [[ -n $CI ]]; then
  typeset -g POWERLEVEL9K_INSTANT_PROMPT=off
  typeset -g POWERLEVEL9K_TRANSIENT_PROMPT=off
fi

# Minimal CI configuration
if [[ -n $CI ]]; then
  typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(dir vcs)
  typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=()
fi

Docker Integration

# Docker container detection
function prompt_docker_container() \{
  if [[ -f /.dockerenv ]]; then
    p10k segment -f 0 -b 4 -i '🐳' -t "DOCKER"
  fi
\}

# Add to prompt elements
typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(
  docker_container
  # ... other elements

Best Practices

Configuration Management

# Version control configuration
git add ~/.p10k.zsh
git commit -m "Add Powerlevel10k configuration"

# Environment-specific configurations
if [[ $HOST == "work-laptop" ]]; then
  # Work-specific settings
  typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(os_icon dir vcs work_indicator prompt_char)
elif [[ $HOST == "personal-desktop" ]]; then
  # Personal settings
  typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(os_icon dir vcs personal_indicator prompt_char)
fi

# Modular configuration
source ~/.config/p10k/segments.zsh
source ~/.config/p10k/colors.zsh
source ~/.config/p10k/icons.zsh

Performance Guidelines

# Keep essential segments only
typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(
  dir
  vcs
  prompt_char

# Use conditional display
typeset -g POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND='kubectl|helm'

# Optimize Git performance
typeset -g POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY=4096

# Cache expensive operations
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=3

Security Considerations

# Avoid displaying sensitive information
typeset -g POWERLEVEL9K_CONTEXT_DEFAULT_FOREGROUND=8  # Dim username
typeset -g POWERLEVEL9K_DIR_SHOW_WRITABLE=false       # Hide write permissions

# Secure Git information
typeset -g POWERLEVEL9K_VCS_HIDE_TAGS=true           # Hide Git tags
typeset -g POWERLEVEL9K_VCS_INTERNAL_HASH_LENGTH=8   # Limit hash display

# Environment-aware configuration
if [[ -n $SSH_CONNECTION ]]; then
  # Show more context when SSH'd
  typeset -g POWERLEVEL9K_CONTEXT_DEFAULT_FOREGROUND=3
fi

Powerlevel10k represents the pinnacle of Zsh theme development, combining exceptional performance with extensive customization capabilities. Its instant prompt feature, comprehensive segment system, and intelligent optimization make it the ideal choice for developers and power users who demand both functionality and speed. Whether you prefer a minimal setup or a feature-rich display with comprehensive system information, Powerlevel10k delivers unmatched performance while providing all the information you need at a glance.

▁\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0'

System Load

CODE_BLOCK_27

Disk Usage

CODE_BLOCK_28

RAM Usage

CODE_BLOCK_29

WiFi

CODE_BLOCK_30

Advanced Customization

Custom Segments

CODE_BLOCK_31

Conditional Segments

CODE_BLOCK_32

Transient Prompt

CODE_BLOCK_33

Multi-line Prompt

CODE_BLOCK_34

Performance Optimization

Gitstatus Configuration

CODE_BLOCK_35

Segment Optimization

CODE_BLOCK_36

Instant Prompt Optimization

CODE_BLOCK_37

Troubleshooting

Common Issues

CODE_BLOCK_38

Debug Mode

CODE_BLOCK_39

Configuration Validation

CODE_BLOCK_40

Integration Examples

IDE Integration

CODE_BLOCK_41

CI/CD Integration

CODE_BLOCK_42

Docker Integration

CODE_BLOCK_43

Best Practices

Configuration Management

CODE_BLOCK_44

Performance Guidelines

CODE_BLOCK_45

Security Considerations

CODE_BLOCK_46

Powerlevel10k represents the pinnacle of Zsh theme development, combining exceptional performance with extensive customization capabilities. Its instant prompt feature, comprehensive segment system, and intelligent optimization make it the ideal choice for developers and power users who demand both functionality and speed. Whether you prefer a minimal setup or a feature-rich display with comprehensive system information, Powerlevel10k delivers unmatched performance while providing all the information you need at a glance.

▂\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0'

System Load

CODE_BLOCK_27

Disk Usage

CODE_BLOCK_28

RAM Usage

CODE_BLOCK_29

WiFi

CODE_BLOCK_30

Advanced Customization

Custom Segments

CODE_BLOCK_31

Conditional Segments

CODE_BLOCK_32

Transient Prompt

CODE_BLOCK_33

Multi-line Prompt

CODE_BLOCK_34

Performance Optimization

Gitstatus Configuration

CODE_BLOCK_35

Segment Optimization

CODE_BLOCK_36

Instant Prompt Optimization

CODE_BLOCK_37

Troubleshooting

Common Issues

CODE_BLOCK_38

Debug Mode

CODE_BLOCK_39

Configuration Validation

CODE_BLOCK_40

Integration Examples

IDE Integration

CODE_BLOCK_41

CI/CD Integration

CODE_BLOCK_42

Docker Integration

CODE_BLOCK_43

Best Practices

Configuration Management

CODE_BLOCK_44

Performance Guidelines

CODE_BLOCK_45

Security Considerations

CODE_BLOCK_46

Powerlevel10k represents the pinnacle of Zsh theme development, combining exceptional performance with extensive customization capabilities. Its instant prompt feature, comprehensive segment system, and intelligent optimization make it the ideal choice for developers and power users who demand both functionality and speed. Whether you prefer a minimal setup or a feature-rich display with comprehensive system information, Powerlevel10k delivers unmatched performance while providing all the information you need at a glance.

▃\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0'

System Load

CODE_BLOCK_27

Disk Usage

CODE_BLOCK_28

RAM Usage

CODE_BLOCK_29

WiFi

CODE_BLOCK_30

Advanced Customization

Custom Segments

CODE_BLOCK_31

Conditional Segments

CODE_BLOCK_32

Transient Prompt

CODE_BLOCK_33

Multi-line Prompt

CODE_BLOCK_34

Performance Optimization

Gitstatus Configuration

CODE_BLOCK_35

Segment Optimization

CODE_BLOCK_36

Instant Prompt Optimization

CODE_BLOCK_37

Troubleshooting

Common Issues

CODE_BLOCK_38

Debug Mode

CODE_BLOCK_39

Configuration Validation

CODE_BLOCK_40

Integration Examples

IDE Integration

CODE_BLOCK_41

CI/CD Integration

CODE_BLOCK_42

Docker Integration

CODE_BLOCK_43

Best Practices

Configuration Management

CODE_BLOCK_44

Performance Guidelines

CODE_BLOCK_45

Security Considerations

CODE_BLOCK_46

Powerlevel10k represents the pinnacle of Zsh theme development, combining exceptional performance with extensive customization capabilities. Its instant prompt feature, comprehensive segment system, and intelligent optimization make it the ideal choice for developers and power users who demand both functionality and speed. Whether you prefer a minimal setup or a feature-rich display with comprehensive system information, Powerlevel10k delivers unmatched performance while providing all the information you need at a glance.

▄\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0'

System Load

CODE_BLOCK_27

Disk Usage

CODE_BLOCK_28

RAM Usage

CODE_BLOCK_29

WiFi

CODE_BLOCK_30

Advanced Customization

Custom Segments

CODE_BLOCK_31

Conditional Segments

CODE_BLOCK_32

Transient Prompt

CODE_BLOCK_33

Multi-line Prompt

CODE_BLOCK_34

Performance Optimization

Gitstatus Configuration

CODE_BLOCK_35

Segment Optimization

CODE_BLOCK_36

Instant Prompt Optimization

CODE_BLOCK_37

Troubleshooting

Common Issues

CODE_BLOCK_38

Debug Mode

CODE_BLOCK_39

Configuration Validation

CODE_BLOCK_40

Integration Examples

IDE Integration

CODE_BLOCK_41

CI/CD Integration

CODE_BLOCK_42

Docker Integration

CODE_BLOCK_43

Best Practices

Configuration Management

CODE_BLOCK_44

Performance Guidelines

CODE_BLOCK_45

Security Considerations

CODE_BLOCK_46

Powerlevel10k represents the pinnacle of Zsh theme development, combining exceptional performance with extensive customization capabilities. Its instant prompt feature, comprehensive segment system, and intelligent optimization make it the ideal choice for developers and power users who demand both functionality and speed. Whether you prefer a minimal setup or a feature-rich display with comprehensive system information, Powerlevel10k delivers unmatched performance while providing all the information you need at a glance.

▅\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0'

System Load

CODE_BLOCK_27

Disk Usage

CODE_BLOCK_28

RAM Usage

CODE_BLOCK_29

WiFi

CODE_BLOCK_30

Advanced Customization

Custom Segments

CODE_BLOCK_31

Conditional Segments

CODE_BLOCK_32

Transient Prompt

CODE_BLOCK_33

Multi-line Prompt

CODE_BLOCK_34

Performance Optimization

Gitstatus Configuration

CODE_BLOCK_35

Segment Optimization

CODE_BLOCK_36

Instant Prompt Optimization

CODE_BLOCK_37

Troubleshooting

Common Issues

CODE_BLOCK_38

Debug Mode

CODE_BLOCK_39

Configuration Validation

CODE_BLOCK_40

Integration Examples

IDE Integration

CODE_BLOCK_41

CI/CD Integration

CODE_BLOCK_42

Docker Integration

CODE_BLOCK_43

Best Practices

Configuration Management

CODE_BLOCK_44

Performance Guidelines

CODE_BLOCK_45

Security Considerations

CODE_BLOCK_46

Powerlevel10k represents the pinnacle of Zsh theme development, combining exceptional performance with extensive customization capabilities. Its instant prompt feature, comprehensive segment system, and intelligent optimization make it the ideal choice for developers and power users who demand both functionality and speed. Whether you prefer a minimal setup or a feature-rich display with comprehensive system information, Powerlevel10k delivers unmatched performance while providing all the information you need at a glance.

▆\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0'

System Load

CODE_BLOCK_27

Disk Usage

CODE_BLOCK_28

RAM Usage

CODE_BLOCK_29

WiFi

CODE_BLOCK_30

Advanced Customization

Custom Segments

CODE_BLOCK_31

Conditional Segments

CODE_BLOCK_32

Transient Prompt

CODE_BLOCK_33

Multi-line Prompt

CODE_BLOCK_34

Performance Optimization

Gitstatus Configuration

CODE_BLOCK_35

Segment Optimization

CODE_BLOCK_36

Instant Prompt Optimization

CODE_BLOCK_37

Troubleshooting

Common Issues

CODE_BLOCK_38

Debug Mode

CODE_BLOCK_39

Configuration Validation

CODE_BLOCK_40

Integration Examples

IDE Integration

CODE_BLOCK_41

CI/CD Integration

CODE_BLOCK_42

Docker Integration

CODE_BLOCK_43

Best Practices

Configuration Management

CODE_BLOCK_44

Performance Guidelines

CODE_BLOCK_45

Security Considerations

CODE_BLOCK_46

Powerlevel10k represents the pinnacle of Zsh theme development, combining exceptional performance with extensive customization capabilities. Its instant prompt feature, comprehensive segment system, and intelligent optimization make it the ideal choice for developers and power users who demand both functionality and speed. Whether you prefer a minimal setup or a feature-rich display with comprehensive system information, Powerlevel10k delivers unmatched performance while providing all the information you need at a glance.

▇\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0'

System Load

CODE_BLOCK_27

Disk Usage

CODE_BLOCK_28

RAM Usage

CODE_BLOCK_29

WiFi

CODE_BLOCK_30

Advanced Customization

Custom Segments

CODE_BLOCK_31

Conditional Segments

CODE_BLOCK_32

Transient Prompt

CODE_BLOCK_33

Multi-line Prompt

CODE_BLOCK_34

Performance Optimization

Gitstatus Configuration

CODE_BLOCK_35

Segment Optimization

CODE_BLOCK_36

Instant Prompt Optimization

CODE_BLOCK_37

Troubleshooting

Common Issues

CODE_BLOCK_38

Debug Mode

CODE_BLOCK_39

Configuration Validation

CODE_BLOCK_40

Integration Examples

IDE Integration

CODE_BLOCK_41

CI/CD Integration

CODE_BLOCK_42

Docker Integration

CODE_BLOCK_43

Best Practices

Configuration Management

CODE_BLOCK_44

Performance Guidelines

CODE_BLOCK_45

Security Considerations

CODE_BLOCK_46

Powerlevel10k represents the pinnacle of Zsh theme development, combining exceptional performance with extensive customization capabilities. Its instant prompt feature, comprehensive segment system, and intelligent optimization make it the ideal choice for developers and power users who demand both functionality and speed. Whether you prefer a minimal setup or a feature-rich display with comprehensive system information, Powerlevel10k delivers unmatched performance while providing all the information you need at a glance.

█\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0\u00A0' ) ```

System Load

CODE_BLOCK_27

Disk Usage

CODE_BLOCK_28

RAM Usage

CODE_BLOCK_29

WiFi

CODE_BLOCK_30

Advanced Customization

Custom Segments

CODE_BLOCK_31

Conditional Segments

CODE_BLOCK_32

Transient Prompt

CODE_BLOCK_33

Multi-line Prompt

CODE_BLOCK_34

Performance Optimization

Gitstatus Configuration

CODE_BLOCK_35

Segment Optimization

CODE_BLOCK_36

Instant Prompt Optimization

CODE_BLOCK_37

Troubleshooting

Common Issues

CODE_BLOCK_38

Debug Mode

CODE_BLOCK_39

Configuration Validation

CODE_BLOCK_40

Integration Examples

IDE Integration

CODE_BLOCK_41

CI/CD Integration

CODE_BLOCK_42

Docker Integration

CODE_BLOCK_43

Best Practices

Configuration Management

CODE_BLOCK_44

Performance Guidelines

CODE_BLOCK_45

Security Considerations

CODE_BLOCK_46

Powerlevel10k represents the pinnacle of Zsh theme development, combining exceptional performance with extensive customization capabilities. Its instant prompt feature, comprehensive segment system, and intelligent optimization make it the ideal choice for developers and power users who demand both functionality and speed. Whether you prefer a minimal setup or a feature-rich display with comprehensive system information, Powerlevel10k delivers unmatched performance while providing all the information you need at a glance.