Repository: JanDeDobbeleer/oh-my-posh (Go)

Issue:
Path segment mapped locations doesn't respect folder case (in)sensitivity
### Code of Conduct

- [x] I agree to follow this project's Code of Conduct

FWIW, this is about equal parts "bug" and "enhancement". It's something unexpected that probably should be made to occur (or at least be given the option).

### What happened?

In the wake of #6327, I was eager to update my path config to work with WSL. However, I came across something a bit annoying: `oh-my-posh` doesn't correctly handle WSL mounted drive case-insensitivity. 

Take a config file something vaguely like this and a folder named "GitHub" inside my Windows filesystem:

```json
{
  "mapped_locations": {
    "re:(.*/Users/taylo/Documents/GitHub).*": "github-icon",
} 
```
When entering the `GitHub` folder from the parent dir, `oh-my-posh` exhibits the following behaviour:
1. On windows, typing any of "Github", "github", "GITHUB" or similar will correctly map to the "GitHub" folder and display the icon. `ls` shows my normal files in that folder. 
2. On WSL, typing anything **BUT** the exact folder name (`GitHub`) will break oh-my-posh's mapping for this and all subdirectories **despite mounted drives being case-insensitive by default**. I know I was in the correct folder (`ls -a` showed normal files), but it still didn't show the icon.

On the flip side, changing the latter portion of the config to "github" just makes windows *not* display the icon at all due to it going to the "GitHub" folder. On the contrary, WSL now only shows the icon with "github" as the exact folder name.

### Theme
See attached files

### What OS are you seeing the problem on?

Windows (and WSL by proxy)

### Which shell are you using?

powershell (or bash for wsl)

### Log output

See attached files for detailed logs by OS.

### Notes

fsutil says it's insensitive...
```shell
fsutil.exe file queryCaseSensitiveInfo .
Case sensitive attribute on directory C:\Users\taylo\Documents\GitHub is disabled.
```

After doing some good ol' `echo $pwd`, it looks like WSL considers itself to be inside the `Documents/github` folder when using `cd github`, but the equivalent on Windows leads to `Documents/GitHub` (the correct casing).

FWIW, this is not an issue with regex (happens both with and without regex lines).

[posh-config.json](https://github.com/user-attachments/files/19538031/posh-config.json)
[posh-log-windows.txt](https://github.com/user-attachments/files/19538033/posh-log-windows.txt)
[posh-log-wsl-correct.txt](https://github.com/user-attachments/files/19538032/posh-log-wsl-correct.txt)
[posh-log-wsl-lower.txt](https://github.com/user-attachments/files/19538034/posh-log-wsl-lower.txt)


Discussion:
@Bertie690 this is annoying one as I probably have to move the entire matching to regex to correctly support this. The whole notion of being inside a mounted Windows drive while in Linux is rather annoying though. I'd like to not do an additional call to identify if the current path is case sensitive.
Yeah it looks kinda bad since windows directory case sensitivity is now configurable on a  [per folder basis](https://learn.microsoft.com/en-us/windows/wsl/case-sensitivity#change-the-case-sensitivity-of-files-and-directories).
In fact, [linux](https://lwn.net/Articles/784041/) also supports per-folder case sensitivity funny enough. 
FWIW, there's a [golang issue](https://github.com/golang/go/issues/18358) about this... which has been open for about 9 years by now.
This issue has been automatically locked since there has not been any recent activity (i.e. last half year) after it was closed. It helps our maintainers focus on the active issues.
If you have found a problem that seems similar, please open a [discussion](https://github.com/JanDeDobbeleer/oh-my-posh/discussions/new?category=troubleshoot) first, complete the body with all the details necessary to reproduce, and mention this issue as reference.



Patch:
diff --git a/src/cache/config.go b/src/cache/config.go
index 9fb423449b0a..48c09504716e 100644
--- a/src/cache/config.go
+++ b/src/cache/config.go
@@ -1,8 +1,8 @@
 package cache
 
 type Config struct {
-	Duration Duration `json:"duration,omitempty" toml:"duration,omitempty"`
-	Strategy Strategy `json:"strategy,omitempty" toml:"strategy,omitempty"`
+	Duration Duration `json:"duration,omitempty" toml:"duration,omitempty" yaml:"duration,omitempty"`
+	Strategy Strategy `json:"strategy,omitempty" toml:"strategy,omitempty" yaml:"strategy,omitempty"`
 }
 
 type Strategy string
diff --git a/src/color/colors.go b/src/color/colors.go
index 308ac45722bb..11ec665781de 100644
--- a/src/color/colors.go
+++ b/src/color/colors.go
@@ -26,8 +26,8 @@ type String interface {
 }
 
 type Set struct {
-	Background Ansi `json:"background" toml:"background"`
-	Foreground Ansi `json:"foreground" toml:"foreground"`
+	Background Ansi `json:"background" toml:"background" yaml:"background"`
+	Foreground Ansi `json:"foreground" toml:"foreground" yaml:"foreground"`
 }
 
 func (c *Set) String() string {
diff --git a/src/color/palettes.go b/src/color/palettes.go
index 06417f465e48..0ac012832d6a 100644
--- a/src/color/palettes.go
+++ b/src/color/palettes.go
@@ -1,6 +1,6 @@
 package color
 
 type Palettes struct {
-	List     map[string]Palette `json:"list,omitempty" toml:"list,omitempty"`
-	Template string             `json:"template,omitempty" toml:"template,omitempty"`
+	List     map[string]Palette `json:"list,omitempty" toml:"list,omitempty" yaml:"list,omitempty"`
+	Template string             `json:"template,omitempty" toml:"template,omitempty" yaml:"template,omitempty"`
 }
diff --git a/src/config/block.go b/src/config/block.go
index ff9dfa094356..06c1067cc2f4 100644
--- a/src/config/block.go
+++ b/src/config/block.go
@@ -26,15 +26,15 @@ const (
 
 // Block defines a part of the prompt with optional segments
 type Block struct {
-	Type            BlockType      `json:"type,omitempty" toml:"type,omitempty"`
-	Alignment       BlockAlignment `json:"alignment,omitempty" toml:"alignment,omitempty"`
-	Filler          string         `json:"filler,omitempty" toml:"filler,omitempty"`
-	Overflow        Overflow       `json:"overflow,omitempty" toml:"overflow,omitempty"`
-	LeadingDiamond  string         `json:"leading_diamond,omitempty" toml:"leading_diamond,omitempty"`
-	TrailingDiamond string         `json:"trailing_diamond,omitempty" toml:"trailing_diamond,omitempty"`
-	Segments        []*Segment     `json:"segments,omitempty" toml:"segments,omitempty"`
-	MaxWidth        int            `json:"max_width,omitempty" toml:"max_width,omitempty"`
-	MinWidth        int            `json:"min_width,omitempty" toml:"min_width,omitempty"`
-	Newline         bool           `json:"newline,omitempty" toml:"newline,omitempty"`
-	Force           bool           `json:"force,omitempty" toml:"force,omitempty"`
+	Type            BlockType      `json:"type,omitempty" toml:"type,omitempty" yaml:"type,omitempty"`
+	Alignment       BlockAlignment `json:"alignment,omitempty" toml:"alignment,omitempty" yaml:"alignment,omitempty"`
+	Filler          string         `json:"filler,omitempty" toml:"filler,omitempty" yaml:"filler,omitempty"`
+	Overflow        Overflow       `json:"overflow,omitempty" toml:"overflow,omitempty" yaml:"overflow,omitempty"`
+	LeadingDiamond  string         `json:"leading_diamond,omitempty" toml:"leading_diamond,omitempty" yaml:"leading_diamond,omitempty"`
+	TrailingDiamond string         `json:"trailing_diamond,omitempty" toml:"trailing_diamond,omitempty" yaml:"trailing_diamond,omitempty"`
+	Segments        []*Segment     `json:"segments,omitempty" toml:"segments,omitempty" yaml:"segments,omitempty"`
+	MaxWidth        int            `json:"max_width,omitempty" toml:"max_width,omitempty" yaml:"max_width,omitempty"`
+	MinWidth        int            `json:"min_width,omitempty" toml:"min_width,omitempty" yaml:"min_width,omitempty"`
+	Newline         bool           `json:"newline,omitempty" toml:"newline,omitempty" yaml:"newline,omitempty"`
+	Force           bool           `json:"force,omitempty" toml:"force,omitempty" yaml:"force,omitempty"`
 }
diff --git a/src/config/config.go b/src/config/config.go
index f6132ec7f7d7..44c47728fb7c 100644
--- a/src/config/config.go
+++ b/src/config/config.go
@@ -24,35 +24,35 @@ const (
 
 // Config holds all the theme for rendering the prompt
 type Config struct {
-	Palette                 color.Palette   `json:"palette,omitempty" toml:"palette,omitempty"`
-	DebugPrompt             *Segment        `json:"debug_prompt,omitempty" toml:"debug_prompt,omitempty"`
-	Var                     map[string]any  `json:"var,omitempty" toml:"var,omitempty"`
-	Palettes                *color.Palettes `json:"palettes,omitempty" toml:"palettes,omitempty"`
-	ValidLine               *Segment        `json:"valid_line,omitempty" toml:"valid_line,omitempty"`
-	SecondaryPrompt         *Segment        `json:"secondary_prompt,omitempty" toml:"secondary_prompt,omitempty"`
-	TransientPrompt         *Segment        `json:"transient_prompt,omitempty" toml:"transient_prompt,omitempty"`
-	ErrorLine               *Segment        `json:"error_line,omitempty" toml:"error_line,omitempty"`
-	TerminalBackground      color.Ansi      `json:"terminal_background,omitempty" toml:"terminal_background,omitempty"`
+	Palette                 color.Palette   `json:"palette,omitempty" toml:"palette,omitempty" yaml:"palette,omitempty"`
+	DebugPrompt             *Segment        `json:"debug_prompt,omitempty" toml:"debug_prompt,omitempty" yaml:"debug_prompt,omitempty"`
+	Var                     map[string]any  `json:"var,omitempty" toml:"var,omitempty" yaml:"var,omitempty"`
+	Palettes                *color.Palettes `json:"palettes,omitempty" toml:"palettes,omitempty" yaml:"palettes,omitempty"`
+	ValidLine               *Segment        `json:"valid_line,omitempty" toml:"valid_line,omitempty" yaml:"valid_line,omitempty"`
+	SecondaryPrompt         *Segment        `json:"secondary_prompt,omitempty" toml:"secondary_prompt,omitempty" yaml:"secondary_prompt,omitempty"`
+	TransientPrompt         *Segment        `json:"transient_prompt,omitempty" toml:"transient_prompt,omitempty" yaml:"transient_prompt,omitempty"`
+	ErrorLine               *Segment        `json:"error_line,omitempty" toml:"error_line,omitempty" yaml:"error_line,omitempty"`
+	TerminalBackground      color.Ansi      `json:"terminal_background,omitempty" toml:"terminal_background,omitempty" yaml:"terminal_background,omitempty"`
 	origin                  string
-	PWD                     string                 `json:"pwd,omitempty" toml:"pwd,omitempty"`
-	AccentColor             color.Ansi             `json:"accent_color,omitempty" toml:"accent_color,omitempty"`
-	Output                  string                 `json:"-" toml:"-"`
-	ConsoleTitleTemplate    string                 `json:"console_title_template,omitempty" toml:"console_title_template,omitempty"`
-	Format                  string                 `json:"-" toml:"-"`
-	Upgrade                 *upgrade.Config        `json:"upgrade,omitempty" toml:"upgrade,omitempty"`
-	Cycle                   color.Cycle            `json:"cycle,omitempty" toml:"cycle,omitempty"`
-	ITermFeatures           terminal.ITermFeatures `json:"iterm_features,omitempty" toml:"iterm_features,omitempty"`
-	Blocks                  []*Block               `json:"blocks,omitempty" toml:"blocks,omitempty"`
-	Tooltips                []*Segment             `json:"tooltips,omitempty" toml:"tooltips,omitempty"`
-	Version                 int                    `json:"version" toml:"version"`
-	AutoUpgrade             bool                   `json:"-" toml:"-"`
-	ShellIntegration        bool                   `json:"shell_integration,omitempty" toml:"shell_integration,omitempty"`
-	MigrateGlyphs           bool                   `json:"-" toml:"-"`
-	PatchPwshBleed          bool                   `json:"patch_pwsh_bleed,omitempty" toml:"patch_pwsh_bleed,omitempty"`
-	EnableCursorPositioning bool                   `json:"enable_cursor_positioning,omitempty" toml:"enable_cursor_positioning,omitempty"`
+	PWD                     string                 `json:"pwd,omitempty" toml:"pwd,omitempty" yaml:"pwd,omitempty"`
+	AccentColor             color.Ansi             `json:"accent_color,omitempty" toml:"accent_color,omitempty" yaml:"accent_color,omitempty"`
+	Output                  string                 `json:"-" toml:"-" yaml:"-"`
+	ConsoleTitleTemplate    string                 `json:"console_title_template,omitempty" toml:"console_title_template,omitempty" yaml:"console_title_template,omitempty"`
+	Format                  string                 `json:"-" toml:"-" yaml:"-"`
+	Upgrade                 *upgrade.Config        `json:"upgrade,omitempty" toml:"upgrade,omitempty" yaml:"upgrade,omitempty"`
+	Cycle                   color.Cycle            `json:"cycle,omitempty" toml:"cycle,omitempty" yaml:"cycle,omitempty"`
+	ITermFeatures           terminal.ITermFeatures `json:"iterm_features,omitempty" toml:"iterm_features,omitempty" yaml:"iterm_features,omitempty"`
+	Blocks                  []*Block               `json:"blocks,omitempty" toml:"blocks,omitempty" yaml:"blocks,omitempty"`
+	Tooltips                []*Segment             `json:"tooltips,omitempty" toml:"tooltips,omitempty" yaml:"tooltips,omitempty"`
+	Version                 int                    `json:"version" toml:"version" yaml:"version"`
+	AutoUpgrade             bool                   `json:"-" toml:"-" yaml:"-"`
+	ShellIntegration        bool                   `json:"shell_integration,omitempty" toml:"shell_integration,omitempty" yaml:"shell_integration,omitempty"`
+	MigrateGlyphs           bool                   `json:"-" toml:"-" yaml:"-"`
+	PatchPwshBleed          bool                   `json:"patch_pwsh_bleed,omitempty" toml:"patch_pwsh_bleed,omitempty" yaml:"patch_pwsh_bleed,omitempty"`
+	EnableCursorPositioning bool                   `json:"enable_cursor_positioning,omitempty" toml:"enable_cursor_positioning,omitempty" yaml:"enable_cursor_positioning,omitempty"`
 	updated                 bool
-	FinalSpace              bool `json:"final_space,omitempty" toml:"final_space,omitempty"`
-	UpgradeNotice           bool `json:"-" toml:"-"`
+	FinalSpace              bool `json:"final_space,omitempty" toml:"final_space,omitempty" yaml:"final_space,omitempty"`
+	UpgradeNotice           bool `json:"-" toml:"-" yaml:"-"`
 }
 
 func (cfg *Config) MakeColors(env runtime.Environment) color.String {
diff --git a/src/config/segment.go b/src/config/segment.go
index 0dadc90eec54..020e34ba0a9a 100644
--- a/src/config/segment.go
+++ b/src/config/segment.go
@@ -41,39 +41,39 @@ func (s *SegmentStyle) resolve(context any) SegmentStyle {
 type Segment struct {
 	writer                 SegmentWriter
 	env                    runtime.Environment
-	Properties             properties.Map `json:"properties,omitempty" toml:"properties,omitempty"`
-	Cache                  *cache.Config  `json:"cache,omitempty" toml:"cache,omitempty"`
-	Alias                  string         `json:"alias,omitempty" toml:"alias,omitempty"`
+	Properties             properties.Map `json:"properties,omitempty" toml:"properties,omitempty" yaml:"properties,omitempty"`
+	Cache                  *cache.Config  `json:"cache,omitempty" toml:"cache,omitempty" yaml:"cache,omitempty"`
+	Alias                  string         `json:"alias,omitempty" toml:"alias,omitempty" yaml:"alias,omitempty"`
 	styleCache             SegmentStyle
 	name                   string
-	LeadingDiamond         string         `json:"leading_diamond,omitempty" toml:"leading_diamond,omitempty"`
-	TrailingDiamond        string         `json:"trailing_diamond,omitempty" toml:"trailing_diamond,omitempty"`
-	Template               string         `json:"template,omitempty" toml:"template,omitempty"`
-	Foreground             color.Ansi     `json:"foreground,omitempty" toml:"foreground,omitempty"`
-	TemplatesLogic         template.Logic `json:"templates_logic,omitempty" toml:"templates_logic,omitempty"`
-	PowerlineSymbol        string         `json:"powerline_symbol,omitempty" toml:"powerline_symbol,omitempty"`
-	Background             color.Ansi     `json:"background,omitempty" toml:"background,omitempty"`
-	Filler                 string         `json:"filler,omitempty" toml:"filler,omitempty"`
-	Type                   SegmentType    `json:"type,omitempty" toml:"type,omitempty"`
-	Style                  SegmentStyle   `json:"style,omitempty" toml:"style,omitempty"`
-	LeadingPowerlineSymbol string         `json:"leading_powerline_symbol,omitempty" toml:"leading_powerline_symbol,omitempty"`
-	ForegroundTemplates    template.List  `json:"foreground_templates,omitempty" toml:"foreground_templates,omitempty"`
-	Tips                   []string       `json:"tips,omitempty" toml:"tips,omitempty"`
-	BackgroundTemplates    template.List  `json:"background_templates,omitempty" toml:"background_templates,omitempty"`
-	Templates              template.List  `json:"templates,omitempty" toml:"templates,omitempty"`
-	ExcludeFolders         []string       `json:"exclude_folders,omitempty" toml:"exclude_folders,omitempty"`
-	IncludeFolders         []string       `json:"include_folders,omitempty" toml:"include_folders,omitempty"`
-	Needs                  []string       `json:"-" toml:"-"`
-	MinWidth               int            `json:"min_width,omitempty" toml:"min_width,omitempty"`
-	MaxWidth               int            `json:"max_width,omitempty" toml:"max_width,omitempty"`
-	Timeout                time.Duration  `json:"timeout,omitempty" toml:"timeout,omitempty"`
-	Duration               time.Duration  `json:"-" toml:"-"`
-	NameLength             int            `json:"-" toml:"-"`
-	Interactive            bool           `json:"interactive,omitempty" toml:"interactive,omitempty"`
-	Enabled                bool           `json:"-" toml:"-"`
-	Newline                bool           `json:"newline,omitempty" toml:"newline,omitempty"`
-	InvertPowerline        bool           `json:"invert_powerline,omitempty" toml:"invert_powerline,omitempty"`
-	restored               bool           `json:"-" toml:"-"`
+	LeadingDiamond         string         `json:"leading_diamond,omitempty" toml:"leading_diamond,omitempty" yaml:"leading_diamond,omitempty"`
+	TrailingDiamond        string         `json:"trailing_diamond,omitempty" toml:"trailing_diamond,omitempty" yaml:"trailing_diamond,omitempty"`
+	Template               string         `json:"template,omitempty" toml:"template,omitempty" yaml:"template,omitempty"`
+	Foreground             color.Ansi     `json:"foreground,omitempty" toml:"foreground,omitempty" yaml:"foreground,omitempty"`
+	TemplatesLogic         template.Logic `json:"templates_logic,omitempty" toml:"templates_logic,omitempty" yaml:"templates_logic,omitempty"`
+	PowerlineSymbol        string         `json:"powerline_symbol,omitempty" toml:"powerline_symbol,omitempty" yaml:"powerline_symbol,omitempty"`
+	Background             color.Ansi     `json:"background,omitempty" toml:"background,omitempty" yaml:"background,omitempty"`
+	Filler                 string         `json:"filler,omitempty" toml:"filler,omitempty" yaml:"filler,omitempty"`
+	Type                   SegmentType    `json:"type,omitempty" toml:"type,omitempty" yaml:"type,omitempty"`
+	Style                  SegmentStyle   `json:"style,omitempty" toml:"style,omitempty" yaml:"style,omitempty"`
+	LeadingPowerlineSymbol string         `json:"leading_powerline_symbol,omitempty" toml:"leading_powerline_symbol,omitempty" yaml:"leading_powerline_symbol,omitempty"`
+	ForegroundTemplates    template.List  `json:"foreground_templates,omitempty" toml:"foreground_templates,omitempty" yaml:"foreground_templates,omitempty"`
+	Tips                   []string       `json:"tips,omitempty" toml:"tips,omitempty" yaml:"tips,omitempty"`
+	BackgroundTemplates    template.List  `json:"background_templates,omitempty" toml:"background_templates,omitempty" yaml:"background_templates,omitempty"`
+	Templates              template.List  `json:"templates,omitempty" toml:"templates,omitempty" yaml:"templates,omitempty"`
+	ExcludeFolders         []string       `json:"exclude_folders,omitempty" toml:"exclude_folders,omitempty" yaml:"exclude_folders,omitempty"`
+	IncludeFolders         []string       `json:"include_folders,omitempty" toml:"include_folders,omitempty" yaml:"include_folders,omitempty"`
+	Needs                  []string       `json:"-" toml:"-" yaml:"-"`
+	MinWidth               int            `json:"min_width,omitempty" toml:"min_width,omitempty" yaml:"min_width,omitempty"`
+	MaxWidth               int            `json:"max_width,omitempty" toml:"max_width,omitempty" yaml:"max_width,omitempty"`
+	Timeout                time.Duration  `json:"timeout,omitempty" toml:"timeout,omitempty" yaml:"timeout,omitempty"`
+	Duration               time.Duration  `json:"-" toml:"-" yaml:"-"`
+	NameLength             int            `json:"-" toml:"-" yaml:"-"`
+	Interactive            bool           `json:"interactive,omitempty" toml:"interactive,omitempty" yaml:"interactive,omitempty"`
+	Enabled                bool           `json:"-" toml:"-" yaml:"-"`
+	Newline                bool           `json:"newline,omitempty" toml:"newline,omitempty" yaml:"newline,omitempty"`
+	InvertPowerline        bool           `json:"invert_powerline,omitempty" toml:"invert_powerline,omitempty" yaml:"invert_powerline,omitempty"`
+	restored               bool           `json:"-" toml:"-" yaml:"-"`
 }
 
 func (segment *Segment) Name() string {
diff --git a/src/segments/path.go b/src/segments/path.go
index a59ec51e6188..e61ab907ed30 100644
--- a/src/segments/path.go
+++ b/src/segments/path.go
@@ -617,17 +617,33 @@ func (pt *Path) replaceMappedLocations(inputPath string) (string, string) {
 		return strings.NewReplacer("<", "<<>", ">", "<>>").Replace(path)
 	}
 
-	for _, key := range keys {
-		if strings.HasPrefix(key, regexPrefix) {
-			input := strings.ReplaceAll(inputPath, `\`, `/`)
-			match, OK := regex.FindStringMatch(key[len(regexPrefix):], input, 1)
-			if !OK {
-				continue
-			}
+	handleRegex := func(key string) (string, bool) {
+		if !strings.HasPrefix(key, regexPrefix) {
+			return "", false
+		}
+
+		input := strings.ReplaceAll(inputPath, `\`, `/`)
+		pattern := key[len(regexPrefix):]
+
+		// Add (?i) at the start of the pattern for case-insensitive matching on Windows
+		if pt.windowsPath || (pt.env.IsWsl() && strings.HasPrefix(input, "/mnt/")) {
+			pattern = "(?i)" + pattern
+		}
 
-			// Replace the first match with the mapped location.
-			input = strings.Replace(input, match, pt.mappedLocations[key], 1)
-			input = path.Clean(input)
+		match, OK := regex.FindStringMatch(pattern, input, 1)
+		if !OK {
+			return "", false
+		}
+
+		// Replace the first match with the mapped location.
+		input = strings.Replace(input, match, pt.mappedLocations[key], 1)
+		input = path.Clean(input)
+
+		return input, true
+	}
+
+	for _, key := range keys {
+		if input, OK := handleRegex(key); OK {
 			return pt.parsePath(input)
 		}
 
diff --git a/src/upgrade/config.go b/src/upgrade/config.go
index 784951dd3fb9..cae45bdcaf64 100644
--- a/src/upgrade/config.go
+++ b/src/upgrade/config.go
@@ -13,13 +13,13 @@ import (
 )
 
 type Config struct {
-	Cache         cache.Cache    `json:"-" toml:"-"`
-	Source        Source         `json:"source" toml:"source"`
-	Interval      cache.Duration `json:"interval" toml:"interval"`
-	Version       string         `json:"-" toml:"-"`
-	Auto          bool           `json:"auto" toml:"auto"`
-	DisplayNotice bool           `json:"notice" toml:"notice"`
-	Force         bool           `json:"-" toml:"-"`
+	Cache         cache.Cache    `json:"-" toml:"-" yaml:"-"`
+	Source        Source         `json:"source" toml:"source" yaml:"source"`
+	Interval      cache.Duration `json:"interval" toml:"interval" yaml:"interval"`
+	Version       string         `json:"-" toml:"-" yaml:"-"`
+	Auto          bool           `json:"auto" toml:"auto" yaml:"auto"`
+	DisplayNotice bool           `json:"notice" toml:"notice" yaml:"notice"`
+	Force         bool           `json:"-" toml:"-" yaml:"-"`
 }
 
 type Source string


Test patch:
diff --git a/src/segments/path_windows_test.go b/src/segments/path_windows_test.go
index a4bd79be0000..9d581c7f009a 100644
--- a/src/segments/path_windows_test.go
+++ b/src/segments/path_windows_test.go
@@ -442,7 +442,7 @@ var testFullPathCustomMappedLocationsCases = []testFullPathCustomMappedLocations
 		Expected:        `\a\b\1234\f\e`,
 	},
 	{
-		Pwd:             `C:\Users\taylo\Documents\GitHub\project`,
+		Pwd:             `C:\Users\taylo\Documents\github\project`,
 		MappedLocations: map[string]string{`re:(.*Users/taylo/Documents/GitHub).*`: "github"},
 		GOOS:            runtime.WINDOWS,
 		PathSeparator:   `\`,