| name | xmake-theme |
| description | Use when switching xmake's output theme (colors, progress style, emoji) or fixing garbled/unreadable terminal output — `xmake g --theme=...`. Built-in themes: default, ninja, emoji, dark, light, plain, powershell. |
Xmake Theme Style
Xmake's terminal output can be re-themed globally. Themes control color palette, the progress bar style, and whether emoji are used. Configured per-machine via xmake g.
Switch theme
xmake g --theme=default
xmake g --theme=ninja
xmake g --theme=emoji
xmake g --theme=dark
xmake g --theme=light
xmake g --theme=plain
xmake g --theme=powershell
Reset to default:
xmake g -c
xmake g --theme=default
When to pick which
| Situation | Theme |
|---|
| Default dark terminal, you just want it to work | default |
| Terminal shows garbled ANSI escapes (old Windows cmd, dumb terminals) | plain |
| Warnings invisible because bg is yellow | dark |
| Text overlap on dark backgrounds | light |
| Magenta looks wrong (PowerShell) | powershell |
| Want persistent single-line progress like ninja | ninja |
| Fun / emoji UI | emoji |
Color control without switching themes
If you just want to toggle color output, the XMAKE_COLORTERM env var is simpler:
export XMAKE_COLORTERM=nocolor
export XMAKE_COLORTERM=color8
export XMAKE_COLORTERM=color256
export XMAKE_COLORTERM=truecolor
Or globally:
xmake g --theme=plain
Pitfalls
- Theme is global. There is no per-project theme. If you need a different look for CI, set
XMAKE_COLORTERM=nocolor in the CI env rather than switching themes.
- Powershell garbage on Windows. Magenta renders wrong on legacy PowerShell.
xmake g --theme=powershell fixes it.
--theme=plain also hides emoji. Intentional — use it when terminals choke on both ANSI and unicode.
- Old Windows cmd still broken with any theme. Use
plain, or switch to Windows Terminal / PowerShell 7.
When to branch out
- Emitting your own colored output from scripts/tasks →
xmake-color-output
- Debugging why colors look wrong at all →
xmake-troubleshooting