JanDeDobbeleer / oh-my-posh

The most customisable and low-latency cross platform/shell prompt renderer
https://ohmyposh.dev
MIT License
17.02k stars 2.37k forks source link

Special characters in path [Windows] #2793

Closed raulrm00 closed 2 years ago

raulrm00 commented 2 years ago

Code of Conduct

What happened?

If you have a Windows user with special characters in folder name, program can't be init with powershell config. Invoke-Expression calls will fail oh-my-posh_crash

Theme

all themes using default path could not be loaded

What OS are you seeing the problem on?

Windows

Which shell are you using?

powershell

Log output

Version: 9.3.0

Segments:

ConsoleTitle(true) -   0 ms - pwsh in RaúlRodríguez
session(true)  -   0 ms -  RaúlRodríguez 
path(true)     -   2 ms -   ~
git(false)     -   7 ms -
root(false)    -   0 ms -
exit(true)     -   0 ms -   
node(false)    -   0 ms -
go(false)      -   0 ms -
python(false)  -   0 ms -
shell(true)    -   0 ms - in pwsh
time(true)     -   0 ms - at 16:17:51

Run duration: 540.1339ms

Cache path: C:\Users\RaúlRodríguez\AppData\Local\oh-my-posh

Config path: C:\Users\RaúlRodríguez\AppData\Local\oh-my-posh\config.omp.json

Logs:

2022/09/15 16:17:50 debug: Getenv
C:\Users\RaúlRodríguez\AppData\Local
2022/09/15 16:17:50 Getenv duration: 0s, args: LOCALAPPDATA
2022/09/15 16:17:50 CachePath duration: 0s, args:
2022/09/15 16:17:50 debug: Getenv

2022/09/15 16:17:50 Getenv duration: 0s, args: POSH_THEME
2022/09/15 16:17:50 debug: Getenv
C:\Users\RaúlRodríguez\AppData\Local
2022/09/15 16:17:50 Getenv duration: 0s, args: LOCALAPPDATA
2022/09/15 16:17:50 CachePath duration: 0s, args:
2022/09/15 16:17:50 debug: HTTPRequest
GET /JanDeDobbeleer/oh-my-posh/v9.3.0/themes/default.omp.json HTTP/1.1
Host: raw.githubusercontent.com
User-Agent: Go-http-client/1.1
Accept-Encoding: gzip

2022/09/15 16:17:51 debug: HTTPRequest
{
  "$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json",
  "blocks": [
    {
      "alignment": "left",
      "segments": [
        {
          "background": "p:yellow",
          "foreground": "p:black",
          "leading_diamond": "\ue0b6",
          "properties": {
            "display_host": false
          },
          "style": "diamond",
          "template": " {{ if .SSHSession }}\uf817 {{ end }}{{ .UserName }} ",
          "trailing_diamond": "\ue0b0",
          "type": "session"
        },
        {
          "background": "p:orange",
          "foreground": "p:white",
          "powerline_symbol": "\ue0b0",
          "properties": {
            "home_icon": "~",
            "style": "folder"
          },
          "style": "powerline",
          "template": " \uf74a {{ path .Path .Location }} ",
          "type": "path"
        },
        {
          "background": "p:green",
          "background_templates": [
            "{{ if or (.Working.Changed) (.Staging.Changed) }}p:yellow{{ end }}",
            "{{ if and (gt .Ahead 0) (gt .Behind 0) }}p:red{{ end }}",
            "{{ if gt .Ahead 0 }}#49416D{{ end }}",
            "{{ if gt .Behind 0 }}#7A306C{{ end }}"
          ],
          "foreground": "p:black",
          "foreground_templates": [
            "{{ if or (.Working.Changed) (.Staging.Changed) }}p:black{{ end }}",
            "{{ if and (gt .Ahead 0) (gt .Behind 0) }}p:white{{ end }}",
            "{{ if gt .Ahead 0 }}p:white{{ end }}"
          ],
          "powerline_symbol": "\ue0b0",
          "properties": {
            "branch_max_length": 25,
            "fetch_status": true,
            "fetch_upstream_icon": true,
            "github_icon": "\uf7a3"
          },
          "style": "powerline",
          "template": " {{ if .UpstreamURL }}{{ url .UpstreamIcon .UpstreamURL }} {{ end }}{{ .HEAD }}{{if .BranchStatus }} {{ .BranchStatus }}{{ end }}{{ if .Working.Changed }} \uf044 {{ .Working.String }}{{ end }}{{ if .Staging.Changed }} \uf046 {{ .Staging.String }}{{ end }} ",
          "type": "git"
        },
        {
          "background": "p:yellow",
          "foreground": "p:white",
          "powerline_symbol": "\ue0b0",
          "properties": {
            "root_icon": "\uf0ad"
          },
          "style": "powerline",
          "template": " \uf0e7 ",
          "type": "root"
        },
        {
          "background": "p:blue",
          "background_templates": [
            "{{ if gt .Code 0 }}p:red{{ end }}"
          ],
          "foreground": "p:white",
          "leading_diamond": "<transparent,background>\ue0b0</>",
          "properties": {
            "always_enabled": true
          },
          "style": "diamond",
          "template": " {{ if gt .Code 0 }}\uf00d{{ else }}\uf00c{{ end }} ",
          "trailing_diamond": "\ue0b4",
          "type": "exit"
        }
      ],
      "type": "prompt"
    },
    {
      "segments": [
        {
          "background": "transparent",
          "foreground": "p:green",
          "properties": {
            "display_mode": "files",
            "fetch_package_manager": false,
            "home_enabled": false
          },
          "style": "plain",
          "template": "\uf898 ",
          "type": "node"
        },
        {
          "background": "transparent",
          "foreground": "p:blue",
          "properties": {
            "fetch_version": false
          },
          "style": "powerline",
          "template": "\ufcd1 ",
          "type": "go"
        },
        {
          "background": "transparent",
          "foreground": "p:yellow",
          "properties": {
            "display_mode": "files",
            "fetch_version": true,
            "fetch_virtual_env": false
          },
          "style": "plain",
          "template": "\ue235 ",
          "type": "python"
        },
        {
          "background": "transparent",
          "foreground": "p:white",
          "style": "plain",
          "template": "in <p:blue><b>{{ .Name }}</b></> ",
          "type": "shell"
        },
        {
          "background": "transparent",
          "foreground": "p:white",
          "style": "plain",
          "template": "at <p:blue><b>{{ .CurrentDate | date \"15:04:05\" }}</b></>",
          "type": "time"
        }
      ],
      "type": "rprompt"
    }
  ],
  "console_title_template": "{{ .Shell }} in {{ .Folder }}",
  "final_space": true,
  "palette": {
    "black": "#262B44",
    "blue": "#4B95E9",
    "green": "#59C9A5",
    "orange": "#F07623",
    "red": "#D81E5B",
    "white": "#E0DEF4",
    "yellow": "#F3AE35"
  },
  "secondary_prompt": {
    "background": "transparent",
    "foreground": "p:black",
    "template": "<p:yellow,transparent>\ue0b6</><,p:yellow> > </><p:yellow,transparent>\ue0b0</> "
  },
  "tooltips": [
    {
      "background": "p:orange",
      "foreground": "p:white",
      "leading_diamond": "\ue0b6",
      "properties": {
        "display_default": true
      },
      "style": "diamond",
      "template": " \ue7ad {{ .Profile }}{{ if .Region }}@{{ .Region }}{{ end }} ",
      "tips": [
        "aws"
      ],
      "trailing_diamond": "\ue0b4",
      "type": "aws"
    },
    {
      "background": "p:blue",
      "foreground": "p:white",
      "leading_diamond": "\ue0b6",
      "style": "diamond",
      "template": " \ufd03 {{ .Name }} ",
      "tips": [
        "az"
      ],
      "trailing_diamond": "\ue0b4",
      "type": "az"
    }
  ],
  "transient_prompt": {
    "background": "transparent",
    "foreground": "p:black",
    "template": "<p:yellow,transparent>\ue0b6</><,p:yellow> {{ .Folder }} </><p:yellow,transparent>\ue0b0</> "
  },
  "version": 2
}

2022/09/15 16:17:51 HTTPRequest duration: 514.4508ms, args: https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/v9.3.0/themes/default.omp.json
2022/09/15 16:17:51 downloadConfig duration: 515.4181ms, args: https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/v9.3.0/themes/default.omp.json
2022/09/15 16:17:51 Shell duration: 11.1856ms, args:
2022/09/15 16:17:51 resolveConfigPath duration: 526.6037ms, args:
2022/09/15 16:17:51 Init duration: 526.6037ms, args:
2022/09/15 16:17:51 Flags duration: 0s, args:
2022/09/15 16:17:51 config.loadConfig duration: 670.5µs, args:
2022/09/15 16:17:51 Flags duration: 0s, args:
2022/09/15 16:17:51 debug: Getenv

2022/09/15 16:17:51 Getenv duration: 0s, args: OMP_CACHE_DISABLED
2022/09/15 16:17:51 WindowsRegistryKeyValue duration: 0s, args: HKEY_CURRENT_USER\Software\Microsoft\Windows\DWM\ColorizationColor
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 debug: WindowsRegistryKeyValue
ColorizationColor(DWORD): 0xC40078D4
2022/09/15 16:17:51 Root duration: 0s, args:
2022/09/15 16:17:51 Shell duration: 0s, args:
2022/09/15 16:17:51 ErrorCode duration: 0s, args:
2022/09/15 16:17:51 IsWsl duration: 0s, args:
2022/09/15 16:17:51 debug: Pwd
C:\Users\RaúlRodríguez
2022/09/15 16:17:51 Pwd duration: 0s, args:
2022/09/15 16:17:51 debug: Home
C:\Users\RaúlRodríguez
2022/09/15 16:17:51 debug: Home
C:\Users\RaúlRodríguez
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 debug: User
RaúlRodríguez
2022/09/15 16:17:51 User duration: 0s, args:
2022/09/15 16:17:51 debug: Host
Raul-GINZO
2022/09/15 16:17:51 Host duration: 0s, args:
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 TemplateCache duration: 0s, args:
2022/09/15 16:17:51 Flags duration: 0s, args:
2022/09/15 16:17:51 debug: Pwd
C:\Users\RaúlRodríguez
2022/09/15 16:17:51 Pwd duration: 0s, args:
2022/09/15 16:17:51 debug: Home
C:\Users\RaúlRodríguez
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 debug: Getenv

2022/09/15 16:17:51 Getenv duration: 0s, args: SSH_CONNECTION
2022/09/15 16:17:51 debug: Getenv

2022/09/15 16:17:51 Getenv duration: 0s, args: SSH_CLIENT
2022/09/15 16:17:51 TemplateCache duration: 0s, args:
2022/09/15 16:17:51 TemplateCache duration: 0s, args:
2022/09/15 16:17:51 Shell duration: 0s, args:
2022/09/15 16:17:51 debug: Pwd
C:\Users\RaúlRodríguez
2022/09/15 16:17:51 Pwd duration: 0s, args:
2022/09/15 16:17:51 debug: Home
C:\Users\RaúlRodríguez
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 debug: Pwd
C:\Users\RaúlRodríguez
2022/09/15 16:17:51 Pwd duration: 0s, args:
2022/09/15 16:17:51 Flags duration: 0s, args:
2022/09/15 16:17:51 debug: Pwd
C:\Users\RaúlRodríguez
2022/09/15 16:17:51 Pwd duration: 0s, args:
2022/09/15 16:17:51 debug: Home
C:\Users\RaúlRodríguez
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 PathSeparator duration: 0s, args:
2022/09/15 16:17:51 PathSeparator duration: 0s, args:
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 IsWsl duration: 0s, args:
2022/09/15 16:17:51 StackCount duration: 0s, args:
2022/09/15 16:17:51 DirIsWritable duration: 563.6µs, args:
2022/09/15 16:17:51 TemplateCache duration: 0s, args:
2022/09/15 16:17:51 TemplateCache duration: 0s, args:
2022/09/15 16:17:51 Shell duration: 0s, args:
2022/09/15 16:17:51 debug: Pwd
C:\Users\RaúlRodríguez
2022/09/15 16:17:51 Pwd duration: 0s, args:
2022/09/15 16:17:51 debug: Home
C:\Users\RaúlRodríguez
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 debug: CommandPath
C:\Program Files\Git\cmd\git.exe
2022/09/15 16:17:51 CommandPath duration: 2.6601ms, args: git.exe
2022/09/15 16:17:51 HasCommand duration: 2.6601ms, args: git.exe
2022/09/15 16:17:51 debug: Pwd
C:\Users\RaúlRodríguez
2022/09/15 16:17:51 Pwd duration: 0s, args:
2022/09/15 16:17:51 error: HasParentFilePath
CreateFile C:\.git: El sistema no puede encontrar el archivo especificado.
2022/09/15 16:17:51 HasParentFilePath duration: 4.776ms, args: .git
2022/09/15 16:17:51 debug: Pwd
C:\Users\RaúlRodríguez
2022/09/15 16:17:51 Pwd duration: 0s, args:
2022/09/15 16:17:51 debug: Home
C:\Users\RaúlRodríguez
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 Root duration: 0s, args:
2022/09/15 16:17:51 debug: Pwd
C:\Users\RaúlRodríguez
2022/09/15 16:17:51 Pwd duration: 0s, args:
2022/09/15 16:17:51 debug: Home
C:\Users\RaúlRodríguez
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 ErrorCode duration: 0s, args:
2022/09/15 16:17:51 TemplateCache duration: 0s, args:
2022/09/15 16:17:51 TemplateCache duration: 0s, args:
2022/09/15 16:17:51 Shell duration: 0s, args:
2022/09/15 16:17:51 TemplateCache duration: 0s, args:
2022/09/15 16:17:51 Flags duration: 0s, args:
2022/09/15 16:17:51 debug: Pwd
C:\Users\RaúlRodríguez
2022/09/15 16:17:51 Pwd duration: 0s, args:
2022/09/15 16:17:51 debug: Home
C:\Users\RaúlRodríguez
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 debug: Pwd
C:\Users\RaúlRodríguez
2022/09/15 16:17:51 Pwd duration: 0s, args:
2022/09/15 16:17:51 debug: Home
C:\Users\RaúlRodríguez
2022/09/15 16:17:51 debug: Pwd
C:\Users\RaúlRodríguez
2022/09/15 16:17:51 Pwd duration: 0s, args:
2022/09/15 16:17:51 debug: Home
C:\Users\RaúlRodríguez
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 debug: Pwd
C:\Users\RaúlRodríguez
2022/09/15 16:17:51 Pwd duration: 0s, args:
2022/09/15 16:17:51 debug: Home
C:\Users\RaúlRodríguez
2022/09/15 16:17:51 debug: Pwd
C:\Users\RaúlRodríguez
2022/09/15 16:17:51 Pwd duration: 0s, args:
2022/09/15 16:17:51 debug: Home
C:\Users\RaúlRodríguez
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 debug: Pwd
C:\Users\RaúlRodríguez
2022/09/15 16:17:51 Pwd duration: 0s, args:
2022/09/15 16:17:51 debug: Home
C:\Users\RaúlRodríguez
2022/09/15 16:17:51 debug: Pwd
C:\Users\RaúlRodríguez
2022/09/15 16:17:51 Pwd duration: 0s, args:
2022/09/15 16:17:51 PathSeparator duration: 0s, args:
2022/09/15 16:17:51 debug: HasFiles
false
2022/09/15 16:17:51 HasFiles duration: 0s, args: *.py
2022/09/15 16:17:51 debug: Pwd
C:\Users\RaúlRodríguez
2022/09/15 16:17:51 Pwd duration: 0s, args:
2022/09/15 16:17:51 PathSeparator duration: 0s, args:
2022/09/15 16:17:51 debug: HasFiles
false
2022/09/15 16:17:51 HasFiles duration: 0s, args: *.ipynb
2022/09/15 16:17:51 debug: Pwd
C:\Users\RaúlRodríguez
2022/09/15 16:17:51 Pwd duration: 0s, args:
2022/09/15 16:17:51 PathSeparator duration: 0s, args:
2022/09/15 16:17:51 debug: HasFiles
false
2022/09/15 16:17:51 HasFiles duration: 0s, args: pyproject.toml
2022/09/15 16:17:51 debug: Pwd
C:\Users\RaúlRodríguez
2022/09/15 16:17:51 Pwd duration: 0s, args:
2022/09/15 16:17:51 PathSeparator duration: 0s, args:
2022/09/15 16:17:51 debug: HasFiles
false
2022/09/15 16:17:51 HasFiles duration: 0s, args: venv.bak
2022/09/15 16:17:51 debug: HasFolder
false
2022/09/15 16:17:51 HasFolder duration: 0s, args: .venv
2022/09/15 16:17:51 debug: HasFolder
false
2022/09/15 16:17:51 HasFolder duration: 0s, args: venv
2022/09/15 16:17:51 debug: HasFolder
false
2022/09/15 16:17:51 HasFolder duration: 0s, args: virtualenv
2022/09/15 16:17:51 debug: HasFolder
false
2022/09/15 16:17:51 HasFolder duration: 0s, args: env
2022/09/15 16:17:51 debug: HasFolder
false
2022/09/15 16:17:51 HasFolder duration: 0s, args: venv-win
2022/09/15 16:17:51 debug: HasFolder
false
2022/09/15 16:17:51 HasFolder duration: 0s, args: pyenv-win
2022/09/15 16:17:51 debug: Pwd
C:\Users\RaúlRodríguez
2022/09/15 16:17:51 Pwd duration: 0s, args:
2022/09/15 16:17:51 debug: Home
C:\Users\RaúlRodríguez
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 Shell duration: 0s, args:
2022/09/15 16:17:51 Flags duration: 0s, args:
2022/09/15 16:17:51 TemplateCache duration: 0s, args:
2022/09/15 16:17:51 TemplateCache duration: 0s, args:
2022/09/15 16:17:51 Shell duration: 0s, args:
2022/09/15 16:17:51 debug: Pwd
C:\Users\RaúlRodríguez
2022/09/15 16:17:51 Pwd duration: 0s, args:
2022/09/15 16:17:51 debug: Home
C:\Users\RaúlRodríguez
2022/09/15 16:17:51 GOOS duration: 0s, args:
2022/09/15 16:17:51 TemplateCache duration: 0s, args:
2022/09/15 16:17:51 TemplateCache duration: 0s, args:
2022/09/15 16:17:51 Shell duration: 0s, args:
2022/09/15 16:17:51 debug: Getenv
C:\Users\RaúlRodríguez\AppData\Local
2022/09/15 16:17:51 Getenv duration: 0s, args: LOCALAPPDATA
2022/09/15 16:17:51 CachePath duration: 0s, args:
2022/09/15 16:17:51 Flags duration: 0s, args:
raulrm00 commented 2 years ago

Reading FAQ will fix this issue

https://ohmyposh.dev/docs/faq#powershell-the-term-oh-my-poshexe-is-not-recognized-as-a-name-of-a-cmdlet

JanDeDobbeleer commented 2 years ago

@raulrm00 that's a limitation of PowerShell not being UTF-8. You can wraps the initialization in UTF-8 to resolve that:


$previousOutputEncoding = [Console]::OutputEncoding
try {
    $OutputEncoding = [console]::InputEncoding = [console]::OutputEncoding = New-Object System.Text.UTF8Encoding
    Initialize oh-my-posh here
} finally {
    [Console]::OutputEncoding = $previousOutputEncoding
}
github-actions[bot] commented 9 months ago

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 first, complete the body with all the details necessary to reproduce, and mention this issue as reference.