Kleuren
Deze pagina is vertaald door PageTurner AI (beta). Niet officieel goedgekeurd door het project. Een fout gevonden? Probleem melden →
Standaardkleuren
Oh My Posh ondersteunt meerdere verschillende kleurverwijzingen:
-
True color met hex kleuren (bijvoorbeeld
#CB4B16). -
16 ANSI-kleurnamen. Deze omvatten 8 basis-ANSI-kleuren en
defaultblackredgreenyellowbluemagentacyanwhitedefaultplus 8 uitgebreide ANSI-kleuren:
darkGraylightRedlightGreenlightYellowlightBluelightMagentalightCyanlightWhite -
256-kleurenpalet met numerieke representatie. Bijvoorbeeld
0is zwart,1is rood,2is groen, enz. -
Het
transparent-sleutelwoord voor transparante voorgrond of achtergrond via de voorgrond-eigenschap van het segment. -
Het
foreground-sleutelwoord verwijst naar de huidige segmentvoorgrondkleur. -
Het
background-sleutelwoord verwijst naar de huidige segmentachtergrondkleur. -
Het
parentForeground-sleutelwoord erft de voorgrondkleur van het vorige actieve segment over. -
Het
parentBackground-sleutelwoord erft de achtergrondkleur van het vorige actieve segment over. -
Het
accent-sleutelwoord verwijst naar de OS-accentkleur (alleen Windows en macOS).
Kleursjablonen
Een array van string-sjablonen om kleuren dynamisch te definiëren. Dit gebruikt Go's text/template functionaliteit uitgebreid met sprig, met diverse standaardeigenschappen. Zie de Sjablooneigenschappen in de documentatie voor segmenten. Algemene sjablooneigenschappen vind je hier.
Dit voorbeeld is gebaseerd op het AWS-segment.
- json
- yaml
- toml
{
"type": "aws",
"style": "powerline",
"powerline_symbol": "",
"foreground": "#ffffff",
"background": "#111111",
"foreground_templates": [
"{{if contains \"default\" .Profile}}#FFA400{{end}}",
"{{if contains \"jan\" .Profile}}#f1184c{{end}}"
]
}
type: aws
style: powerline
powerline_symbol:
foreground: "#ffffff"
background: "#111111"
foreground_templates:
- '{{if contains "default" .Profile}}#FFA400{{end}}'
- '{{if contains "jan" .Profile}}#f1184c{{end}}'
type = "aws"
style = "powerline"
powerline_symbol = ""
foreground = "#ffffff"
background = "#111111"
foreground_templates = [ "{{if contains \"default\" .Profile}}#FFA400{{end}}", "{{if contains \"jan\" .Profile}}#f1184c{{end}}" ]
De logica: bij een array in foreground_templates wordt elke sjabloonregel gecontroleerd tot er
een niet-lege string terugkomt. Bevat .Profile het woord default, dan wordt #FFA400 gebruikt.
Bevat het jan, dan #f1184c. Als geen sjabloon een waarde retourneert, wordt #ffffff als fallback gebruikt.
Kleuroverschrijvingen
Je kunt voorgrond- en/of achtergrondkleuren overschrijven in tekstvelden met deze syntax:
<foreground,background>text</>. Bijvoorbeeld:
<#ffffff,#000000>this is white with black background</> <#FF479C>but this is pink</>.
Alles tussen de kleurstart <#FF479C> en einde </> wordt dienovereenkomstig gekleurd.
Voor een gekleurd haakje dat afwijkt van de segment-foreground:
- json
- yaml
- toml
{
"template": "<#CB4B16>┏[</>"
}
template: <#CB4B16>┏[</>
template = "<#CB4B16>┏[</>"
Om ook de achtergrondkleur in de vorige opdracht te wijzigen:
- json
- yaml
- toml
{
"template": "<#CB4B16,#FFFFFF>┏[</>"
}
template: <#CB4B16,#FFFFFF>┏[</>
template = "<#CB4B16,#FFFFFF>┏[</>"
Om alleen de achtergrondkleur te wijzigen, laat je de eerste kleur weg:
- json
- yaml
- toml
{
"template": "<,#FFFFFF>┏[</>"
}
template: <,#FFFFFF>┏[</>
template = "<,#FFFFFF>┏[</>"
Kleurenpalet
Als je configuratie het Palet heeft gedefinieerd, kun je de Palettereferentie p:<palette key> gebruiken op plaatsen waar een Standaardkleur verwacht wordt.
Een palet definiëren
Een palet is een set benoemde Standaardkleuren. Definieer een "palette"-object
op hoofdniveau in je configuratie:
- json
- yaml
- toml
{
"palette": {
"git-foreground": "#193549",
"git": "#FFFB38",
"git-modified": "#FF9248",
"git-diverged": "#FF4500",
"git-ahead": "#B388FF",
"git-behind": "#B388FF",
"red": "#FF0000",
"green": "#00FF00",
"blue": "#0000FF",
"white": "#FFFFFF",
"black": "#111111"
}
}
palette:
git-foreground: "#193549"
git: "#FFFB38"
git-modified: "#FF9248"
git-diverged: "#FF4500"
git-ahead: "#B388FF"
git-behind: "#B388FF"
red: "#FF0000"
green: "#00FF00"
blue: "#0000FF"
white: "#FFFFFF"
black: "#111111"
[palette]
git-foreground = "#193549"
git = "#FFFB38"
git-modified = "#FF9248"
git-diverged = "#FF4500"
git-ahead = "#B388FF"
git-behind = "#B388FF"
red = "#FF0000"
green = "#00FF00"
blue = "#0000FF"
white = "#FFFFFF"
black = "#111111"
Kleurnamen (paletsleutels) kunnen elke tekenreekswaarde hebben, dus wees creatief. Kleurwaarden daarentegen moeten voldoen aan het Standaardkleur-formaat.
Een palet gebruiken
Je kunt nu Paletverwijzingen gebruiken in elk segment's foreground, foreground_templates,
background, background_templates eigenschappen, en andere configuratie-eigenschappen die een Standaardkleur-waarde verwachten.
De notatie voor Paletverwijzingen is p:<palette key>. Bekijk het Git-segment dat Paletverwijzingen gebruikt:
- json
- yaml
- toml
{
"type": "git",
"style": "powerline",
"powerline_symbol": "",
"foreground": "p:git-foreground",
"background": "p:git",
"background_templates": [
"{{ if or (.Working.Changed) (.Staging.Changed) }}p:git-modified{{ end }}",
"{{ if and (gt .Ahead 0) (gt .Behind 0) }}p:git-diverged{{ end }}",
"{{ if gt .Ahead 0 }}p:git-ahead{{ end }}",
"{{ if gt .Behind 0 }}p:git-behind{{ end }}"
]
}
type: git
style: powerline
powerline_symbol:
foreground: p:git-foreground
background: p:git
background_templates:
- "{{ if or (.Working.Changed) (.Staging.Changed) }}p:git-modified{{ end }}"
- "{{ if and (gt .Ahead 0) (gt .Behind 0) }}p:git-diverged{{ end }}"
- "{{ if gt .Ahead 0 }}p:git-ahead{{ end }}"
- "{{ if gt .Behind 0 }}p:git-behind{{ end }}"
type = "git"
style = "powerline"
powerline_symbol = ""
foreground = "p:git-foreground"
background = "p:git"
background_templates = [ "{{ if or (.Working.Changed) (.Staging.Changed) }}p:git-modified{{ end }}", "{{ if and (gt .Ahead 0) (gt .Behind 0) }}p:git-diverged{{ end }}", "{{ if gt .Ahead 0 }}p:git-ahead{{ end }}", "{{ if gt .Behind 0 }}p:git-behind{{ end }}" ]
Door alle kleuren op één plek te definiëren kun je bestaande kleurconfiguraties importeren (meestal met kleine aanpassingen om aan het formaat te voldoen), eenvoudig kleuren van meerdere segmenten tegelijk veranderen, en een overzichtelijkere configuratie behouden. Wees creatief!
Paletverwijzingen en Standaardkleuren
Het gebruik van een palet sluit het gebruik van Standaardkleuren in je configuratie niet uit. Je kunt nog steeds Standaardkleuren overal gebruiken. Dit is handig als je een specifieke kleur voor één segmentonderdeel wilt gebruiken, of in een Kleuroverschrijving (Battery segment):
- json
- yaml
- toml
{
"type": "battery",
"style": "powerline",
"invert_powerline": true,
"powerline_symbol": "",
"foreground": "p:white",
"background": "p:black",
"options": {
"discharging_icon": "<#ffa500>-</> ",
"charging_icon": "+ ",
"charged_icon": "* "
}
}
type: battery
style: powerline
invert_powerline: true
powerline_symbol:
foreground: p:white
background: p:black
options:
discharging_icon: "<#ffa500>-</> "
charging_icon: "+ "
charged_icon: "* "
type = "battery"
style = "powerline"
invert_powerline = true
powerline_symbol = ""
foreground = "p:white"
background = "p:black"
[options]
discharging_icon = "<#ffa500>-</> "
charging_icon = "+ "
charged_icon = "* "
Omgaan met ongeldige verwijzingen
Als je een ongeldige Paletverwijzing als kleur gebruikt (bijvoorbeeld de tikfout p:bleu in plaats van p:blue),
zal de Paletengine het sleutelwoord transparent als fallbackwaarde gebruiken. Dus als je promptsegmenten
met onjuiste kleuren ziet en je gebruikt een Palet, controleer dan de juistheid van je verwijzingen.
Recursieve resolutie
Palet ondersteunt recursieve resolutie van Paletverwijzingen. Je kunt een Paletverwijzing als kleurwaarde
in het palet zelf gebruiken. Hierdoor kun je benoemde kleuren definiëren en daar weer naar verwijzen.
Bijvoorbeeld, p:foreground en p:background worden correct ingesteld op "#CAF0F80" en "#023E8A":
- json
- yaml
- toml
{
"palette": {
"light-blue": "#CAF0F8",
"dark-blue": "#023E8A",
"foreground": "p:light-blue",
"background": "p:dark-blue"
}
}
palette:
light-blue: "#CAF0F8"
dark-blue: "#023E8A"
foreground: p:light-blue
background: p:dark-blue
[palette]
light-blue = "#CAF0F8"
dark-blue = "#023E8A"
foreground = "p:light-blue"
background = "p:dark-blue"
Paletten
Als je een palette voorwaardelijk wilt gebruiken, bijvoorbeeld voor licht- of donkere modus, kun je meerdere
palettes definiëren en een sjabloon die resulteert in een palette-sleutel. Het template wordt tijdens runtime
geëvalueerd, zodat je prompt dynamisch kan veranderen op basis van de uitkomst van het template.
Bekijk de volgende configuratie:
- json
- yaml
- toml
{
"palettes": {
"template": "{{ if eq .Shell \"pwsh\" }}latte{{ else }}frappe{{ end }}",
"list": {
"latte": {
"black": "#262B44",
"green": "#59C9A5",
"orange": "#F07623",
"red": "#e64553",
"white": "#E0DEF4",
"yellow": "#df8e1d",
"blue": "#7287fd"
},
"frappe": {
"black": "#262B44",
"green": "#59C9A5",
"orange": "#F07623",
"red": "#D81E5B",
"white": "#E0DEF4",
"yellow": "#F3AE35",
"blue": "#4B95E9"
}
}
}
}
palettes:
template: '{{ if eq .Shell "pwsh" }}latte{{ else }}frappe{{ end }}'
list:
latte:
black: "#262B44"
green: "#59C9A5"
orange: "#F07623"
red: "#e64553"
white: "#E0DEF4"
yellow: "#df8e1d"
blue: "#7287fd"
frappe:
black: "#262B44"
green: "#59C9A5"
orange: "#F07623"
red: "#D81E5B"
white: "#E0DEF4"
yellow: "#F3AE35"
blue: "#4B95E9"
[palettes]
template = "{{ if eq .Shell \"pwsh\" }}latte{{ else }}frappe{{ end }}"
[palettes.list.latte]
black = "#262B44"
green = "#59C9A5"
orange = "#F07623"
red = "#e64553"
white = "#E0DEF4"
yellow = "#df8e1d"
blue = "#7287fd"
[palettes.list.frappe]
black = "#262B44"
green = "#59C9A5"
orange = "#F07623"
red = "#D81E5B"
white = "#E0DEF4"
yellow = "#F3AE35"
blue = "#4B95E9"
In dit geval wordt bij shell pwsh het latte-palet gebruikt, anders het frappe-palet. Je kunt eventueel
frappe als standaard palette instellen, aangezien deze als fallback dient wanneer het template
geen overeenkomst oplevert. Als geen match beschikbaar is en er geen palette is gedefinieerd, valt het systeem terug op transparent
voor elke paletkleurverwijzing in sjablonen/kleuren.
Om kleurduplicatie te voorkomen, kun je paletten combineren met de palette-eigenschap. Zo definieer je
een kleur één keer en hergebruik je hem in meerdere paletten:
- json
- yaml
- toml
{
"palette": {
"black": "#262B44",
"green": "#59C9A5",
"orange": "#F07623"
},
"palettes": {
"template": "{{ if eq .Shell \"pwsh\" }}latte{{ else }}frappe{{ end }}",
"list": {
"latte": {
"red": "#e64553",
"white": "#E0DEF4",
"yellow": "#df8e1d",
"blue": "#7287fd"
},
"frappe": {
"red": "#D81E5B",
"white": "#E0DEF4",
"yellow": "#F3AE35",
"blue": "#4B95E9"
}
}
}
}
palette:
black: "#262B44"
green: "#59C9A5"
orange: "#F07623"
palettes:
template: '{{ if eq .Shell "pwsh" }}latte{{ else }}frappe{{ end }}'
list:
latte:
red: "#e64553"
white: "#E0DEF4"
yellow: "#df8e1d"
blue: "#7287fd"
frappe:
red: "#D81E5B"
white: "#E0DEF4"
yellow: "#F3AE35"
blue: "#4B95E9"
[palette]
black = "#262B44"
green = "#59C9A5"
orange = "#F07623"
[palettes]
template = "{{ if eq .Shell \"pwsh\" }}latte{{ else }}frappe{{ end }}"
[palettes.list.latte]
red = "#e64553"
white = "#E0DEF4"
yellow = "#df8e1d"
blue = "#7287fd"
[palettes.list.frappe]
red = "#D81E5B"
white = "#E0DEF4"
yellow = "#F3AE35"
blue = "#4B95E9"
Als een kleur zowel in palette als palettes is gedefinieerd, krijgt de kleur uit palettes voorrang.
Cycle
Wanneer je dezelfde kleurvolgorde (achtergrond en voorgrond) wilt tonen ongeacht actieve segmenten, kun je de cycle-eigenschap gebruiken. Deze bevat een lijst kleuren die continu na elkaar worden gebruikt. Een gedefinieerde cycle krijgt altijd voorrang boven andere instellingen.
- json
- yaml
- toml
{
"cycle": [
{
"background": "p:blue",
"foreground": "p:white"
},
{
"background": "p:green",
"foreground": "p:black"
},
{
"background": "p:orange",
"foreground": "p:white"
}
]
}
cycle:
- background: p:blue
foreground: p:white
- background: p:green
foreground: p:black
- background: p:orange
foreground: p:white
[[cycle]]
background = "p:blue"
foreground = "p:white"
[[cycle]]
background = "p:green"
foreground = "p:black"
[[cycle]]
background = "p:orange"
foreground = "p:white"