2020-10-05 02:33:12 -07:00
---
id: path
title: Path
sidebar_label: Path
---
## What
Display the current path.
## Sample Configuration
2023-04-19 22:00:09 -07:00
import Config from "@site/src/components/Config.js";
<Config
data={{
type: "path",
style: "powerline",
powerline_symbol: "\uE0B0",
foreground: "#ffffff",
background: "#61AFEF",
properties: {
style: "folder",
mapped_locations: {
"C:\\temp": "\ue799",
},
},
}}
/>
2020-10-05 02:33:12 -07:00
## Properties
2024-04-04 14:20:48 -07:00
| Name | Type | Default | Description |
| --------------------------- | :--------: | :--------: | ---------------------------------------------------------------------------------------------------------------- |
| `folder_separator_icon` | `string` | `/` | the symbol to use as a separator between folders |
| `folder_separator_template` | `string` | | the [template][templates] 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` | `number` | `0` | maximum path length to display when using `powerlevel` |
| `hide_root_location` | `boolean` | `false` | ides 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 firstfolder 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 |
2020-10-05 02:33:12 -07:00
2021-05-02 05:32:48 -07:00
## Mapped Locations
2022-10-03 07:46:16 -07:00
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.
2021-05-02 05:32:48 -07:00
2024-04-04 14:20:48 -07:00
| 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` |
2022-09-16 07:32:48 -07:00
2021-07-24 10:49:01 -07:00
setting.
2021-05-02 05:32:48 -07:00
For example, to swap out `C:\Users\Leet\GitHub` with a GitHub icon, you can do the following:
```json
"mapped_locations": {
"C:\\Users\\Leet\\GitHub": "\uF09B"
}
```
2021-09-18 13:03:00 -07:00
### Notes
2022-11-04 12:51:34 -07:00
- To make mapped locations work cross-platform, use `/` as the path separator, Oh My Posh will
2022-11-28 11:21:32 -08:00
automatically match effective separators based on the running operating system.
2022-11-04 12:51:34 -07:00
- If you want to match all child directories, you can use `*` as a wildcard, for example:
2022-11-28 11:21:32 -08:00
`"C:/Users/Bill/*": "$"` will turn `C:/Users/Bill/Downloads` into `$/Downloads`.
2021-09-18 13:03:00 -07:00
- The character `~` at the start of a mapped location will match the user's home directory.
2022-11-04 12:51:34 -07:00
- The match is case-insensitive on Windows and macOS, but case-sensitive on other operating systems. This means that for
2022-11-28 11:21:32 -08:00
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.
2021-09-18 13:03:00 -07:00
2020-10-05 02:33:12 -07:00
## Style
2023-03-21 12:40:10 -07:00
Style sets the way the path is displayed. Based on previous experience and popular themes, there are 10 flavors.
2020-10-05 02:33:12 -07:00
2022-09-16 07:32:48 -07:00
- `agnoster`
- `agnoster_full`
- `agnoster_short`
- `agnoster_left`
- `full`
- `folder`
- `mixed`
- `letter`
- `unique`
2023-03-21 12:40:10 -07:00
- `powerlevel`
2020-10-05 02:33:12 -07:00
### Agnoster
2022-10-03 07:46:16 -07:00
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.
2020-10-05 02:33:12 -07:00
2020-11-11 04:53:53 -08:00
### Agnoster Full
Renders each folder name separated by the `folder_separator_icon`.
2020-12-17 03:10:01 -08:00
### Agnoster Short
2022-10-03 07:46:16 -07:00
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`.
2020-12-17 03:10:01 -08:00
2021-12-11 11:37:14 -08:00
### Agnoster Left
Renders each folder as the `folder_icon` separated by the `folder_separator_icon`.
2022-10-03 07:46:16 -07:00
Only the first folder name and its child are displayed in full.
2021-12-11 11:37:14 -08:00
2020-10-05 02:33:12 -07:00
### Full
2022-10-03 07:46:16 -07:00
Display the current working directory as a full string with each folder separated by the `folder_separator_icon`.
2020-10-05 02:33:12 -07:00
### Folder
Display the name of the current folder.
2021-02-09 02:57:32 -08:00
### Mixed
2022-10-03 07:46:16 -07:00
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.
2021-07-13 11:15:53 -07:00
### Letter
2022-10-03 07:46:16 -07:00
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.
2021-10-15 17:14:34 -07:00
- `folder` will be shortened to `f`
- `.config` will be shortened to `.c`
- `__pycache__` will be shortened to `__p`
- `➼ folder` will be shortened to `➼ f`
2021-12-17 13:48:41 -08:00
2022-02-09 01:06:28 -08:00
### Unique
Works like `Letter`, but will make sure every folder name is the shortest unique value.
2022-03-02 07:09:12 -08:00
The uniqueness refers to the displayed path, so `C:\dev\dev\dev\development` will be displayed as
2022-10-03 07:46:16 -07:00
`C\d\de\dev\development` (instead of `C\d\d\d\development` for `Letter`). Uniqueness does **not** refer to other
2022-03-02 07:09:12 -08:00
folders at the same level, so if `C:\projectA\dev` and `C:\projectB\dev` exist, then both will be displayed as
2022-10-03 07:46:16 -07:00
`C\p\dev`.
2022-03-02 07:09:12 -08:00
2023-03-21 12:40:10 -07:00
### Powerlevel
Works like `Unique`, but will stop shortening when `max_width` is reached.
2022-02-01 03:10:46 -08:00
## Template ([info][templates])
2021-12-17 13:48:41 -08:00
2022-02-01 03:10:46 -08:00
:::note default template
2022-09-16 07:32:48 -07:00
```template
2022-02-01 03:10:46 -08:00
{{ .Path }}
```
:::
### Properties
2022-10-03 07:46:16 -07:00
| Name | Type | Description |
2022-11-28 11:21:32 -08:00
| ------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
2022-10-03 07:46:16 -07:00
| `.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) |
2022-11-28 11:21:32 -08:00
| `.RootDir` | `boolean` | true if we're at the root directory (no parent) |
2022-10-03 07:46:16 -07:00
| `.Location` | `string` | the current directory (raw value) |
| `.StackCount` | `int` | the stack count |
| `.Writable` | `boolean` | is the current directory writable by the user or not |
2021-12-17 13:48:41 -08:00
2022-04-20 09:43:59 -07:00
[templates]: /docs/configuration/templates