prompt-pwd

February 20, 2026 · View on GitHub

Formats the path to the current working directory to be used by prompts.

Settings

Use the following zstyle to truncate the path to the git root when in a git repo:

zstyle ':zim:prompt-pwd' git-root yes

To truncate the number of trailing path components, use the following zstyle with a positive value:

zstyle ':zim:prompt-pwd:tail' length <value>

To customize the maximum number of characters per path component, use:

zstyle ':zim:prompt-pwd:fish-style' dir-length <value>

Setting the value to 0 will disable shortening entirely, which is the default behavior.

To customize the format of a git root directory within the path, regardless if truncating the path to the git root is enabled or not, use:

zstyle ':zim:prompt-pwd:git-root' format '<format containing %d>'

The occurrence of the %d code in the format string is substituted by the directory name.

The default path separator is / and it can be customized using:

zstyle ':zim:prompt-pwd:separator' format '<format>'

You can include prompt expansion escape sequences in your custom formats.

Theming

Add a call to the prompt-pwd function in your prompt code where you want the current working directory to be displayed. Here's an example:

setopt nopromptbang prompt{cr,percent,sp,subst}

zstyle ':zim:prompt-pwd' git-root yes
zstyle ':zim:prompt-pwd:fish-style' dir-length 1
zstyle ':zim:prompt-pwd:separator' format '❯'

PS1='$(prompt-pwd)❯ '

If you want to use prompt-pwd inside a function, call it passing the variable name you want it to set. A dummy example:

prompt-pwd-len() {
  local current_dir
  prompt-pwd current_dir
  print ${#current_dir}
}