Compartir a través de


Configuración de un tema de color claro

Los colores predeterminados para PowerShell y PSReadLine se seleccionan para un terminal de fondo oscuro. Sin embargo, algunos usuarios pueden optar por usar un fondo claro con texto oscuro. Dado que la mayoría de los colores predeterminados no establecen el fondo, el uso de colores de primer plano claros en un fondo claro genera texto ilegible.

PSReadLine permite definir colores para 18 elementos de sintaxis diferentes. Puede ver la configuración actual con el cmdlet Get-PSReadLineOption.

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"

La configuración de color se almacena como cadenas que contienen secuencias de escape ANSI que cambian el color en el terminal. Con el cmdlet Set-PSReadLineOption puede cambiar los colores a valores que funcionan mejor para un fondo de color claro.

Definición de colores para un tema claro

El ISE de PowerShell se puede configurar para usar un tema claro para los paneles de editor y consola. También puede ver y cambiar los colores que usa el ISE para diversos tipos de sintaxis y salida. Puede usar estas opciones de color para definir un tema similar para PSReadLine.

La siguiente tabla hash define colores para PSReadLine que imitan los colores del ISE de PowerShell.

$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)
}

Nota

En PowerShell 7.2 y versiones posteriores, puede usar el método FromRGB() de $PSStyle para crear las secuencias de escape ANSI para los colores que desee.

Para más información sobre $PSStyle, consulte Acerca de los terminales ANSI.

Para obtener más información sobre las secuencias de escape ANSI, consulte el artículo sobre el código de escape ANSI en Wikipedia.

Establecimiento del tema de color en el perfil

Para tener la configuración de color que desee en cada sesión de PowerShell, debe agregar las opciones de configuración al script de perfil de PowerShell. Para obtener un ejemplo, consulte Personalización del entorno de shell.

Agregue la variable $ISETheme y el siguiente comando Set-PSReadLineOption al perfil.

Set-PSReadLineOption -Colors $ISETheme

A partir de PowerShell 7.2, PowerShell agrega una representación con colores a la experiencia de consola predeterminada. Los colores empleados se definen en la variable $PSStyle y están diseñados para un fondo oscuro. La siguiente configuración se ajusta mejor a un terminal con fondo claro.

$PSStyle.Formatting.FormatAccent       = "`e[32m"
$PSStyle.Formatting.TableHeader        = "`e[32m"
$PSStyle.Formatting.ErrorAccent        = "`e[36m"
$PSStyle.Formatting.Error              = "`e[31m"
$PSStyle.Formatting.Warning            = "`e[33m"
$PSStyle.Formatting.Verbose            = "`e[33m"
$PSStyle.Formatting.Debug              = "`e[33m"
$PSStyle.Progress.Style                = "`e[33m"
$PSStyle.FileInfo.Directory            = $PSStyle.Background.FromRgb(0x2f6aff) +
                                         $PSStyle.Foreground.BrightWhite
$PSStyle.FileInfo.SymbolicLink         = "`e[36m"
$PSStyle.FileInfo.Executable           = "`e[95m"
$PSStyle.FileInfo.Extension['.ps1']    = "`e[36m"
$PSStyle.FileInfo.Extension['.ps1xml'] = "`e[36m"
$PSStyle.FileInfo.Extension['.psd1']   = "`e[36m"
$PSStyle.FileInfo.Extension['.psm1']   = "`e[36m"

Elección de colores para accesibilidad

Es posible que el tema de color de ISE no funcione para los usuarios con daltonismo u otras condiciones que limiten su capacidad de ver los colores.

World Wide Web Consortium (W3C) tiene recomendaciones para usar colores para la accesibilidad. Las directrices de accesibilidad de contenido web (WCAG) 2.1 recomiendan que "la presentación visual de texto e imágenes de texto tenga una relación de contraste de al menos 4.5:1". Para obtener más información, vea Criterio de éxito 1.4.3 Contraste (mínimo).

El sitio web Relación de contraste proporciona una herramienta que le permite elegir colores de primer plano y de fondo y medir el contraste. Puede usar esta herramienta para buscar combinaciones de colores que funcionen mejor en su caso.