{
  "$schema": "http://json-schema.org/draft-07/schema",
  "$id": "http://example.com/example.json",
  "type": "object",
  "title": "The Oh My Posh theme definition",
  "description": "https://ohmyposh.dev/docs/configuration/overview",
  "definitions": {
    "color": {
      "anyOf": [
        {
          "$ref": "#/definitions/color_string"
        },
        {
          "$ref": "#/definitions/palette_reference"
        }
      ]
    },
    "color_string": {
      "type": "string",
      "pattern": "^(#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})|^([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$|black|red|green|yellow|blue|magenta|cyan|white|default|darkGray|lightRed|lightGreen|lightYellow|lightBlue|lightMagenta|lightCyan|lightWhite|transparent|parentBackground|parentForeground|background|foreground|accent)$",
      "title": "Color string",
      "description": "https://ohmyposh.dev/docs/configuration/colors",
      "format": "color"
    },
    "palette_reference": {
      "type": "string",
      "pattern": "^p:.*$",
      "title": "Palette reference",
      "description": "https://ohmyposh.dev/docs/configuration/colors#palette"
    },
    "color_templates": {
      "type": "array",
      "title": "Templates to define a color",
      "description": "https://ohmyposh.dev/docs/configuration/colors#color-templates",
      "default": [],
      "items": {
        "$ref": "#/definitions/segment/properties/template"
      }
    },
    "home_enabled": {
      "type": "boolean",
      "title": "Enable in the HOME folder",
      "description": "Display the segment in the HOME folder",
      "default": false
    },
    "fetch_version": {
      "type": "boolean",
      "title": "Fetch Version",
      "description": "Fetch the version number",
      "default": true
    },
    "http_timeout": {
      "type": "integer",
      "title": "Http request timeout",
      "description": "Timeout value to use for http request",
      "default": 20
    },
    "display_mode": {
      "type": "string",
      "title": "Display Mode",
      "description": "Determines whether the segment is displayed always or only if a file matching the extensions are present in the current folder",
      "enum": ["always", "files", "environment", "context"],
      "default": "context"
    },
    "missing_command_text": {
      "type": "string",
      "title": "Missing command text",
      "description": "The string to display when the command is not available",
      "default": ""
    },
    "version_url_template": {
      "type": "string",
      "title": "Version Url Template",
      "description": "Template that creates the URL of the version info / release notes",
      "default": ""
    },
    "extra_prompt": {
      "type": "object",
      "default": {},
      "properties": {
        "template": {
          "type": "string",
          "title": "Prompt Template"
        },
        "foreground": {
          "$ref": "#/definitions/color"
        },
        "foreground_templates": {
          "$ref": "#/definitions/color_templates"
        },
        "background": {
          "$ref": "#/definitions/color"
        },
        "background_templates": {
          "$ref": "#/definitions/color_templates"
        }
      }
    },
    "block": {
      "type": "object",
      "description": "https://ohmyposh.dev/docs/configuration/block",
      "allOf": [
        {
          "if": {
            "properties": {
              "type": {
                "const": "prompt"
              }
            }
          },
          "then": {
            "required": ["type", "alignment", "segments"],
            "title": "Prompt definition, contains 1 or more segments to render"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "rprompt"
              }
            }
          },
          "then": {
            "required": ["type", "segments"],
            "title": "RPrompt definition, contains 1 or more segments to render to the right of the cursor"
          }
        }
      ],
      "properties": {
        "type": {
          "type": "string",
          "title": "Block type",
          "description": "https://ohmyposh.dev/docs/configuration/block#type",
          "enum": ["prompt", "rprompt"],
          "default": "prompt"
        },
        "alignment": {
          "type": "string",
          "title": "Block alignment",
          "description": "https://ohmyposh.dev/docs/configuration/block#alignment",
          "enum": ["left", "right"],
          "default": "left"
        },
        "newline": {
          "type": "boolean",
          "title": "Newline",
          "description": "https://ohmyposh.dev/docs/configuration/block#newline",
          "default": false
        },
        "vertical_offset": {
          "type": "integer",
          "title": "Block vertical offset",
          "description": "https://ohmyposh.dev/docs/configuration/block#vertical-offset"
        },
        "horizontal-offset": {
          "type": "integer",
          "title": "Block vertical offset",
          "description": "https://ohmyposh.dev/docs/configuration/block#horizontal-offset"
        },
        "segments": {
          "type": "array",
          "title": "Segments list, prompt elements to display based on context",
          "description": "https://ohmyposh.dev/docs/configuration/block#segments",
          "default": [],
          "items": {
            "$ref": "#/definitions/segment"
          }
        }
      }
    },
    "segment": {
      "type": "object",
      "title": "A segment",
      "description": "https://ohmyposh.dev/docs/configuration/segment",
      "default": {},
      "required": ["type", "style"],
      "properties": {
        "type": {
          "type": "string",
          "title": "Segment Type",
          "description": "https://ohmyposh.dev/docs/configuration/segment#type",
          "enum": [
            "az",
            "aws",
            "azfunc",
            "angular",
            "battery",
            "command",
            "crystal",
            "cds",
            "cf",
            "cftarget",
            "dotnet",
            "dart",
            "exit",
            "executiontime",
            "flutter",
            "fossil",
            "git",
            "go",
            "haskell",
            "ipify",
            "iterm",
            "julia",
            "java",
            "kubectl",
            "kotlin",
            "node",
            "npm",
            "nx",
            "os",
            "owm",
            "path",
            "python",
            "poshgit",
            "php",
            "plastic",
            "project",
            "root",
            "ruby",
            "rust",
            "r",
            "session",
            "spotify",
            "shell",
            "sysinfo",
            "strava",
            "svn",
            "swift",
            "time",
            "text",
            "terraform",
            "ui5tooling",
            "wakatime",
            "wifi",
            "winreg",
            "ytm"
          ]
        },
        "style": {
          "type": "string",
          "title": "Segment Style",
          "description": "https://ohmyposh.dev/docs/configuration/segment#style",
          "enum": ["plain", "powerline", "diamond", "accordion"]
        },
        "foreground": {
          "$ref": "#/definitions/color"
        },
        "foreground_templates": {
          "$ref": "#/definitions/color_templates"
        },
        "background": {
          "$ref": "#/definitions/color"
        },
        "background_templates": {
          "$ref": "#/definitions/color_templates"
        },
        "template": {
          "type": "string",
          "title": "Template text",
          "description": "https://ohmyposh.dev/docs/configuration/templates",
          "default": ""
        },
        "properties": {
          "type": "object",
          "title": "Segment Properties, used to change behavior/displaying",
          "description": "https://ohmyposh.dev/docs/configuration/segment#properties",
          "default": {},
          "properties": {
            "include_folders": {
              "type": "array",
              "title": "If specified, segment will only render in these folders",
              "description": "https://ohmyposh.dev/docs/configuration/segment#include--exclude-folders",
              "default": [],
              "items": {
                "type": "string"
              }
            },
            "exclude_folders": {
              "type": "array",
              "title": "Exclude rendering in these folders",
              "description": "https://ohmyposh.dev/docs/configuration/segment#include--exclude-folders",
              "default": [],
              "items": {
                "type": "string"
              }
            },
            "ignore_folders": {
              "type": "array",
              "title": "Deprecated - please use `exclude_folders` instead",
              "description": "https://ohmyposh.dev/docs/configuration/segment#include--exclude-folders",
              "default": [],
              "items": {
                "type": "string"
              },
              "deprecated": true
            }
          }
        },
        "interactive": {
          "type": "boolean",
          "title": "Allow the use of interactive prompt escape sequences",
          "description": "https://ohmyposh.dev/docs/configuration/segment#interactive",
          "default": false
        }
      },
      "allOf": [
        {
          "if": {
            "properties": {
              "type": {
                "const": "project"
              }
            }
          },
          "then": {
            "title": "Project Segment",
            "description": "https://ohmyposh.dev/docs/project"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "npm"
              }
            }
          },
          "then": {
            "title": "NPM Segment",
            "description": "https://ohmyposh.dev/docs/npm",
            "properties": {
              "properties": {
                "properties": {
                  "home_enabled": {
                    "$ref": "#/definitions/home_enabled"
                  },
                  "fetch_version": {
                    "$ref": "#/definitions/fetch_version"
                  },
                  "display_mode": {
                    "$ref": "#/definitions/display_mode"
                  },
                  "missing_command_text": {
                    "$ref": "#/definitions/missing_command_text"
                  },
                  "version_url_template": {
                    "$ref": "#/definitions/version_url_template"
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "style": {
                "const": "powerline"
              }
            }
          },
          "then": {
            "properties": {
              "powerline_symbol": {
                "type": "string",
                "title": "Powerline Symbol",
                "description": "https://ohmyposh.dev/docs/configuration/segment#powerline-symbol",
                "default": "\uE0B0"
              },
              "invert_powerline": {
                "type": "boolean",
                "title": "Flip the Powerline symbol vertically",
                "description": "https://ohmyposh.dev/docs/configuration/segment#invert-powerline",
                "default": false
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "style": {
                "const": "diamond"
              }
            }
          },
          "then": {
            "properties": {
              "leading_diamond": {
                "type": "string",
                "title": "Leading diamond",
                "description": "https://ohmyposh.dev/docs/configuration/segment#leading-diamond",
                "default": ""
              },
              "trailing_diamond": {
                "type": "string",
                "title": "Trailing diamond",
                "description": "https://ohmyposh.dev/docs/configuration/segment#trailing-diamond",
                "default": ""
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "az"
              }
            }
          },
          "then": {
            "title": "Azure Segment",
            "description": "https://ohmyposh.dev/docs/az",
            "properties": {
              "properties": {
                "properties": {
                  "source": {
                    "type": "string",
                    "title": "Source",
                    "description": "https://ohmyposh.dev/docs/az#properties",
                    "default": "first_match",
                    "enum": ["first_match", "cli", "pwsh"]
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "battery"
              }
            }
          },
          "then": {
            "title": "Battery Segment",
            "description": "https://ohmyposh.dev/docs/segments/battery",
            "properties": {
              "properties": {
                "properties": {
                  "display_error": {
                    "type": "boolean",
                    "title": "Display Error",
                    "description": "Show the error context when failing to retrieve the battery information",
                    "default": false
                  },
                  "charging_icon": {
                    "type": "string",
                    "title": "Charging Icon",
                    "description": "Text/icon to display when charging",
                    "default": ""
                  },
                  "discharging_icon": {
                    "type": "string",
                    "title": "discharging Dcon",
                    "description": "Text/icon to display when discharging",
                    "default": ""
                  },
                  "charged_icon": {
                    "type": "string",
                    "title": "Charged Icon",
                    "description": "Text/icon to display when fully charged",
                    "default": ""
                  },
                  "not_charging_icon": {
                    "type": "string",
                    "title": "Not Charging Icon",
                    "description": "Text/icon to display when on AC power",
                    "default": ""
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "command"
              }
            }
          },
          "then": {
            "title": "Command Segment",
            "description": "https://ohmyposh.dev/docs/segments/command",
            "properties": {
              "properties": {
                "properties": {
                  "shell": {
                    "type": "string",
                    "title": "Shell",
                    "description": "The shell in which to run the command in. Uses shell -c command under the hood",
                    "default": "bash"
                  },
                  "command": {
                    "type": "string",
                    "title": "Command",
                    "description": "the command(s) to run",
                    "default": "echo no command specified"
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "dotnet"
              }
            }
          },
          "then": {
            "title": "Dotnet Segment",
            "description": "https://ohmyposh.dev/docs/segments/dotnet",
            "properties": {
              "properties": {
                "properties": {
                  "home_enabled": {
                    "$ref": "#/definitions/home_enabled"
                  },
                  "fetch_version": {
                    "$ref": "#/definitions/fetch_version"
                  },
                  "display_mode": {
                    "$ref": "#/definitions/display_mode"
                  },
                  "missing_command_text": {
                    "$ref": "#/definitions/missing_command_text"
                  },
                  "version_url_template": {
                    "$ref": "#/definitions/version_url_template"
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "exit"
              }
            }
          },
          "then": {
            "title": "Exit Segment",
            "description": "https://ohmyposh.dev/docs/segments/exit",
            "properties": {
              "properties": {
                "properties": {
                  "always_enabled": {
                    "type": "boolean",
                    "title": "Always Enabled",
                    "description": "Always show the status",
                    "default": false
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "flutter"
              }
            }
          },
          "then": {
            "title": "Flutter Segment",
            "description": "https://ohmyposh.dev/docs/segments/flutter",
            "properties": {
              "properties": {
                "properties": {
                  "home_enabled": {
                    "$ref": "#/definitions/home_enabled"
                  },
                  "fetch_version": {
                    "$ref": "#/definitions/fetch_version"
                  },
                  "display_mode": {
                    "$ref": "#/definitions/display_mode"
                  },
                  "missing_command_text": {
                    "$ref": "#/definitions/missing_command_text"
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "fossil"
              }
            }
          },
          "then": {
            "title": "Fossil Segment",
            "description": "https://ohmyposh.dev/docs/segments/fossil"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "git"
              }
            }
          },
          "then": {
            "title": "Git Segment",
            "description": "https://ohmyposh.dev/docs/segments/git",
            "properties": {
              "properties": {
                "properties": {
                  "fetch_status": {
                    "type": "boolean",
                    "title": "Display Status",
                    "description": "Display the local changes or not",
                    "default": true
                  },
                  "fetch_stash_count": {
                    "type": "boolean",
                    "title": "Display Stash Count",
                    "description": "Display the stash count or not",
                    "default": false
                  },
                  "fetch_worktree_count": {
                    "type": "boolean",
                    "title": "Display Worktree Count",
                    "description": "Display the worktree count or not",
                    "default": false
                  },
                  "fetch_upstream_icon": {
                    "type": "boolean",
                    "title": "Display Upstream Icon",
                    "description": "Display upstream icon or not",
                    "default": false
                  },
                  "branch_icon": {
                    "type": "string",
                    "title": "Branch Icon",
                    "description": "The icon to use in front of the git branch name",
                    "default": "\uE0A0 "
                  },
                  "branch_identical_icon": {
                    "type": "string",
                    "title": "Branch Identical Icon",
                    "description": "The icon to display when remote and local are identical",
                    "default": "\u2261"
                  },
                  "branch_ahead_icon": {
                    "type": "string",
                    "title": "Branch Ahead Icon",
                    "description": "The icon to display when the local branch is ahead of its remote",
                    "default": "\u2191"
                  },
                  "branch_behind_icon": {
                    "type": "string",
                    "title": "Branch Behind Icon",
                    "description": "The icon to display when the local branch is behind its remote",
                    "default": "\u2193"
                  },
                  "branch_gone_icon": {
                    "type": "string",
                    "title": "Branch Gone Icon",
                    "description": "The icon to display when there's no remote branch",
                    "default": "\u2262"
                  },
                  "commit_icon": {
                    "type": "string",
                    "title": "Commit Icon",
                    "description": "Icon/text to display before the commit context (detached HEAD)",
                    "default": "\uF417"
                  },
                  "tag_icon": {
                    "type": "string",
                    "title": "Tag Icon",
                    "description": "Icon/text to display before the tag context",
                    "default": "\uF412"
                  },
                  "rebase_icon": {
                    "type": "string",
                    "title": "Rebase Icon",
                    "description": "Icon/text to display before the context when in a rebase",
                    "default": "\uE728"
                  },
                  "cherry_pick_icon": {
                    "type": "string",
                    "title": "Cherry-pick Icon",
                    "description": "Icon/text to display before the context when doing a cherry-pick",
                    "default": "\uE29B"
                  },
                  "revert_icon": {
                    "type": "string",
                    "title": "Revert Icon",
                    "description": "Icon/text to display before the context when doing a revert",
                    "default": "\uF0E2"
                  },
                  "merge_icon": {
                    "type": "string",
                    "title": "Merge Icon",
                    "description": "Icon/text to display before the merge context",
                    "default": "\uE727"
                  },
                  "no_commits_icon": {
                    "type": "string",
                    "title": "No Commits Icon",
                    "description": "Icon/text to display when there are no commits in the repo",
                    "default": "\uF594"
                  },
                  "github_icon": {
                    "type": "string",
                    "title": "Github Icon",
                    "description": "Icon/text to display when the upstream is Github",
                    "default": "\uF408"
                  },
                  "gitlab_icon": {
                    "type": "string",
                    "title": "Gitlab Icon",
                    "description": "Icon/text to display when the upstream is Gitlab",
                    "default": "\uF296"
                  },
                  "bitbucket_icon": {
                    "type": "string",
                    "title": "Bitbucket Icon",
                    "description": "Icon/text to display when the upstream is Bitbucket",
                    "default": "\uF171"
                  },
                  "azure_devops_icon": {
                    "type": "string",
                    "title": "Azure DevOps Icon",
                    "description": "Icon/text to display when the upstream is Azure DevOps",
                    "default": "\uFD03"
                  },
                  "git_icon": {
                    "type": "string",
                    "title": "Git Icon",
                    "description": "Icon/text to display when the upstream is not known/mapped",
                    "default": "\uE5FB"
                  },
                  "branch_max_length": {
                    "type": "integer",
                    "title": "Branch max length",
                    "description": "the max length for the displayed branch name where 0 implies full length",
                    "default": 0
                  },
                  "untracked_modes": {
                    "type": "object",
                    "title": "Untracked files mode",
                    "description": "Set the untracked files mode for a repository",
                    "default": {}
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "go"
              }
            }
          },
          "then": {
            "title": "Golang Segment",
            "description": "https://ohmyposh.dev/docs/segments/golang",
            "properties": {
              "properties": {
                "properties": {
                  "home_enabled": {
                    "$ref": "#/definitions/home_enabled"
                  },
                  "fetch_version": {
                    "$ref": "#/definitions/fetch_version"
                  },
                  "display_mode": {
                    "$ref": "#/definitions/display_mode"
                  },
                  "missing_command_text": {
                    "$ref": "#/definitions/missing_command_text"
                  },
                  "version_url_template": {
                    "$ref": "#/definitions/version_url_template"
                  },
                  "parse_mod_file": {
                    "type": "boolean",
                    "title": "Parse go.mod file",
                    "description": "Parse go.mod file instead of calling out to go to improve performance.",
                    "default": false
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "dart"
              }
            }
          },
          "then": {
            "title": "Dart Segment",
            "description": "https://ohmyposh.dev/docs/segments/dart",
            "properties": {
              "properties": {
                "properties": {
                  "home_enabled": {
                    "$ref": "#/definitions/home_enabled"
                  },
                  "fetch_version": {
                    "$ref": "#/definitions/fetch_version"
                  },
                  "display_mode": {
                    "$ref": "#/definitions/display_mode"
                  },
                  "missing_command_text": {
                    "$ref": "#/definitions/missing_command_text"
                  },
                  "version_url_template": {
                    "$ref": "#/definitions/version_url_template"
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "crystal"
              }
            }
          },
          "then": {
            "title": "Crystal Segment",
            "description": "https://ohmyposh.dev/docs/segments/crystal",
            "properties": {
              "properties": {
                "properties": {
                  "home_enabled": {
                    "$ref": "#/definitions/home_enabled"
                  },
                  "fetch_version": {
                    "$ref": "#/definitions/fetch_version"
                  },
                  "display_mode": {
                    "$ref": "#/definitions/display_mode"
                  },
                  "missing_command_text": {
                    "$ref": "#/definitions/missing_command_text"
                  },
                  "version_url_template": {
                    "$ref": "#/definitions/version_url_template"
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "julia"
              }
            }
          },
          "then": {
            "title": "Julia Segment",
            "description": "https://ohmyposh.dev/docs/segments/julia",
            "properties": {
              "properties": {
                "properties": {
                  "home_enabled": {
                    "$ref": "#/definitions/home_enabled"
                  },
                  "fetch_version": {
                    "$ref": "#/definitions/fetch_version"
                  },
                  "display_mode": {
                    "$ref": "#/definitions/display_mode"
                  },
                  "missing_command_text": {
                    "$ref": "#/definitions/missing_command_text"
                  },
                  "version_url_template": {
                    "$ref": "#/definitions/version_url_template"
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "php"
              }
            }
          },
          "then": {
            "title": "PHP Segment",
            "description": "https://ohmyposh.dev/docs/segments/php",
            "properties": {
              "properties": {
                "properties": {
                  "home_enabled": {
                    "$ref": "#/definitions/home_enabled"
                  },
                  "fetch_version": {
                    "$ref": "#/definitions/fetch_version"
                  },
                  "display_mode": {
                    "$ref": "#/definitions/display_mode"
                  },
                  "missing_command_text": {
                    "$ref": "#/definitions/missing_command_text"
                  },
                  "version_url_template": {
                    "$ref": "#/definitions/version_url_template"
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "java"
              }
            }
          },
          "then": {
            "title": "Java Segment",
            "description": "https://ohmyposh.dev/docs/segments/java",
            "properties": {
              "properties": {
                "properties": {
                  "home_enabled": {
                    "$ref": "#/definitions/home_enabled"
                  },
                  "fetch_version": {
                    "$ref": "#/definitions/fetch_version"
                  },
                  "display_mode": {
                    "$ref": "#/definitions/display_mode"
                  },
                  "missing_command_text": {
                    "$ref": "#/definitions/missing_command_text"
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "ruby"
              }
            }
          },
          "then": {
            "title": "Ruby Segment",
            "description": "https://ohmyposh.dev/docs/segments/ruby",
            "properties": {
              "properties": {
                "properties": {
                  "home_enabled": {
                    "$ref": "#/definitions/home_enabled"
                  },
                  "fetch_version": {
                    "$ref": "#/definitions/fetch_version"
                  },
                  "display_mode": {
                    "$ref": "#/definitions/display_mode"
                  },
                  "missing_command_text": {
                    "$ref": "#/definitions/missing_command_text"
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "rust"
              }
            }
          },
          "then": {
            "title": "Rust Segment",
            "description": "https://ohmyposh.dev/docs/segments/rust",
            "properties": {
              "properties": {
                "properties": {
                  "home_enabled": {
                    "$ref": "#/definitions/home_enabled"
                  },
                  "fetch_version": {
                    "$ref": "#/definitions/fetch_version"
                  },
                  "display_mode": {
                    "$ref": "#/definitions/display_mode"
                  },
                  "missing_command_text": {
                    "$ref": "#/definitions/missing_command_text"
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "kubectl"
              }
            }
          },
          "then": {
            "title": "Kubectl Segment",
            "description": "https://ohmyposh.dev/docs/segments/kubectl",
            "properties": {
              "properties": {
                "properties": {
                  "display_error": {
                    "type": "boolean",
                    "title": "Display Error",
                    "description": "Show the error context when failing to retrieve the kubectl information",
                    "default": false
                  },
                  "parse_kubeconfig": {
                    "type": "boolean",
                    "title": "Parse kubeconfig",
                    "description": "Parse kubeconfig files instead of calling out to kubectl to improve performance.",
                    "default": false
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "aws"
              }
            }
          },
          "then": {
            "title": "AWS Segment",
            "description": "https://ohmyposh.dev/docs/segments/aws",
            "properties": {
              "properties": {
                "properties": {
                  "display_default": {
                    "type": "boolean",
                    "title": "Display Default User Profile",
                    "description": "Display the segment when default user or not",
                    "default": true
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "node"
              }
            }
          },
          "then": {
            "title": "Node Segment",
            "description": "https://ohmyposh.dev/docs/segments/node",
            "properties": {
              "properties": {
                "properties": {
                  "home_enabled": {
                    "$ref": "#/definitions/home_enabled"
                  },
                  "fetch_version": {
                    "$ref": "#/definitions/fetch_version"
                  },
                  "display_mode": {
                    "$ref": "#/definitions/display_mode"
                  },
                  "missing_command_text": {
                    "$ref": "#/definitions/missing_command_text"
                  },
                  "version_url_template": {
                    "$ref": "#/definitions/version_url_template"
                  },
                  "fetch_package_manager": {
                    "type": "boolean",
                    "title": "Fetch Display Package Manager",
                    "description": "Assigns the Yarn or NPM icon to .PackageManagerIcon",
                    "default": false
                  },
                  "yarn_icon": {
                    "type": "string",
                    "title": "Yarn Icon",
                    "description": "Icon/text to use for Yarn",
                    "default": " \uF61A"
                  },
                  "npm_icon": {
                    "type": "string",
                    "title": "NPM Icon",
                    "description": "Icon/text to use for NPM",
                    "default": " \uE71E"
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "azfunc"
              }
            }
          },
          "then": {
            "title": "Azure Function Segment",
            "description": "https://ohmyposh.dev/docs/segments/azfunc",
            "properties": {
              "properties": {
                "properties": {
                  "home_enabled": {
                    "$ref": "#/definitions/home_enabled"
                  },
                  "fetch_version": {
                    "$ref": "#/definitions/fetch_version"
                  },
                  "display_mode": {
                    "$ref": "#/definitions/display_mode"
                  },
                  "missing_command_text": {
                    "$ref": "#/definitions/missing_command_text"
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "os"
              }
            }
          },
          "then": {
            "title": "Operating System Segment",
            "description": "https://ohmyposh.dev/docs/segments/os",
            "properties": {
              "properties": {
                "properties": {
                  "macos": {
                    "type": "string",
                    "title": "MacOS Icon",
                    "description": "Icon/text to use for macOS",
                    "default": "\uF179"
                  },
                  "linux": {
                    "type": "string",
                    "title": "Linux Icon",
                    "description": "Icon/text to use for Linux",
                    "default": "\uF17C"
                  },
                  "windows": {
                    "type": "string",
                    "title": "Windows Icon",
                    "description": "Icon/text to use for Windows",
                    "default": "\uE62A"
                  },
                  "display_distro_name": {
                    "type": "boolean",
                    "title": "Display Distro Name",
                    "description": "Display the distro name or icon or not",
                    "default": false
                  },
                  "alpine": {
                    "type": "string",
                    "title": "Alpine Icon",
                    "description": "The icon to use for Alpine",
                    "default": "\uF300"
                  },
                  "aosc": {
                    "type": "string",
                    "title": "Aosc Icon",
                    "description": "The icon to use for Aosc",
                    "default": "\uF301"
                  },
                  "arch": {
                    "type": "string",
                    "title": "Arch Icon",
                    "description": "The icon to use for Arch",
                    "default": "\uF303"
                  },
                  "centos": {
                    "type": "string",
                    "title": "Centos Icon",
                    "description": "The icon to use for Centos",
                    "default": "\uF303"
                  },
                  "coreos": {
                    "type": "string",
                    "title": "Coreos Icon",
                    "description": "The icon to use for Coreos",
                    "default": "\uF305"
                  },
                  "debian": {
                    "type": "string",
                    "title": "Debian Icon",
                    "description": "The icon to use for Debian",
                    "default": "\uF306"
                  },
                  "devuan": {
                    "type": "string",
                    "title": "Devuan Icon",
                    "description": "The icon to use for Devuan",
                    "default": "\uF307"
                  },
                  "raspbian": {
                    "type": "string",
                    "title": "Raspbian Icon",
                    "description": "The icon to use for Raspbian",
                    "default": "\uF315"
                  },
                  "elementary": {
                    "type": "string",
                    "title": "Elementary Icon",
                    "description": "The icon to use for Elementary",
                    "default": "\uF309"
                  },
                  "fedora": {
                    "type": "string",
                    "title": "Fedora Icon",
                    "description": "The icon to use for Fedora",
                    "default": "\uF30a"
                  },
                  "gentoo": {
                    "type": "string",
                    "title": "Gentoo Icon",
                    "description": "The icon to use for Gentoo",
                    "default": "\uF30d"
                  },
                  "mageia": {
                    "type": "string",
                    "title": "Mageia Icon",
                    "description": "The icon to use for Mageia",
                    "default": "\uF310"
                  },
                  "manjaro": {
                    "type": "string",
                    "title": "Manjaro Icon",
                    "description": "The icon to use for Manjaro",
                    "default": "\uF312"
                  },
                  "mint": {
                    "type": "string",
                    "title": "Mint Icon",
                    "description": "The icon to use for Mint",
                    "default": "\uF30e"
                  },
                  "nixos": {
                    "type": "string",
                    "title": "Nixos Icon",
                    "description": "The icon to use for Nixos",
                    "default": "\uF313"
                  },
                  "opensuse": {
                    "type": "string",
                    "title": "Opensuse Icon",
                    "description": "The icon to use for Opensuse",
                    "default": "\uF314"
                  },
                  "sabayon": {
                    "type": "string",
                    "title": "Sabayon Icon",
                    "description": "The icon to use for Sabayon",
                    "default": "\uF317"
                  },
                  "slackware": {
                    "type": "string",
                    "title": "Slackware Icon",
                    "description": "The icon to use for Slackware",
                    "default": "\uF319"
                  },
                  "ubuntu": {
                    "type": "string",
                    "title": "Ubuntu Icon",
                    "description": "The icon to use for Ubuntu",
                    "default": "\uF31b"
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "path"
              }
            }
          },
          "then": {
            "title": "Path Segment",
            "description": "https://ohmyposh.dev/docs/segments/path",
            "properties": {
              "properties": {
                "properties": {
                  "folder_separator_icon": {
                    "type": "string",
                    "title": "Folder Separator Icon",
                    "description": "The symbol to use as a separator between folders",
                    "default": "/"
                  },
                  "home_icon": {
                    "type": "string",
                    "title": "Home Icon",
                    "description": "The icon to display when at $HOME",
                    "default": "/"
                  },
                  "folder_icon": {
                    "type": "string",
                    "title": "Folder Icon",
                    "description": "The icon to use as a folder indication",
                    "default": ".."
                  },
                  "windows_registry_icon": {
                    "type": "string",
                    "title": "Windows Registry Icon",
                    "description": "The icon to display when in the Windows registry",
                    "default": "\uE0B1"
                  },
                  "style": {
                    "type": "string",
                    "title": "The Path Style",
                    "description": "How to display the current path",
                    "enum": [
                      "agnoster",
                      "agnoster_full",
                      "agnoster_short",
                      "agnoster_left",
                      "short",
                      "full",
                      "folder",
                      "mixed",
                      "letter",
                      "unique"
                    ],
                    "default": "folder"
                  },
                  "mapped_locations": {
                    "type": "object",
                    "title": "Mapped Locations",
                    "description": "Custom glyph/text for specific paths",
                    "default": {}
                  },
                  "max_depth": {
                    "type": "integer",
                    "title": "Maximum Depth",
                    "description": "Maximum path depth to display without shortening",
                    "default": 1
                  },
                  "mapped_locations_enabled": {
                    "type": "boolean",
                    "title": "Enable the Mapped Locations feature",
                    "description": "Replace known locations in the path with the replacements before applying the style.",
                    "default": true
                  },
                  "mixed_threshold": {
                    "type": "integer",
                    "title": "Mixed threshold",
                    "description": "The maximum length of a path segment that will be displayed when using mixed style.",
                    "default": 4
                  },
                  "hide_root_location": {
                    "type": "boolean",
                    "title": "Hide the root location",
                    "description": "Hides the root location, when using agnoster_short style, if it doesn't fit in the last max_depth folders.",
                    "default": false
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "python"
              }
            }
          },
          "then": {
            "title": "Python Segment",
            "description": "https://ohmyposh.dev/docs/segments/python",
            "properties": {
              "properties": {
                "properties": {
                  "home_enabled": {
                    "$ref": "#/definitions/home_enabled"
                  },
                  "fetch_virtual_env": {
                    "type": "boolean",
                    "title": "Fetch Virtual Env",
                    "description": "Fetch the name of the virtualenv or not",
                    "default": true
                  },
                  "display_default": {
                    "type": "boolean",
                    "title": "Display Default",
                    "description": "Show the name of the virtualenv when it's default",
                    "default": true
                  },
                  "fetch_version": {
                    "$ref": "#/definitions/fetch_version"
                  },
                  "display_mode": {
                    "$ref": "#/definitions/display_mode"
                  },
                  "missing_command_text": {
                    "$ref": "#/definitions/missing_command_text"
                  },
                  "version_url_template": {
                    "$ref": "#/definitions/version_url_template"
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "root"
              }
            }
          },
          "then": {
            "title": "Root Segment",
            "description": "https://ohmyposh.dev/docs/segments/root"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "session"
              }
            }
          },
          "then": {
            "title": "Session Segment",
            "description": "https://ohmyposh.dev/docs/segments/session",
            "properties": {
              "properties": {
                "properties": {
                  "ssh_icon": {
                    "type": "string",
                    "title": "SSH Icon",
                    "description": "Text/icon to display first when in an active SSH session",
                    "default": "\uF817"
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "shell"
              }
            }
          },
          "then": {
            "title": "Shell Segment",
            "description": "https://ohmyposh.dev/docs/segments/shell",
            "properties": {
              "properties": {
                "properties": {
                  "custom_text": {
                    "type": "object",
                    "title": "Custom Text",
                    "description": "Custom glyph/text for specific shells",
                    "default": {}
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "spotify"
              }
            }
          },
          "then": {
            "title": "Spotify Segment",
            "description": "https://ohmyposh.dev/docs/segments/spotify",
            "properties": {
              "properties": {
                "properties": {
                  "playing_icon": {
                    "type": "string",
                    "title": "User Info Separator",
                    "description": "Text/icon to show when playing",
                    "default": "\uE602"
                  },
                  "paused_icon": {
                    "type": "string",
                    "title": "SSH Icon",
                    "description": "Text/icon to show when paused",
                    "default": "\uF8E3"
                  },
                  "stopped_icon": {
                    "type": "string",
                    "title": "SSH Icon",
                    "description": "Text/icon to show when stopped",
                    "default": "\uF04D"
                  },
                  "track_separator": {
                    "type": "string",
                    "title": "SSH Icon",
                    "description": "Text/icon to put between the artist and song name",
                    "default": " - "
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "terraform"
              }
            }
          },
          "then": {
            "title": "Terraform Segment",
            "description": "https://ohmyposh.dev/docs/segments/terraform"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "text"
              }
            }
          },
          "then": {
            "title": "Text Segment",
            "description": "https://ohmyposh.dev/docs/segments/text",
            "properties": {
              "properties": {
                "properties": {
                  "text": {
                    "type": "string",
                    "title": "Text",
                    "description": "Text/icon to display",
                    "default": ""
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "time"
              }
            }
          },
          "then": {
            "title": "Time Segment",
            "description": "https://ohmyposh.dev/docs/segments/time",
            "properties": {
              "properties": {
                "properties": {
                  "time_format": {
                    "type": "string",
                    "title": "Time Format",
                    "description": "Format to use, follows the golang standard: https://gobyexample.com/time-formatting-parsing",
                    "default": "15:04:05"
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "ytm"
              }
            }
          },
          "then": {
            "title": "YouTube Music Desktop App Segment",
            "description": "https://ohmyposh.dev/docs/segments/ytm",
            "properties": {
              "properties": {
                "properties": {
                  "playing_icon": {
                    "type": "string",
                    "title": "User Info Separator",
                    "description": "Text/icon to show when playing",
                    "default": "\uE602"
                  },
                  "paused_icon": {
                    "type": "string",
                    "title": "SSH Icon",
                    "description": "Text/icon to show when paused",
                    "default": "\uF8E3"
                  },
                  "stopped_icon": {
                    "type": "string",
                    "title": "SSH Icon",
                    "description": "Text/icon to show when stopped",
                    "default": "\uF04D"
                  },
                  "track_separator": {
                    "type": "string",
                    "title": "SSH Icon",
                    "description": "Text/icon to put between the artist and song name",
                    "default": " - "
                  },
                  "api_url": {
                    "type": "string",
                    "title": "API URL",
                    "description": "The YTMDA Remote Control API URL",
                    "default": "http://127.0.0.1:9863"
                  },
                  "http_timeout": {
                    "$ref": "#/definitions/http_timeout"
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "owm"
              }
            }
          },
          "then": {
            "title": "Open Weather Map Segment",
            "description": "Displays the current weather from the Open Weather Map system",
            "properties": {
              "properties": {
                "properties": {
                  "apikey": {
                    "type": "string",
                    "title": "apikey",
                    "description": "The apikey used for the api call (Required)",
                    "default": "."
                  },
                  "location": {
                    "type": "string",
                    "title": "location",
                    "description": "Location to use for the api call. Formatted as <City>,<STATE>,<COUNTRY_CODE>. City name, state code and country code divided by comma. Please, refer to ISO 3166 for the state codes or country codes.",
                    "default": "De Bilt,NL"
                  },
                  "units": {
                    "type": "string",
                    "title": "units",
                    "description": "Units of measurement. Available values are standard (kelvin), metric (celsius), and imperial (fahrenheit). Default is standard",
                    "default": "standard",
                    "enum": ["standard", "metric", "imperial"]
                  },
                  "http_timeout": {
                    "$ref": "#/definitions/http_timeout"
                  },
                  "cache_timeout": {
                    "type": "integer",
                    "title": "cache timeout",
                    "description": "The number of minutes the response is cached. A value of 0 disables the cache.",
                    "default": 10
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "executiontime"
              }
            }
          },
          "then": {
            "title": "Displays the execution time of the previously executed command",
            "description": "https://ohmyposh.dev/docs/segments/executiontime",
            "properties": {
              "properties": {
                "properties": {
                  "always_enabled": {
                    "type": "boolean",
                    "title": "Always Enabled",
                    "description": "Always show the duration",
                    "default": false
                  },
                  "threshold": {
                    "type": "number",
                    "title": "Threshold",
                    "description": "minimum duration (milliseconds) required to enable this segment",
                    "default": 500
                  },
                  "style": {
                    "type": "string",
                    "title": "Style",
                    "description": "The style in which the time will be displayed",
                    "enum": [
                      "austin",
                      "roundrock",
                      "dallas",
                      "galveston",
                      "houston",
                      "amarillo",
                      "round"
                    ],
                    "default": "austin"
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "poshgit"
              }
            }
          },
          "then": {
            "title": "Posh-Git Segment",
            "description": "https://ohmyposh.dev/docs/segments/poshgit"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "sysinfo"
              }
            }
          },
          "then": {
            "title": "Get sysinfo",
            "description": "https://ohmyposh.dev/docs/segments/sysinfo",
            "properties": {
              "properties": {
                "properties": {
                  "precision": {
                    "type": "integer",
                    "title": "Precision",
                    "description": "number of decimal places to show",
                    "default": 0
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "strava"
              }
            }
          },
          "then": {
            "title": "Display training data from Strava",
            "description": "https://ohmyposh.dev/docs/segments/strava",
            "properties": {
              "properties": {
                "properties": {
                  "url": {
                    "type": "string",
                    "title": "URL of API with Strava data",
                    "description": "Url of your api provinding a Strava activity",
                    "default": ""
                  },
                  "ride_icon": {
                    "type": "string",
                    "title": "Alternative icon",
                    "description": "Alternative icon for this activity type",
                    "default": "\uf5a2"
                  },
                  "run_icon": {
                    "type": "string",
                    "title": "Alternative icon",
                    "description": "Alternative icon for this activity type",
                    "default": "\ufc0c"
                  },
                  "skiing_icon": {
                    "type": "string",
                    "title": "Alternative icon",
                    "description": "Alternative icon for this activity type",
                    "default": "\ue213"
                  },
                  "workout_icon": {
                    "type": "string",
                    "title": "Alternative icon",
                    "description": "Alternative icon for this activity type",
                    "default": "\ue213"
                  },
                  "unknown_activity_icon": {
                    "type": "string",
                    "title": "Fallback icon",
                    "description": "Fallback icon for other activity types",
                    "default": "\ue213"
                  },
                  "http_timeout": {
                    "$ref": "#/definitions/http_timeout"
                  },
                  "cache_timeout": {
                    "type": "integer",
                    "title": "cache timeout",
                    "description": "The number of minutes the response is cached. A value of 0 disables the cache.",
                    "default": 10
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "svn"
              }
            }
          },
          "then": {
            "title": "SVN Segment",
            "description": "https://ohmyposh.dev/docs/segments/svn",
            "properties": {
              "properties": {
                "properties": {
                  "fetch_status": {
                    "type": "boolean",
                    "title": "Display Status",
                    "description": "Display the local changes or not",
                    "default": true
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "angular"
              }
            }
          },
          "then": {
            "title": "Angular CLI Segment",
            "description": "https://ohmyposh.dev/docs/segments/angular",
            "properties": {
              "properties": {
                "properties": {
                  "home_enabled": {
                    "$ref": "#/definitions/home_enabled"
                  },
                  "fetch_version": {
                    "$ref": "#/definitions/fetch_version"
                  },
                  "display_mode": {
                    "$ref": "#/definitions/display_mode"
                  },
                  "version_url_template": {
                    "$ref": "#/definitions/version_url_template"
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "nx"
              }
            }
          },
          "then": {
            "title": "Nx Segment",
            "description": "https://ohmyposh.dev/docs/segments/nx",
            "properties": {
              "properties": {
                "properties": {
                  "home_enabled": {
                    "$ref": "#/definitions/home_enabled"
                  },
                  "fetch_version": {
                    "$ref": "#/definitions/fetch_version"
                  },
                  "display_mode": {
                    "$ref": "#/definitions/display_mode"
                  },
                  "version_url_template": {
                    "$ref": "#/definitions/version_url_template"
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "wakatime"
              }
            }
          },
          "then": {
            "title": "Wakatime",
            "description": "Displays the tracked time on wakatime.com",
            "properties": {
              "properties": {
                "properties": {
                  "apikey": {
                    "type": "string",
                    "title": "apikey",
                    "description": "The apikey used for the api call (Required)",
                    "default": "."
                  },
                  "http_timeout": {
                    "$ref": "#/definitions/http_timeout"
                  },
                  "cache_timeout": {
                    "type": "integer",
                    "title": "cache timeout",
                    "description": "The number of minutes the response is cached. A value of 0 disables the cache.",
                    "default": 10
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "wifi"
              }
            }
          },
          "then": {
            "title": "WiFi Segment",
            "description": "https://ohmyposh.dev/docs/segments/wifi"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "winreg"
              }
            }
          },
          "then": {
            "title": "Windows Registry Query",
            "description": "https://ohmyposh.dev/docs/segments/winreg",
            "properties": {
              "properties": {
                "properties": {
                  "path": {
                    "type": "string",
                    "title": "Registry Path",
                    "description": "The path to the registry key (case insensitive, must use backslashes).  Ending with \\ will retrieve \"(Default)\" key in that path.",
                    "default": ""
                  },
                  "fallback": {
                    "type": "string",
                    "title": "Fallback value",
                    "description": "Value to display if registry value cannot be retrieved",
                    "default": ""
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "plastic"
              }
            }
          },
          "then": {
            "title": "Plastic SCM Segment",
            "description": "https://ohmyposh.dev/docs/segments/plastic",
            "properties": {
              "properties": {
                "properties": {
                  "fetch_status": {
                    "type": "boolean",
                    "title": "Display Status",
                    "description": "Display the local changes or not",
                    "default": false
                  },
                  "branch_icon": {
                    "type": "string",
                    "title": "Branch Icon",
                    "description": "The icon to use in front of the selector branch name",
                    "default": "\uE0A0 "
                  },
                  "commit_icon": {
                    "type": "string",
                    "title": "Commit Icon",
                    "description": "Icon/text to display before the selector changeset",
                    "default": "\uF417"
                  },
                  "tag_icon": {
                    "type": "string",
                    "title": "Tag Icon",
                    "description": "Icon/text to display before the seletor label",
                    "default": "\uF412"
                  },
                  "branch_max_length": {
                    "type": "integer",
                    "title": "Branch max length",
                    "description": "the max length for the displayed branch name where 0 implies full length",
                    "default": 0
                  },
                  "full_branch_path": {
                    "type": "boolean",
                    "title": "Full branch path",
                    "description": "display the full branch path instead of only the branch name",
                    "default": false
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "brewfather"
              }
            }
          },
          "then": {
            "title": "Brewfather Batch Status",
            "description": "https://ohmyposh.dev/docs/brewfather",
            "properties": {
              "properties": {
                "properties": {
                  "user_id": {
                    "type": "string",
                    "title": "Brewfather UserID (required)",
                    "description": "Provided by Brewfather's Generate API Key settings option",
                    "default": ""
                  },
                  "api_key": {
                    "type": "string",
                    "title": "Brewfather API Key (required)",
                    "description": "Provided by Brewfather's Generate API Key settings option",
                    "default": ""
                  },
                  "batch_id": {
                    "type": "string",
                    "title": "ID of the batch in Brewfather (required)",
                    "description": "At the end of the URL when viewing the batch on the Brewfather site",
                    "default": ""
                  },
                  "day_icon": {
                    "type": "string",
                    "title": "Icon to use to indicate days",
                    "description": "Appended to a number to indicate days, e.g. 25d",
                    "default": "d"
                  },
                  "http_timeout": {
                    "$ref": "#/definitions/http_timeout"
                  },
                  "cache_timeout": {
                    "type": "integer",
                    "title": "cache timeout in minutes",
                    "description": "The number of minutes the response is cached. A value of 0 disables the cache.",
                    "default": 5
                  },
                  "doubleup_icon": {
                    "type": "string",
                    "title": "Temperature trend icon, very high positive change",
                    "description": "Delta between this and prior temperature reading is very high (> 4C by default), available intemplate as .TemperatureTrend",
                    "default": "↑↑"
                  },
                  "singleup_icon": {
                    "type": "string",
                    "title": "Temperature trend icon, high positive change",
                    "description": "Delta between this and prior temperature reading is high (2C < delta < 4C by default), available intemplate as .TemperatureTrend",
                    "default": "↑"
                  },
                  "fortyfiveup_icon": {
                    "type": "string",
                    "title": "Temperature trend icon, positive change",
                    "description": "Delta between this and prior temperature reading is positive (0.5C < delta < 2C by default), available intemplate as .TemperatureTrend",
                    "default": "↗"
                  },
                  "flat_icon": {
                    "type": "string",
                    "title": "Temperature trend icon, flat/small change",
                    "description": "Delta between this and prior temperature and this temperature reading (< +-0.5C change), available intemplate as .TemperatureTrend",
                    "default": "→"
                  },
                  "fortyfivedown_icon": {
                    "type": "string",
                    "title": "Temperature trend icon, v. negative change",
                    "description": "Delta between this and prior temperature reading is negative (-0.5C > delta > -2C by default), available intemplate as .TemperatureTrend",
                    "default": "↘"
                  },
                  "singledown_icon": {
                    "type": "string",
                    "title": "Temperature trend icon, high negative change",
                    "description": "Delta between this and prior temperature reading is large negative (-2C > delta > -4C by default), available intemplate as .TemperatureTrend",
                    "default": "↓"
                  },
                  "doubledown_icon": {
                    "type": "string",
                    "title": "Temperature trend icon, very high negative change",
                    "description": "Delta between this and prior temperature reading is very large negative (> -4C by default), available intemplate as .TemperatureTrend",
                    "default": "↓↓"
                  },
                  "planning_status_icon": {
                    "type": "string",
                    "title": "Icon for batch in planning",
                    "description": "Available in template as .StatusIcon",
                    "default": "\uF8EA"
                  },
                  "brewing_status_icon": {
                    "type": "string",
                    "title": "Icon for batch being brewed",
                    "description": "Available in template as .StatusIcon",
                    "default": "\uF7DE"
                  },
                  "fermenting_status_icon": {
                    "type": "string",
                    "title": "Icon for batch fermenting",
                    "description": "Available in template as .StatusIcon",
                    "default": "\uF499"
                  },
                  "conditioning_status_icon": {
                    "type": "string",
                    "title": "Icon for batch conditioning",
                    "description": "Available in template as .StatusIcon",
                    "default": "\uE372"
                  },
                  "completed_status_icon": {
                    "type": "string",
                    "title": "Icon for completed batch",
                    "description": "Available in template as .StatusIcon",
                    "default": "\uF7A5"
                  },
                  "archived_status_icon": {
                    "type": "string",
                    "title": "Icon for archived batch",
                    "description": "Available in template as .StatusIcon",
                    "default": "\uF187"
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "ipify"
              }
            }
          },
          "then": {
            "title": "Display your external IP Address",
            "description": "https://ohmyposh.dev/docs/segments/ipify",
            "properties": {
              "properties": {
                "properties": {
                  "url": {
                    "type": "string",
                    "title": "URL",
                    "description": "The Ipify API URL",
                    "default": "https://api.ipify.org"
                  },
                  "http_timeout": {
                    "$ref": "#/definitions/http_timeout"
                  },
                  "cache_timeout": {
                    "type": "integer",
                    "title": "cache timeout",
                    "description": "The number of minutes the response is cached. A value of 0 disables the cache.",
                    "default": 10
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "haskell"
              }
            }
          },
          "then": {
            "title": "Haskell Segment",
            "description": "https://ohmyposh.dev/docs/segments/haskell",
            "properties": {
              "properties": {
                "properties": {
                  "home_enabled": {
                    "$ref": "#/definitions/home_enabled"
                  },
                  "fetch_version": {
                    "$ref": "#/definitions/fetch_version"
                  },
                  "display_mode": {
                    "$ref": "#/definitions/display_mode"
                  },
                  "missing_command_text": {
                    "$ref": "#/definitions/missing_command_text"
                  },
                  "version_url_template": {
                    "$ref": "#/definitions/version_url_template"
                  },
                  "stack_ghc_mode": {
                    "type": "string",
                    "title": "Use Stack GHC",
                    "description": "Get the GHC version used by Stack. Will decrease performance. Boolean indicating whether stack ghc was used available in template as .StackGhc",
                    "enum": ["always", "package", "never"],
                    "default": "never"
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "ui5tooling"
              }
            }
          },
          "then": {
            "title": "UI5 tooling CLI segment",
            "description": "https://ohmyposh.dev/docs/segments/ui5tooling",
            "properties": {
              "properties": {
                "properties": {
                  "home_enabled": {
                    "$ref": "#/definitions/home_enabled"
                  },
                  "fetch_version": {
                    "$ref": "#/definitions/fetch_version"
                  },
                  "display_mode": {
                    "$ref": "#/definitions/display_mode"
                  },
                  "missing_command_text": {
                    "$ref": "#/definitions/missing_command_text"
                  },
                  "version_url_template": {
                    "$ref": "#/definitions/version_url_template"
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "cf"
              }
            }
          },
          "then": {
            "title": "Clound Foundry CLI segment",
            "description": "https://ohmyposh.dev/docs/segments/cf",
            "properties": {
              "properties": {
                "properties": {
                  "home_enabled": {
                    "$ref": "#/definitions/home_enabled"
                  },
                  "fetch_version": {
                    "$ref": "#/definitions/fetch_version"
                  },
                  "display_mode": {
                    "$ref": "#/definitions/display_mode"
                  },
                  "missing_command_text": {
                    "$ref": "#/definitions/missing_command_text"
                  },
                  "version_url_template": {
                    "$ref": "#/definitions/version_url_template"
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "cftarget"
              }
            }
          },
          "then": {
            "title": "Clound Foundry Target segment",
            "description": "https://ohmyposh.dev/docs/segments/cftarget"
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "kotlin"
              }
            }
          },
          "then": {
            "title": "Kotlin Segment",
            "description": "https://ohmyposh.dev/docs/segments/kotlin",
            "properties": {
              "properties": {
                "properties": {
                  "home_enabled": {
                    "$ref": "#/definitions/home_enabled"
                  },
                  "fetch_version": {
                    "$ref": "#/definitions/fetch_version"
                  },
                  "display_mode": {
                    "$ref": "#/definitions/display_mode"
                  },
                  "missing_command_text": {
                    "$ref": "#/definitions/missing_command_text"
                  },
                  "version_url_template": {
                    "$ref": "#/definitions/version_url_template"
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "swift"
              }
            }
          },
          "then": {
            "title": "Swift Segment",
            "description": "https://ohmyposh.dev/docs/segments/swift",
            "properties": {
              "properties": {
                "properties": {
                  "home_enabled": {
                    "$ref": "#/definitions/home_enabled"
                  },
                  "fetch_version": {
                    "$ref": "#/definitions/fetch_version"
                  },
                  "display_mode": {
                    "$ref": "#/definitions/display_mode"
                  },
                  "missing_command_text": {
                    "$ref": "#/definitions/missing_command_text"
                  },
                  "version_url_template": {
                    "$ref": "#/definitions/version_url_template"
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "cds"
              }
            }
          },
          "then": {
            "title": "CDS (SAP CAP) segment",
            "description": "https://ohmyposh.dev/docs/segments/cds",
            "properties": {
              "properties": {
                "properties": {
                  "home_enabled": {
                    "$ref": "#/definitions/home_enabled"
                  },
                  "fetch_version": {
                    "$ref": "#/definitions/fetch_version"
                  },
                  "display_mode": {
                    "$ref": "#/definitions/display_mode"
                  },
                  "missing_command_text": {
                    "$ref": "#/definitions/missing_command_text"
                  }
                }
              }
            }
          }
        },
        {
          "if": {
            "properties": {
              "type": {
                "const": "r"
              }
            }
          },
          "then": {
            "title": "R Segment",
            "description": "https://ohmyposh.dev/docs/segments/r",
            "properties": {
              "properties": {
                "properties": {
                  "home_enabled": {
                    "$ref": "#/definitions/home_enabled"
                  },
                  "fetch_version": {
                    "$ref": "#/definitions/fetch_version"
                  },
                  "display_mode": {
                    "$ref": "#/definitions/display_mode"
                  },
                  "missing_command_text": {
                    "$ref": "#/definitions/missing_command_text"
                  },
                  "version_url_template": {
                    "$ref": "#/definitions/version_url_template"
                  }
                }
              }
            }
          }
        }
      ]
    }
  },
  "required": ["blocks"],
  "properties": {
    "final_space": {
      "type": "boolean",
      "title": "Final Space",
      "description": "https://ohmyposh.dev/docs/configuration/overview#general-settings",
      "default": true
    },
    "osc99": {
      "type": "boolean",
      "title": "Enable OSC99",
      "description": "https://ohmyposh.dev/docs/configuration/overview#general-settings",
      "default": false
    },
    "console_title_template": {
      "type": "string",
      "title": "Console Title Template",
      "description": "https://ohmyposh.dev/docs/configuration/title#console-title-template",
      "default": "{{ .Shell }} in {{ .Folder }}"
    },
    "terminal_background": {
      "$ref": "#/definitions/color"
    },
    "blocks": {
      "type": "array",
      "title": "Block array",
      "default": [],
      "description": "https://ohmyposh.dev/docs/configuration/overview#blocks",
      "items": {
        "$ref": "#/definitions/block"
      }
    },
    "tooltips": {
      "type": "array",
      "title": "Tooltip list, prompt elements to display based on context",
      "description": "https://ohmyposh.dev/docs/configuration/tooltips",
      "default": [],
      "items": {
        "allOf": [
          {
            "$ref": "#/definitions/segment"
          }
        ],
        "properties": {
          "tips": {
            "type": "array",
            "title": "The commands for which you want the segment to show",
            "items": {
              "type": "string"
            }
          }
        },
        "required": ["tips"]
      }
    },
    "transient_prompt": {
      "$ref": "#/definitions/extra_prompt",
      "title": "Transient Prompt Setting",
      "description": "https://ohmyposh.dev/docs/configuration/transient"
    },
    "valid_line": {
      "$ref": "#/definitions/extra_prompt",
      "title": "Valid Prompt Setting",
      "description": "https://ohmyposh.dev/docs/configuration/prompt-override"
    },
    "error_line": {
      "$ref": "#/definitions/extra_prompt",
      "title": "Error Prompt Setting",
      "description": "https://ohmyposh.dev/docs/configuration/prompt-override"
    },
    "secondary_prompt": {
      "$ref": "#/definitions/extra_prompt",
      "title": "Secondary Prompt Setting",
      "description": "https://ohmyposh.dev/docs/configuration/secondary-prompt"
    },
    "palette": {
      "type": "object",
      "title": "Palette",
      "description": "https://ohmyposh.dev/docs/configuration/colors#palette",
      "default": {},
      "patternProperties": {
        ".*": {
          "$ref": "#/definitions/color"
        }
      }
    },
    "accent_color": {
      "title": "Accent color",
      "$ref": "#/definitions/color"
    }
  }
}
