Skip to content

Instantly share code, notes, and snippets.

@smoonlee
Last active January 26, 2023 21:55
Show Gist options
  • Save smoonlee/dc65ef4357385eb370a6a124b76d879a to your computer and use it in GitHub Desktop.
Save smoonlee/dc65ef4357385eb370a6a124b76d879a to your computer and use it in GitHub Desktop.
PSPROFILE - Oh-My-Posh [Gen2 Edition]
{
"$schema": "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json",
"blocks": [
{
// [LEFT] Username, Path, Git and Health Check
"alignment": "left",
"segments": [
{
// username
"background": "#0077c2",
"foreground": "#ffffff",
"style": "diamond",
"template": " {{ if .SSHSession }}\uf817 {{ end }}{{ .UserName }}@{{ .HostName }} ",
"trailing_diamond": "\ue0b0",
"type": "session"
},
{
// folder_path
"background": "#ff479c",
"foreground": "#ffffff",
"powerline_symbol": "\ue0b0",
"properties": {
"style": "folder"
},
"style": "powerline",
"template": " \uf07b {{ .Path }} ",
"type": "path"
},
{
// git_status
"background": "#fffb38",
"background_templates": [
"{{ if or (.Working.Changed) (.Staging.Changed) }}#FF9248{{ end }}",
"{{ if and (gt .Ahead 0) (gt .Behind 0) }}#ff4500{{ end }}",
"{{ if gt .Ahead 0 }}#B388FF{{ end }}",
"{{ if gt .Behind 0 }}#B388FF{{ end }}"
],
"foreground": "#193549",
"powerline_symbol": "\ue0b0",
"properties": {
"fetch_stash_count": true,
"fetch_status": true,
"fetch_upstream_icon": true
},
"style": "powerline",
"template": " {{ .UpstreamIcon }}{{ .HEAD }}{{if .BranchStatus }} {{ .BranchStatus }}{{ end }}{{ if .Working.Changed }} \uf046 {{ .Working.String }}{{ end }}{{ if and (.Working.Changed) (.Staging.Changed) }} |{{ end }}{{ if .Staging.Changed }} \uf046 {{ .Staging.String }}{{ end }}{{ if gt .StashCount 0 }} \uf044 {{ .StashCount }}{{ end }} ",
"type": "git"
},
{
// health_check_icon
"background": "#2e9599",
"background_templates": [
"{{ if gt .Code 0 }}#f1184c{{ end }}"
],
"foreground": "#ffffff",
"leading_diamond": "<transparent,background>\ue0b0</>",
"properties": {
"always_enabled": true
},
"style": "diamond",
"template": " \ue23a {{ if gt .Code 0 }}\uf00d {{ .Meaning }}{{ else }}\uf42e{{ end }} ",
"trailing_diamond": "\ue0b4",
"type": "exit"
}
],
"type": "prompt"
},
{
// [RIGHT] Session, Power, Time
"alignment": "right",
"segments": [
{
// shell_type
"background": "#0077c2",
"foreground": "#ffffff",
"style": "plain",
"template": "<#0077c2,transparent>\ue0b6</> \uf489 {{ .Name }} <transparent,#0077c2>\ue0b2</>",
"type": "shell"
},
{
// power
"background": "#f36943",
"background_templates": [
"{{if eq \"Charging\" .State.String}}#40c4ff{{end}}",
"{{if eq \"Discharging\" .State.String}}#ff5722{{end}}",
"{{if eq \"Full\" .State.String}}#4caf50{{end}}"
],
"foreground": "#ffffff",
"invert_powerline": true,
"powerline_symbol": "\ue0b2",
"properties": {
"charged_icon": "\ue22f ",
"charging_icon": "\uf583 ",
"discharging_icon": "\uf582 "
},
"style": "powerline",
"template": " {{ if not .Error }}{{ .Icon }}{{ .Percentage }}{{ end }}{{ .Error }}\uf295 ",
"type": "battery"
},
{
"background": "#2e9599",
"foreground": "#111111",
"invert_powerline": true,
"leading_diamond": "\ue0b2",
"style": "diamond",
"template": " \uf64f {{ .CurrentDate | date .Format }} ",
"type": "time"
}
],
"type": "prompt"
},
{
// [LEFT] az_subscription
"alignment": "left",
"newline": true,
"segments": [
{
"background": "#9ec3f0",
"foreground": "#000000",
"powerline_symbol": "\ue0b0",
"style": "powerline",
"template": " \ufd03 Subscription: {{ .Name }} ",
"type": "az",
"properties": {
"source": "pwsh"
}
}
],
"type": "prompt"
},
{
// [LEFT] terminal_prompt
"alignment": "left",
"newline": true,
"segments": [
{
"foreground": "#2e9599",
"style": "plain",
"template": "#>",
"type": "text"
}
],
"type": "prompt"
}
],
"console_title_template": "{{ .Shell }} in {{ .Folder }}",
"final_space": true,
"version": 2
}
# Import PowerShell Modules
Import-Module -Name 'Posh-Git'
Import-Module -Name 'PSReadLine'
Import-Module -Name 'Az.Accounts'
# Define PSReadLine Configuration
Set-PSReadLineOption -PredictionSource History # https://learn.microsoft.com/en-us/powershell/module/psreadline/set-psreadlineoption?view=powershell-7.3#-predictionsource
Set-PSReadLineOption -PredictionViewStyle ListView # https://learn.microsoft.com/en-us/powershell/module/psreadline/set-psreadlineoption?view=powershell-7.3#-predictionviewstyle
Set-PSReadLineOption -EditMode Windows # https://learn.microsoft.com/en-us/powershell/module/psreadline/set-psreadlineoption?view=powershell-7.3#-editmode
Set-PSReadLineOption -HistoryNoDuplicates:$Ture #https://learn.microsoft.com/en-us/powershell/module/psreadline/set-psreadlineoption?view=powershell-7.3#-historynoduplicates
# Import OhMyPosh
(@(& "$Env:LOCALAPPDATA\Programs\oh-my-posh\bin\oh-my-posh.exe" init pwsh --config="$Env:LOCALAPPDATA\Programs\oh-my-posh\themes\cloud-native-azure.omp_smoon.json" --print) -join "`n") | Invoke-Expression
# Configure PowerShell AzSubscription Prompt
$env:POSH_AZURE_ENABLED = $true
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment