Skip to content

feature request : add support for Windows Terminal and PSReadLine (Mirage style) #26

@soleige

Description

@soleige

Is your feature request related to a problem? Please describe.

I am a huge fan of the Mirage style! Since the project already supports many terminal emulators like Kitty, Ghostty, and Alacritty, I would love to see official support for the Windows ecosystem to maintain a consistent development experience across platforms.

Describe the solution healthy you'd like
I'd like to request "Extras" support for:

  1. Windows Terminal: JSON schemes for Oasis styles.
  2. PSReadLine: PowerShell syntax highlighting configurations.

I have already spent some time mimicking the Mirage (Dark & Light 5) styles in my local environment.

My Custom Windows Terminal Schemes (Mirage):

[
  {
    "name": "Oasis Mirage Dark",
    "background": "#18252A",
    "foreground": "#DDEFEF",
    "selectionBackground": "#2A3F46",
    "cursorColor": "#F0E68C",
    "black": "#101010",
    "red": "#D06666",
    "green": "#53D390",
    "yellow": "#F0E68C",
    "blue": "#519BFF",
    "purple": "#C28EFF",
    "cyan": "#5ABAAE",
    "white": "#DDDBD5",
    "brightBlack": "#4A5E66",
    "brightRed": "#FFA0A0",
    "brightGreen": "#96EA7F",
    "brightYellow": "#F8B471",
    "brightBlue": "#87CEEB",
    "brightPurple": "#D2ADFF",
    "brightCyan": "#8FD1C7",
    "brightWhite": "#FFF9F2"
  },
  {
    "name": "Oasis Mirage Light 5",
    "background": "#C0F2EE",
    "foreground": "#3C5050",
    "selectionBackground": "#9AEAE4",
    "cursorColor": "#31605A",
    "black": "#4C4C4C",
    "red": "#953B3B",
    "green": "#2C6346",
    "yellow": "#605A20",
    "blue": "#1455AF",
    "purple": "#7622D5",
    "cyan": "#32605A",
    "white": "#4E4C44",
    "brightBlack": "#6B8282",
    "brightRed": "#B11111",
    "brightGreen": "#316424",
    "brightYellow": "#86490D",
    "brightBlue": "#225F77",
    "brightPurple": "#7423D6",
    "brightCyan": "#316159",
    "brightWhite": "#70410B"
  }
]

My PSReadLine Configuration:
Since I use automatic dark/light mode switching in Windows Terminal, I have configured Set-PSReadLineOption using logical color names rather than static ANSI hex codes.

I am still fine-tuning these options and would greatly appreciate your expert advice on whether these mappings align well with the original oasis mirage design philosophy.

Set-PSReadLineOption -Colors @{
    # Core Syntax
    Command            = 'Yellow'
    Default            = 'Blue'
    Parameter          = 'Gray'
    Operator           = 'DarkBlue'

    # Data & Logic
    String             = 'DarkCyan'
    Variable           = 'Green'
    Number             = 'Magenta'
    Keyword            = 'DarkMagenta'
    Type               = 'DarkBlue'
    Member             = 'DarkYellow'

    # Visual Effects
    Comment            = "`e[3;32m"   # Italic Green
    InlinePrediction   = "`e[3;90m"   # Italic Dark Gray
    Selection          = "`e[7m"      # Reverse video for auto-compatibility
    ListPredictionSelected = "`e[7m"
    Error              = 'Red'
}

Reference: Default PSReadLine Colors
For comparison, here are the default values I started from:

CommandColor                : "`e[93m"
CommentColor                : "`e[32m"
ContinuationPromptColor     : "`e[37m"
DefaultTokenColor           : "`e[37m"
EmphasisColor               : "`e[96m"
ErrorColor                  : "`e[91m"
InlinePredictionColor       : "`e[97;2;3m"
KeywordColor                : "`e[92m"
ListPredictionColor         : "`e[33m"
ListPredictionSelectedColor : "`e[48;5;238m"
ListPredictionTooltipColor  : "`e[97;2;3m"
MemberColor                 : "`e[37m"
NumberColor                 : "`e[97m"
OperatorColor               : "`e[90m"
ParameterColor              : "`e[90m"
SelectionColor              : "`e[30;47m"
StringColor                 : "`e[36m"
TypeColor                   : "`e[37m"
VariableColor               : "`e[92m"

Additional context
The README mentioned: "If you'd like an extra config added, raise a feature request and I'll put it together." I hope these snippets help in creating the official extras for Windows users!

Notes:

Tip

I am not a native English speaker. This issue was drafted with the assistance of Gemini to ensure clarity and accuracy. Thanks for your understanding!

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions