Skip to content

Allow pinning the GitHub theme to dark or light #4620

Description

@omgjlk

Describe the feature or problem you'd like to solve

The  github  color mode follows the reported OS or terminal appearance, and there's no way to pin it. I want the GitHub palette in dark, permanently, while macOS stays in Light during the day. That combination isn't reachable today.

Proposed solution

Requested change: accept an explicit variant, such as  /theme github-dark  and  /theme github-light , with plain  github  keeping today's automatic behavior. A separate "follow OS appearance" toggle would work equally well.

Example prompts or workflows

No response

Additional context

What happens now: my terminal profile is black, but macOS switches to Light on its daytime schedule. Every running CLI session flips to a white background at once, usually noticed on wake from sleep. Restarting fixes it, because startup derives colors from the terminal's actual palette instead.

The relevant behavior, from  app.js  in 1.0.81-9:

if (n() === "github") {
let c = l === "light" ? { bg: cse, fg: Pq } // #ffffff
: { bg: lse, fg: Rq }; // #0D1117
t(d => d && { ...d, ...c }); return
}

 github  is the only mode that hard-follows the light/dark signal. Every other mode re-queries the terminal's real colors, so those stay dark. That makes the palette choice and the follow-the-OS behavior one setting when they're really two.

Worth noting the workaround isn't obvious. Setting a fixed theme in the terminal emulator can work, since the terminal's  DECSET 996/997  reply takes priority over macOS appearance, but that changes the emulator's own window chrome as a side effect. There's no fix available from within the CLI.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:theming-accessibilityVisual themes, colors, dark/light mode, contrast, screen readers, i18n/RTL

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions