Path
What
Display the current path.
Sample Configuration
- json
- yaml
- toml
{
"type": "path",
"style": "powerline",
"powerline_symbol": "",
"foreground": "#ffffff",
"background": "#61AFEF",
"properties": {
"style": "folder",
"mapped_locations": {
"C:\\temp": ""
}
}
}
type: path
style: powerline
powerline_symbol:
foreground: "#ffffff"
background: "#61AFEF"
properties:
style: folder
mapped_locations:
C:\temp:
type = "path"
style = "powerline"
powerline_symbol = ""
foreground = "#ffffff"
background = "#61AFEF"
[properties]
style = "folder"
[properties.mapped_locations]
"C:\\temp" = ""
Properties
Name | Type | Default | Description |
---|---|---|---|
folder_separator_icon | string | / | the symbol to use as a separator between folders |
folder_separator_template | string | the template to use as a separator between folders | |
home_icon | string | ~ | the icon to display when at $HOME |
folder_icon | string | .. | the icon to use as a folder indication |
windows_registry_icon | string | \uF013 | the icon to display when in the Windows registry |
style | enum | agnoster | how to display the current path |
mixed_threshold | number | 4 | the maximum length of a path segment that will be displayed when using Mixed |
max_depth | number | 1 | maximum path depth to display before shortening when using agnoster_short |
max_width | any | 0 | maximum path length to display when using powerlevel , can leverage templates |
hide_root_location | boolean | false | hides the root location if it doesn't fit in the last max_depth folders when using agnoster_short |
cycle | []string | a list of color overrides to cycle through to colorize the individual path folders, e.g. [ "#ffffff,#111111" ] | |
cycle_folder_separator | boolean | false | colorize the folder_separator_icon as well when using a cycle |
folder_format | string | %s | format to use on individual path folders |
edge_format | string | %s | format to use on the first and last folder of the path |
left_format | string | %s | format to use on the first folder of the path - defaults to edge_format |
right_format | string | %s | format to use on the last folder of the path - defaults to edge_format |
gitdir_format | string | format to use for a git root directory | |
display_cygpath | boolean | false | display 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.
Name | Type | Default | Description |
---|---|---|---|
mapped_locations_enabled | boolean | true | replace known locations in the path with the replacements before applying the style |
mapped_locations | object | custom 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:
- json
- yaml
- toml
{
"mapped_locations": {
"C:\\Users\\Leet\\GitHub": ""
}
}
mapped_locations:
C:\Users\Leet\GitHub:
[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 turnC:/Users/Bill/Downloads
into$/Downloads
but leaveC:/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 thefolder_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 andbill
on Linux,~/Foo
might matchC:\Users\Bill\Foo
orC:\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 tof
.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)
{{ .Path }}
Properties
Name | Type | Description |
---|---|---|
.Path | string | the current directory (based on the style property) |
.Parent | string | the 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) |
.RootDir | boolean | true if we're at the root directory (no parent) |
.Location | string | the current directory (raw value) |
.StackCount | int | the stack count |
.Writable | boolean | is the current directory writable by the user or not |