Skip to content

Feature: custom default color schemes for terminal/PowerShell instances #4

@Xilous

Description

@Xilous

Summary

Allow users to configure custom default color schemes that are automatically applied to new terminal/PowerShell instances spawned inside wmux.

Today, newly spawned shells fall back to whatever the host terminal profile provides, which makes it hard to:

  • Maintain a consistent look across panes and sessions
  • Match wmux visuals (e.g. the browser panel theme) with the shell color palette
  • Differentiate roles of panes (e.g. a red-tinted prod shell vs. a green dev shell) at a glance

Proposed behavior

  • Provide a configurable theme/palette applied as the default for any new terminal or PowerShell instance created by wmux.
  • Support at minimum:
    • Foreground / background colors
    • ANSI 16-color palette (normal + bright)
    • Optional cursor color
  • Allow configuration via a config file (e.g. ~/.wmux/config.toml or equivalent) and/or a CLI flag when spawning a pane.
  • Ship a small set of built-in presets (e.g. dark, light, solarized, dracula) that users can select by name.
  • Allow per-pane overrides so a specific shell can opt into a different scheme without changing the global default.

Example (illustrative)

[terminal.colors]
default = "dracula"

[terminal.colors.schemes.prod]
background = "#2b0b0b"
foreground = "#ffdddd"
cursor     = "#ff5555"
wmux pane new --shell pwsh --color-scheme prod

Motivation / use cases

  • Visual consistency between wmux UI and shells
  • Quickly distinguishing environments (dev / staging / prod) by color
  • Accessibility: users who need higher contrast or specific palettes shouldn't have to reconfigure every spawned shell manually

Alternatives considered

  • Configuring color schemes at the OS terminal level (Windows Terminal profile, etc.) — works, but doesn't let wmux differentiate panes or apply per-session overrides.
  • Running Set-PSReadLineOption / ANSI escape scripts in each new shell — brittle, requires shell-specific setup.

Happy to help refine the config shape or contribute a PR if the direction is welcome.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions