Skip to content

Commit

Permalink
feat: use *.omp.json as theme format
Browse files Browse the repository at this point in the history
  • Loading branch information
JanDeDobbeleer committed Nov 28, 2020
1 parent 130100d commit e68be7a
Show file tree
Hide file tree
Showing 22 changed files with 32 additions and 15 deletions.
37 changes: 27 additions & 10 deletions docs/docs/installation.mdx
Expand Up @@ -205,7 +205,7 @@ Edit `$PROFILE` in your preferred PowerShell version and add the following lines
$startInfo = New-Object System.Diagnostics.ProcessStartInfo
$startInfo.FileName = "C:\tools\oh-my-posh.exe"
$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.CreateNoWindow = $true
$startInfo.StandardOutputEncoding = [System.Text.Encoding]::UTF8
Expand Down Expand Up @@ -241,7 +241,7 @@ Add the following to `~/.zshrc`:

```bash
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() {
Expand Down Expand Up @@ -271,7 +271,7 @@ Add the following to `~/.bashrc` (or `~/.profile` on MacOS):

```bash
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
Expand Down Expand Up @@ -304,7 +304,7 @@ which should re-enable the prompt in most cases:
# Workaround for nix-shell --pure
if [ "$IN_NIX_SHELL" == "pure" ]; 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
```
Expand All @@ -322,7 +322,7 @@ Redefine `fish_prompt` in `~/.config/fish/config.fish`:

```bash
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
```

Expand All @@ -338,7 +338,7 @@ Once added, reload your config for the changes to take effect.
Set the prompt and restart nu shell:

```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.
Expand All @@ -348,13 +348,13 @@ Restart nu shell for the changes to take effect.

### 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
functionality, going through the additional steps below will help you get started.

#### 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.

Adjust your configuration to use any other theme from the folder we created (`~/.poshthemes`).
Expand All @@ -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
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
oh-my-posh --print-config
Expand All @@ -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.

```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"
}
]
```

🎉🎉🎉
Expand All @@ -392,3 +407,5 @@ oh-my-posh -config ~/.mytheme.json
[brew]: /docs/homebrew
[prompt]: /docs/installation#4-replace-your-existing-prompt
[configuration]: /docs/configure
[schema]: https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh3/main/themes/schema.json
[vscode]: https://code.visualstudio.com/
10 changes: 5 additions & 5 deletions packages/powershell/oh-my-posh/oh-my-posh.psm1
Expand Up @@ -45,14 +45,14 @@ function Set-PoshPrompt {

$global:PoshSettings.ShowDebug = $ShowDebug

if (Test-Path "$PSScriptRoot/themes/$Theme.json") {
$global:PoshSettings.Theme = "$PSScriptRoot/themes/$Theme.json"
if (Test-Path "$PSScriptRoot/themes/$Theme.omp.json") {
$global:PoshSettings.Theme = "$PSScriptRoot/themes/$Theme.omp.json"
}
elseif (Test-Path $Theme) {
$global:PoshSettings.Theme = Resolve-Path -Path $Theme
}
else {
$global:PoshSettings.Theme = "$PSScriptRoot/themes/jandedobbeleer.json"
$global:PoshSettings.Theme = "$PSScriptRoot/themes/jandedobbeleer.omp.json"
}

[ScriptBlock]$Prompt = {
Expand Down Expand Up @@ -115,7 +115,7 @@ function Get-PoshThemes {
'@
Write-Host $logo
$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 "$esc[1m$($_.BaseName)$esc[0m"
Write-Host ""
Expand Down Expand Up @@ -152,7 +152,7 @@ function ThemeCompletion {
$commandAst,
$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 |
Where-Object { $_.BaseName.ToLower().StartsWith($wordToComplete.ToLower()); } |
Select-Object -Unique -ExpandProperty BaseName |
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 comments on commit e68be7a

Please sign in to comment.