Skip to content

arcnms/pixelwave

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

PixelWave - a retro‑pixel, truecolor Zsh theme

PixelWave is a sleek, bright, vibrant Zsh theme that mixes old‑school pixel vibes with modern high‑color rendering. It shows a rainbow “pixel bar,” a neon‑colored identity line (via lolcat), your full path, and concise Git status.

Compatibility note: PixelWave is exercised regularly on desktop terminal apps for macOS and Linux (e.g., iTerm2, Apple Terminal, GNOME Terminal, Alacritty). The theme almost certainly works in similar environments, but it has not been exhaustively tested elsewhere, so assume remote/web terminals or atypical shells may behave differently until you verify.

Oh My Zsh compatible out of the box, but it’s just Zsh—no external frameworks required.


Preview

Screenshot


Features

  • Two-line header:

    • line 1: a crisp rainbow “pixel bar” (truecolor).
    • line 2: a lolcat‑colored prefix + full path (or ~/… if under $HOME) + Git branch & state.
  • Clear prompt: green when the last command succeeded, red on error.

  • Git status: branch + symbols (✚ unstaged, ● staged, … untracked).

  • Truecolor with hex codes (e.g., %F{#ff79c6}).

  • Minimal and fast: no external plugins required beyond git and lolcat.


Requirements

  • zsh 5.x or newer

  • Git (for the Git segment)

  • lolcat

    • Used only to colorize the prefix on the second line.
    • This theme intentionally preserves a hard‑coded path (/usr/games/lolcat) because some rendering environments don’t have a usable PATH.
  • Font: JetBrains Mono

    • If the branch glyph (U+E0A0) doesn’t render in your terminal/font, either use JetBrains Mono or set an alternate icon via PW_BRANCH_ICON=⎇.

Truecolor recommended. In your shell profile, set:

export COLORTERM=truecolor

Installation (Oh My Zsh)

  1. Copy the theme file into your custom themes directory:

    mkdir -p ~/.oh-my-zsh/custom/themes
    cp pixelwave.zsh-theme ~/.oh-my-zsh/custom/themes/pixelwave.zsh-theme
  2. Enable the theme in ~/.zshrc:

    ZSH_THEME="pixelwave"
    plugins=(git)   # recommended for git completions/aliases
  3. Restart your shell:

    exec zsh -l

PixelWave is pure Zsh; Oh My Zsh is optional. If you don’t use Oh My Zsh, source the theme in your .zshrc and set PROMPT accordingly.


lolcat resolution & fallbacks (important)

To make this reliable across environments where PATH might be unavailable during prompt rendering, the theme resolves lolcat in this order:

  1. PW_LOLCAT environment variable (absolute path), if set and executable.
  2. command -v lolcat
  3. Fallback: /usr/games/lolcat (intentionally hard‑coded and never removed).

If nothing above resolves, the theme still attempts to invoke /usr/games/lolcat, matching the original behavior. This contract is deliberate so rendering doesn’t silently change in constrained environments.

Optional override:

# Example: point directly to your lolcat binary
export PW_LOLCAT="$HOME/.local/bin/lolcat"

Configuration

All knobs are optional; default behavior matches the checked‑in theme.

Environment variables

  • PW_LOLCAT — absolute path to lolcat. Takes priority if executable.

  • PW_BRANCH_ICON — set an alternative branch icon if your font lacks .

    export PW_BRANCH_ICON=⎇
  • COLORTERM — recommend truecolor for 24‑bit color:

    export COLORTERM=truecolor

Theme palette

Edit the hex colors near the top of pixelwave.zsh-theme:

typeset -ga PW_PALETTE=( 'ff0066' 'ff5f00' 'ffd500' 'aaff00' '00ff88' '00ccff' '6a5cff' 'ff33cc' )

Change the prefix glyphs

The colored prefix on line 2 is just a string. Change it to anything you like (e.g., ▛▞▞▟):

prefix="██▓▓▒▒░░  $USER@${HOST%%.*}  "
# e.g.:
# prefix="▛▞▞▟  $USER@${HOST%%.*}  "

Adjust the lolcat style

By default the theme uses:

-f -p 1.0 -F 0.2 --seed 6131
  • --seed (or -S on some builds) makes the gradient deterministic.
  • You can change the seed or any flags in the printf ... | lolcat ... line inside _pw_precmd.

Contributing

  • Keep the /usr/games/lolcat fallback call intact to honor the rendering constraint described above.
  • PRs that add optional features should keep defaults matching current behavior.
  • Please include a short before/after screenshot in PRs affecting visuals.

License

MIT - Use as you like.

About

colorful zsh theme

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages