mirror of
https://github.com/JanDeDobbeleer/oh-my-posh.git
synced 2024-12-27 11:59:40 -08:00
feat: use *.omp.json as theme format
This commit is contained in:
parent
130100da29
commit
e68be7aa44
|
@ -205,7 +205,7 @@ Edit `$PROFILE` in your preferred PowerShell version and add the following lines
|
||||||
$startInfo = New-Object System.Diagnostics.ProcessStartInfo
|
$startInfo = New-Object System.Diagnostics.ProcessStartInfo
|
||||||
$startInfo.FileName = "C:\tools\oh-my-posh.exe"
|
$startInfo.FileName = "C:\tools\oh-my-posh.exe"
|
||||||
$cleanPWD = $PWD.ProviderPath.TrimEnd("\")
|
$cleanPWD = $PWD.ProviderPath.TrimEnd("\")
|
||||||
$startInfo.Arguments = "-config=""$env:USERPROFILE\.poshthemes\jandedobbeleer.json"" -error=$errorCode -pwd=""$cleanPWD"""
|
$startInfo.Arguments = "-config=""$env:USERPROFILE\.poshthemes\jandedobbeleer.omp.json"" -error=$errorCode -pwd=""$cleanPWD"""
|
||||||
$startInfo.Environment["TERM"] = "xterm-256color"
|
$startInfo.Environment["TERM"] = "xterm-256color"
|
||||||
$startInfo.CreateNoWindow = $true
|
$startInfo.CreateNoWindow = $true
|
||||||
$startInfo.StandardOutputEncoding = [System.Text.Encoding]::UTF8
|
$startInfo.StandardOutputEncoding = [System.Text.Encoding]::UTF8
|
||||||
|
@ -241,7 +241,7 @@ Add the following to `~/.zshrc`:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
function powerline_precmd() {
|
function powerline_precmd() {
|
||||||
PS1="$(oh-my-posh -config ~/.poshthemes/jandedobbeleer.json --error $?)"
|
PS1="$(oh-my-posh -config ~/.poshthemes/jandedobbeleer.omp.json --error $?)"
|
||||||
}
|
}
|
||||||
|
|
||||||
function install_powerline_precmd() {
|
function install_powerline_precmd() {
|
||||||
|
@ -271,7 +271,7 @@ Add the following to `~/.bashrc` (or `~/.profile` on MacOS):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
function _update_ps1() {
|
function _update_ps1() {
|
||||||
PS1="$(oh-my-posh -config ~/.poshthemes/jandedobbeleer.json -error $?)"
|
PS1="$(oh-my-posh -config ~/.poshthemes/jandedobbeleer.omp.json -error $?)"
|
||||||
}
|
}
|
||||||
|
|
||||||
if [ "$TERM" != "linux" ] && [ -x "$(command -v oh-my-posh)" ]; then
|
if [ "$TERM" != "linux" ] && [ -x "$(command -v oh-my-posh)" ]; then
|
||||||
|
@ -304,7 +304,7 @@ which should re-enable the prompt in most cases:
|
||||||
# Workaround for nix-shell --pure
|
# Workaround for nix-shell --pure
|
||||||
if [ "$IN_NIX_SHELL" == "pure" ]; then
|
if [ "$IN_NIX_SHELL" == "pure" ]; then
|
||||||
if [ -x oh-my-posh ]; then
|
if [ -x oh-my-posh ]; then
|
||||||
alias powerline-go="oh-my-posh -config ~/.poshthemes/jandedobbeleer.json"
|
alias powerline-go="oh-my-posh -config ~/.poshthemes/jandedobbeleer.omp.json"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
```
|
```
|
||||||
|
@ -322,7 +322,7 @@ Redefine `fish_prompt` in `~/.config/fish/config.fish`:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
function fish_prompt
|
function fish_prompt
|
||||||
eval oh-my-posh -config ~/.poshthemes/jandedobbeleer.json -error $status
|
eval oh-my-posh -config ~/.poshthemes/jandedobbeleer.omp.json -error $status
|
||||||
end
|
end
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -338,7 +338,7 @@ Once added, reload your config for the changes to take effect.
|
||||||
Set the prompt and restart nu shell:
|
Set the prompt and restart nu shell:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
config set prompt "= `{{$(oh-my-posh -config ~/.poshthemes/jandedobbeleer.json | str collect)}}`"
|
config set prompt "= `{{$(oh-my-posh -config ~/.poshthemes/jandedobbeleer.omp.json | str collect)}}`"
|
||||||
```
|
```
|
||||||
|
|
||||||
Restart nu shell for the changes to take effect.
|
Restart nu shell for the changes to take effect.
|
||||||
|
@ -348,13 +348,13 @@ Restart nu shell for the changes to take effect.
|
||||||
|
|
||||||
### 5. Next steps
|
### 5. Next steps
|
||||||
|
|
||||||
At this point you're good to go. The `jandedobbeleer.json` theme displays most common use-cases
|
At this point you're good to go. The `jandedobbeleer.omp.json` theme displays most common use-cases
|
||||||
in your prompt so 9/10 you'll be more than happy with it. However, if you want to explore additional
|
in your prompt so 9/10 you'll be more than happy with it. However, if you want to explore additional
|
||||||
functionality, going through the additional steps below will help you get started.
|
functionality, going through the additional steps below will help you get started.
|
||||||
|
|
||||||
#### Change the theme
|
#### Change the theme
|
||||||
|
|
||||||
We downloaded all the themes and set `jandedobbeleer.json` as the one to use.
|
We downloaded all the themes and set `jandedobbeleer.omp.json` as the one to use.
|
||||||
However, there are a lot more to be discovered and maybe there are some you like better.
|
However, there are a lot more to be discovered and maybe there are some you like better.
|
||||||
|
|
||||||
Adjust your configuration to use any other theme from the folder we created (`~/.poshthemes`).
|
Adjust your configuration to use any other theme from the folder we created (`~/.poshthemes`).
|
||||||
|
@ -365,7 +365,7 @@ Maybe there's a theme you like, but you don't fancy the colors. Or, maybe there'
|
||||||
want to tweak/add, or replace some of the icons with a different one. Whatever the case, read through all
|
want to tweak/add, or replace some of the icons with a different one. Whatever the case, read through all
|
||||||
available options first, by starting with the [configuration guide][configuration].
|
available options first, by starting with the [configuration guide][configuration].
|
||||||
|
|
||||||
Afterwards, the easiest way to go about this is to print the current config and store it elsewhere first (for example `~/.mytheme.json`).
|
Afterwards, the easiest way to go about this is to print the current config and store it elsewhere first (for example `~/.mytheme.omp.json`).
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
oh-my-posh --print-config
|
oh-my-posh --print-config
|
||||||
|
@ -375,7 +375,22 @@ This will write the current configuration in your shell, allowing you to copy pa
|
||||||
and store it somehwere. Once adjusted to your liking, [change the prompt setting][prompt] to use the newly created file.
|
and store it somehwere. Once adjusted to your liking, [change the prompt setting][prompt] to use the newly created file.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
oh-my-posh -config ~/.mytheme.json
|
oh-my-posh -config ~/.mytheme.omp.json
|
||||||
|
```
|
||||||
|
|
||||||
|
#### JSON Schema
|
||||||
|
|
||||||
|
There's an easy to use [JSON schema][schema] available to validate your theme and have auto completion when editing.
|
||||||
|
When using [Visual Studio Code][vscode], you can extend your settings file (F1 -> Preferences: Open Settings (JSON))
|
||||||
|
by adding the following lines:
|
||||||
|
|
||||||
|
```json
|
||||||
|
"json.schemas": [
|
||||||
|
{
|
||||||
|
"fileMatch": ["*.omp.json"],
|
||||||
|
"url": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh3/main/themes/schema.json"
|
||||||
|
}
|
||||||
|
]
|
||||||
```
|
```
|
||||||
|
|
||||||
🎉🎉🎉
|
🎉🎉🎉
|
||||||
|
@ -392,3 +407,5 @@ oh-my-posh -config ~/.mytheme.json
|
||||||
[brew]: /docs/homebrew
|
[brew]: /docs/homebrew
|
||||||
[prompt]: /docs/installation#4-replace-your-existing-prompt
|
[prompt]: /docs/installation#4-replace-your-existing-prompt
|
||||||
[configuration]: /docs/configure
|
[configuration]: /docs/configure
|
||||||
|
[schema]: https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh3/main/themes/schema.json
|
||||||
|
[vscode]: https://code.visualstudio.com/
|
||||||
|
|
|
@ -45,14 +45,14 @@ function Set-PoshPrompt {
|
||||||
|
|
||||||
$global:PoshSettings.ShowDebug = $ShowDebug
|
$global:PoshSettings.ShowDebug = $ShowDebug
|
||||||
|
|
||||||
if (Test-Path "$PSScriptRoot/themes/$Theme.json") {
|
if (Test-Path "$PSScriptRoot/themes/$Theme.omp.json") {
|
||||||
$global:PoshSettings.Theme = "$PSScriptRoot/themes/$Theme.json"
|
$global:PoshSettings.Theme = "$PSScriptRoot/themes/$Theme.omp.json"
|
||||||
}
|
}
|
||||||
elseif (Test-Path $Theme) {
|
elseif (Test-Path $Theme) {
|
||||||
$global:PoshSettings.Theme = Resolve-Path -Path $Theme
|
$global:PoshSettings.Theme = Resolve-Path -Path $Theme
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$global:PoshSettings.Theme = "$PSScriptRoot/themes/jandedobbeleer.json"
|
$global:PoshSettings.Theme = "$PSScriptRoot/themes/jandedobbeleer.omp.json"
|
||||||
}
|
}
|
||||||
|
|
||||||
[ScriptBlock]$Prompt = {
|
[ScriptBlock]$Prompt = {
|
||||||
|
@ -115,7 +115,7 @@ function Get-PoshThemes {
|
||||||
'@
|
'@
|
||||||
Write-Host $logo
|
Write-Host $logo
|
||||||
$poshCommand = Get-PoshCommand
|
$poshCommand = Get-PoshCommand
|
||||||
Get-ChildItem -Path "$PSScriptRoot\themes\*" -Include '*.json' | Sort-Object Name | ForEach-Object -Process {
|
Get-ChildItem -Path "$PSScriptRoot\themes\*" -Include '*.omp.json' | Sort-Object Name | ForEach-Object -Process {
|
||||||
Write-Host ("=" * $consoleWidth)
|
Write-Host ("=" * $consoleWidth)
|
||||||
Write-Host "$esc[1m$($_.BaseName)$esc[0m"
|
Write-Host "$esc[1m$($_.BaseName)$esc[0m"
|
||||||
Write-Host ""
|
Write-Host ""
|
||||||
|
@ -152,7 +152,7 @@ function ThemeCompletion {
|
||||||
$commandAst,
|
$commandAst,
|
||||||
$fakeBoundParameter
|
$fakeBoundParameter
|
||||||
)
|
)
|
||||||
$themes = Get-ChildItem -Path "$PSScriptRoot\themes\*" -Include '*.json' | Sort-Object Name | Select-Object -Property BaseName
|
$themes = Get-ChildItem -Path "$PSScriptRoot\themes\*" -Include '*.omp.json' | Sort-Object Name | Select-Object -Property BaseName
|
||||||
$themes |
|
$themes |
|
||||||
Where-Object { $_.BaseName.ToLower().StartsWith($wordToComplete.ToLower()); } |
|
Where-Object { $_.BaseName.ToLower().StartsWith($wordToComplete.ToLower()); } |
|
||||||
Select-Object -Unique -ExpandProperty BaseName |
|
Select-Object -Unique -ExpandProperty BaseName |
|
||||||
|
|
Loading…
Reference in a new issue