Világos színű téma konfigurálása

A Rendszer a PowerShell és a PSReadLine alapértelmezett színeit is kijelöli egy sötét háttér-terminálhoz. Egyes felhasználók azonban dönthetnek úgy, hogy világos hátteret használnak sötét szöveggel. Mivel az alapértelmezett színek többsége nem állítja be a hátteret, a világos előtérszínek használata olvashatatlan szöveget eredményez.

A PowerShell 7.2-től kezdve színezett kimenetet ad hozzá az alapértelmezett konzolélményhez. A $PSStyle szolgáltatás natív módon nem érhető el a Windows PowerShellben. A PowerShell-gyűjtemény PSStyle moduljának használatával azonban a cikkben ismertetett technikákkal állíthat be színértékeket.

A használt színek a $PSStyle változóban vannak definiálva, és sötét háttérhez vannak tervezve. Ezeket a színeket úgy módosíthatja, hogy jobban működjenek a világos háttér-terminálok.

A PSReadLine segítségével 18 különböző szintaxiselem színeit határozhatja meg. Az aktuális beállításokat a Get-PSReadLineOption parancsmaggal tekintheti meg.

EditMode                               : Windows
AddToHistoryHandler                    : System.Func`2[System.String,System.Object]
HistoryNoDuplicates                    : True
HistorySavePath                        : C:\Users\user1\AppData\Roaming\Microsoft\Wind...
HistorySaveStyle                       : SaveIncrementally
HistorySearchCaseSensitive             : False
HistorySearchCursorMovesToEnd          : False
MaximumHistoryCount                    : 4096
ContinuationPrompt                     : >>
ExtraPromptLineCount                   : 0
PromptText                             : {> }
BellStyle                              : Audible
DingDuration                           : 50
DingTone                               : 1221
CommandsToValidateScriptBlockArguments : {ForEach-Object, %, Invoke-Command, icm...}
CommandValidationHandler               :
CompletionQueryItems                   : 100
MaximumKillRingCount                   : 10
ShowToolTips                           : True
ViModeIndicator                        : None
WordDelimiters                         : ;:,.[]{}()/\|^&*-=+'"-—―
AnsiEscapeTimeout                      : 100
PredictionSource                       : HistoryAndPlugin
PredictionViewStyle                    : InlineView
CommandColor                           : "`e[93m"
CommentColor                           : "`e[32m"
ContinuationPromptColor                : "`e[37m"
DefaultTokenColor                      : "`e[37m"
EmphasisColor                          : "`e[96m"
ErrorColor                             : "`e[91m"
InlinePredictionColor                  : "`e[38;5;238m"
KeywordColor                           : "`e[92m"
ListPredictionColor                    : "`e[33m"
ListPredictionSelectedColor            : "`e[48;5;238m"
MemberColor                            : "`e[97m"
NumberColor                            : "`e[97m"
OperatorColor                          : "`e[90m"
ParameterColor                         : "`e[90m"
SelectionColor                         : "`e[30;47m"
StringColor                            : "`e[36m"
TypeColor                              : "`e[37m"
VariableColor                          : "`e[92m"

A színbeállítások olyan ANSI-feloldási sorozatokat tartalmazó sztringekként vannak tárolva, amelyek megváltoztatják a terminál színét. A Set-PSReadLineOption parancsmaggal olyan értékekre módosíthatja a színeket, amelyek jobban működnek a világos színű háttérhez.

Világos téma színeinek meghatározása

A PowerShell ISE úgy konfigurálható, hogy a szerkesztő és a konzol ablaktábláihoz is használjon világos témát. Megtekintheti és módosíthatja az ISE által a különböző szintaxis- és kimenettípusokhoz használt színeket is. Ezekkel a színválasztékokkal hasonló témát definiálhat a PSReadLine-hoz.

Az alábbi kivonatoló a PSReadLine színeit határozza meg, amelyek a PowerShell ISE-ben lévő színeket utánozzák.

$ISETheme = @{
    Command                  = $PSStyle.Foreground.FromRGB(0x0000FF)
    Comment                  = $PSStyle.Foreground.FromRGB(0x006400)
    ContinuationPrompt       = $PSStyle.Foreground.FromRGB(0x0000FF)
    Default                  = $PSStyle.Foreground.FromRGB(0x0000FF)
    Emphasis                 = $PSStyle.Foreground.FromRGB(0x287BF0)
    Error                    = $PSStyle.Foreground.FromRGB(0xE50000)
    InlinePrediction         = $PSStyle.Foreground.FromRGB(0x93A1A1)
    Keyword                  = $PSStyle.Foreground.FromRGB(0x00008b)
    ListPrediction           = $PSStyle.Foreground.FromRGB(0x06DE00)
    Member                   = $PSStyle.Foreground.FromRGB(0x000000)
    Number                   = $PSStyle.Foreground.FromRGB(0x800080)
    Operator                 = $PSStyle.Foreground.FromRGB(0x757575)
    Parameter                = $PSStyle.Foreground.FromRGB(0x000080)
    String                   = $PSStyle.Foreground.FromRGB(0x8b0000)
    Type                     = $PSStyle.Foreground.FromRGB(0x008080)
    Variable                 = $PSStyle.Foreground.FromRGB(0xff4500)
    ListPredictionSelected   = $PSStyle.Background.FromRGB(0x93A1A1)
    Selection                = $PSStyle.Background.FromRGB(0x00BFFF)
}

Megjegyzés:

Ezzel a FromRGB() módszerrel létrehozhatja a kívánt színek ANSI-feloldási sorozatait. A $PSStyletovábbi információkért lásd: about_ANSI_Terminals. Az ANSI-menekülési sorozatokról a Wikipédiában található ANSI escape code-cikkben talál további információt.

A színtéma beállítása a profilban

Ha minden PowerShell-munkamenetben meg szeretné adni a kívánt színbeállításokat, hozzá kell adnia a konfigurációs beállításokat a PowerShell-profilszkripthez. Példa: A rendszerhéj-környezet testreszabása

Adja hozzá a $ISETheme változót és a következő Set-PSReadLineOption parancsot a profiljához.

Set-PSReadLineOption -Colors $ISETheme

Az alábbi beállítások jobban működnek egy világos háttér-terminál esetében.

$PSStyle.Formatting.FormatAccent       = $PSStyle.Foreground.Green
$PSStyle.Formatting.TableHeader        = $PSStyle.Foreground.Green
$PSStyle.Formatting.ErrorAccent        = $PSStyle.Foreground.Cyan
$PSStyle.Formatting.Error              = $PSStyle.Foreground.Red
$PSStyle.Formatting.Warning            = $PSStyle.Foreground.Yellow
$PSStyle.Formatting.Verbose            = $PSStyle.Foreground.Yellow
$PSStyle.Formatting.Debug              = $PSStyle.Foreground.Yellow
$PSStyle.Progress.Style                = $PSStyle.Foreground.Yellow
$PSStyle.FileInfo.Directory            = $PSStyle.Background.FromRgb(0x2f6aff) +
                                         $PSStyle.Foreground.BrightWhite
$PSStyle.FileInfo.SymbolicLink         = $PSStyle.Foreground.Cyan
$PSStyle.FileInfo.Executable           = $PSStyle.Foreground.BrightMagenta
$PSStyle.FileInfo.Extension['.ps1']    = $PSStyle.Foreground.Cyan
$PSStyle.FileInfo.Extension['.ps1xml'] = $PSStyle.Foreground.Cyan
$PSStyle.FileInfo.Extension['.psd1']   = $PSStyle.Foreground.Cyan
$PSStyle.FileInfo.Extension['.psm1']   = $PSStyle.Foreground.Cyan

Színek kiválasztása az akadálymentességhez

Előfordulhat, hogy az ISE színtémája nem működik a színvaksággal vagy más olyan feltételekkel rendelkező felhasználók számára, amelyek korlátozzák a színek megjelenítését.

A World Wide Web Consortium (W3C) javaslatot tett a színek akadálymentességhez való használatára. A webes tartalom akadálymentességi irányelvei (WCAG) 2.1 azt javasolja, hogy "a szövegek és képek vizuális megjelenítése legalább 4,5:1 kontrasztarányú legyen". További információ: 1.4.3 Kontraszt (minimum) sikerességi feltétel.

A Kontrasztarány webhely olyan eszközt biztosít, amellyel előtér- és háttérszíneket választhat, és mérheti a kontrasztot. Ezzel az eszközzel megtalálhatja az Önnek leginkább megfelelő színkombinációkat.