Skip to main content

Path

What

Display the current path.

Sample Configuration

{
"type": "path",
"style": "powerline",
"powerline_symbol": "",
"foreground": "#ffffff",
"background": "#61AFEF",
"properties": {
"style": "folder",
"mapped_locations": {
"C:\\temp": ""
}
}
}

Properties

NameTypeDefaultDescription
folder_separator_iconstring/the symbol to use as a separator between folders
folder_separator_templatestringthe template to use as a separator between folders
home_iconstring~the icon to display when at $HOME
folder_iconstring..the icon to use as a folder indication
windows_registry_iconstring\uF013the icon to display when in the Windows registry
styleenumagnosterhow to display the current path
mixed_thresholdnumber4the maximum length of a path segment that will be displayed when using Mixed
max_depthnumber1maximum path depth to display before shortening when using agnoster_short
max_widthany0maximum path length to display when using powerlevel, can leverage templates
hide_root_locationbooleanfalsehides the root location if it doesn't fit in the last max_depth folders when using agnoster_short
cycle[]stringa list of color overrides to cycle through to colorize the individual path folders, e.g. [ "#ffffff,#111111" ]
cycle_folder_separatorbooleanfalsecolorize the folder_separator_icon as well when using a cycle
folder_formatstring%sformat to use on individual path folders
edge_formatstring%sformat to use on the first and last folder of the path
left_formatstring%sformat to use on the first folder of the path - defaults to edge_format
right_formatstring%sformat to use on the last folder of the path - defaults to edge_format
gitdir_formatstringformat to use for a git root directory
display_cygpathbooleanfalsedisplay the Cygwin style path using cygpath -u $PWD

Mapped Locations

Allows you to override a location with an icon/string. It validates if the current path starts with the specific elements and replaces it with the icon/string if there's a match. To avoid issues with nested overrides, Oh My Posh will sort the list of mapped locations before doing a replacement.

NameTypeDefaultDescription
mapped_locations_enabledbooleantruereplace known locations in the path with the replacements before applying the style
mapped_locationsobjectcustom glyph/text for specific paths. Works regardless of the mapped_locations_enabled

setting.

For example, to swap out C:\Users\Leet\GitHub with a GitHub icon, you can do the following:

{
"mapped_locations": {
"C:\\Users\\Leet\\GitHub": ""
}
}

Notes

  • To make mapped locations work cross-platform, use / as the path separator, Oh My Posh will automatically match effective separators based on the running operating system.
  • If you want to match all child directories, you can use * as a wildcard, for example: "C:/Users/Bill/*": "$" will turn C:/Users/Bill/Downloads into $/Downloads but leave C:/Users/Bill unchanged.
  • To prevent mangling path elements, if you use any text style tags (e.g., <lightGreen>...</>) in replacement values, you should avoid using a chevron character (</>) in the folder_separator_icon property, and vice versa.
  • The character ~ at the start of a mapped location will match the user's home directory.
  • The match is case-insensitive on Windows and macOS, but case-sensitive on other operating systems. This means that for user Bill, who has a user account Bill on Windows and bill on Linux, ~/Foo might match C:\Users\Bill\Foo or C:\Users\Bill\foo on Windows but only /home/bill/Foo on Linux.

Style

Style sets the way the path is displayed. Based on previous experience and popular themes, there are 10 flavors.

  • agnoster
  • agnoster_full
  • agnoster_short
  • agnoster_left
  • full
  • folder
  • mixed
  • letter
  • unique
  • powerlevel

Agnoster

Renders each intermediate folder as the folder_icon separated by the folder_separator_icon. The first and the last (current) folder name are always displayed as-is.

Agnoster Full

Renders each folder name separated by the folder_separator_icon.

Agnoster Short

When more than max_depth levels deep, it renders one folder_icon (if hide_root_location is false, which means the root folder does not count for depth) followed by the names of the last max_depth folders, separated by the folder_separator_icon.

Agnoster Left

Renders each folder as the folder_icon separated by the folder_separator_icon. Only the first folder name and its child are displayed in full.

Full

Display the current working directory as a full string with each folder separated by the folder_separator_icon.

Folder

Display the name of the current folder.

Mixed

Works like Agnoster, but for any intermediate folder name that is short enough, it will be displayed as-is. The maximum length for the folders to display is governed by the mixed_threshold property.

Letter

Works like Agnoster Full, but will write every folder name using the first letter only, except when the folder name starts with a symbol or icon. Specially, the last (current) folder name is always displayed in full.

  • folder will be shortened to f
  • .config will be shortened to .c
  • __pycache__ will be shortened to __p
  • ➼ folder will be shortened to ➼ f

Unique

Works like Letter, but will make sure every folder name is the shortest unique value.

The uniqueness refers to the displayed path, so C:\dev\dev\dev\development will be displayed as C\d\de\dev\development (instead of C\d\d\d\development for Letter). Uniqueness does not refer to other folders at the same level, so if C:\projectA\dev and C:\projectB\dev exist, then both will be displayed as C\p\dev.

Powerlevel

Works like Unique, but will stop shortening when max_width is reached.

Template (info)

default template
{{ .Path }}

Properties

NameTypeDescription
.Pathstringthe current directory (based on the style property)
.Parentstringthe current directory's parent folder which ends with a path separator (designed for use with style folder, it is empty if .Path contains only one single element)
.RootDirbooleantrue if we're at the root directory (no parent)
.Locationstringthe current directory (raw value)
.StackCountintthe stack count
.Writablebooleanis the current directory writable by the user or not