Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
91 changes: 41 additions & 50 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,85 +1,88 @@
<p align="center">
<img src="assets/icon.png" alt="Synthpunk icon" width="360" />
<img src="assets/readme.png"
alt="synthpunk — High-energy synthwave color schemes"
width="845" />
</p>

# Synthpunk

High-energy synthwave-inspired color themes for VS Code, Zed, Neovim, WezTerm, and Starship. Four variants: Pastel Dark/Light and Neon Dark/Light.
High-energy synthwave-inspired color themes in two families — **Pastel** and **Neon** — each with dark and light variants. Every theme is generated from a single [palette source](palette/) for VS Code, Zed, Neovim, WezTerm, and Starship.

![Synthpunk — the same code across all four variants](assets/hero.png)

## Preview

Syntax highlighting shown in the **Neon Dark** variant:
Syntax highlighting in the **Neon Dark** variant (click any image for full size):

### React
| React / TSX | Python | Rust |
| ----------- | ------ | ---- |
| <a href="assets/sample-react.png"><img src="assets/sample-react.png" alt="Synthpunk Neon Dark — React/TSX" width="260" /></a> | <a href="assets/sample-python.png"><img src="assets/sample-python.png" alt="Synthpunk Neon Dark — Python" width="260" /></a> | <a href="assets/sample-rust.png"><img src="assets/sample-rust.png" alt="Synthpunk Neon Dark — Rust" width="260" /></a> |

![Synthpunk Neon Dark — React/TSX](assets/sample-react.png)
| C# | Markdown | |
| -- | -------- | - |
| <a href="assets/sample-csharp.png"><img src="assets/sample-csharp.png" alt="Synthpunk Neon Dark — C#" width="260" /></a> | <a href="assets/sample-markdown.png"><img src="assets/sample-markdown.png" alt="Synthpunk Neon Dark — Markdown" width="260" /></a> | |

### Python
The exact colors for every variant live in [`palette/`](palette/) — the source all themes are generated from. Preview images are produced by [`assets/generate/`](assets/generate/).

![Synthpunk Neon Dark — Python](assets/sample-python.png)

### Rust

![Synthpunk Neon Dark — Rust](assets/sample-rust.png)

### C#

![Synthpunk Neon Dark — C#](assets/sample-csharp.png)

### Markdown
## Installation

![Synthpunk Neon Dark — Markdown](assets/sample-markdown.png)
The VS Code and Zed extensions are **not yet on their marketplaces** (listings are coming soon) — for now, install them as developer extensions from a clone of this repo. The WezTerm and Starship configs download directly from [GitHub releases](https://github.com/slowdini/synthpunk/releases).

Full palette swatches for every variant: [Pastel Dark](assets/palette-preview-dark.png) · [Pastel Light](assets/palette-preview-light.png) · [Neon Dark](assets/palette-preview-neon-dark.png) · [Neon Light](assets/palette-preview-neon-light.png). Preview images are generated by [`assets/generate/`](assets/generate/).
For VS Code, Zed, and Neovim, start by cloning the repo:

## Installation
```sh
git clone https://github.com/slowdini/synthpunk.git
```

### VS Code

Install from the [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=synthpunk.synthpunk) (search "Synthpunk"), then select your theme via `Preferences: Color Theme`.
1. Copy or symlink `themes/vscode/` into `~/.vscode/extensions/`
2. Restart VS Code
3. Run `Preferences: Color Theme` and pick a variant

For local development, see [`themes/vscode/README.md`](themes/vscode/README.md).
See [`themes/vscode/README.md`](themes/vscode/README.md) for details.

### Zed

Install from the Zed extension registry (search "Synthpunk"), then select your theme from the theme picker.
1. Open **Extensions** in Zed (or run `zed: extensions`)
2. Click **Install Dev Extension** (or run `zed: install dev extension`)
3. Select the `themes/zed/` directory
4. Pick a variant from the theme picker (`theme selector: toggle`)

For local development, see [`themes/zed/README.md`](themes/zed/README.md).
See [`themes/zed/README.md`](themes/zed/README.md) for details.

### Neovim

Install via [Lazy.nvim](https://github.com/folke/lazy.nvim):
Copy the colorscheme files from the clone into your Neovim config:

```sh
cp -r synthpunk/themes/neovim/colors synthpunk/themes/neovim/lua ~/.config/nvim/
```

Then load a variant:

```lua
return {
"slowdini/synthpunk.nvim",
lazy = false,
priority = 1000,
config = function()
vim.cmd("colorscheme synthpunk-pastel-dark")
end,
}
vim.cmd("colorscheme synthpunk-pastel-dark")
```

See [`themes/neovim/README.md`](themes/neovim/README.md) for manual installation and variant details.
Variants: `synthpunk-pastel-dark`, `synthpunk-pastel-light`, `synthpunk-neon-dark`, `synthpunk-neon-light`. See [`themes/neovim/README.md`](themes/neovim/README.md) for details.

### WezTerm

```sh
mkdir -p ~/.config/wezterm/colors
curl -fsSL https://github.com/slowdini/synthpunk/releases/latest/download/synthpunk-pastel-dark.toml -o ~/.config/wezterm/colors/synthpunk-pastel-dark.toml
```

Then set `config.color_scheme = 'Synthpunk Pastel Dark'` in your `wezterm.lua`. See [`themes/wezterm/README.md`](themes/wezterm/README.md) for all variants.
Then set `config.color_scheme = 'Synthpunk Pastel Dark'` in your `wezterm.lua`. The other variants download the same way (`synthpunk-pastel-light.toml`, `synthpunk-neon-dark.toml`, `synthpunk-neon-light.toml`). See [`themes/wezterm/README.md`](themes/wezterm/README.md) for all variants.

### Starship

```sh
curl -fsSL https://github.com/slowdini/synthpunk/releases/latest/download/starship.toml -o ~/.config/starship.toml
```

The default variant is `synthpunk_pastel_dark`. To switch, change the `palette =` line to `synthpunk_pastel_light`, `synthpunk_neon_dark`, or `synthpunk_neon_light`. See [`themes/starship/README.md`](themes/starship/README.md) for details.
The default variant is `synthpunk_pastel_dark`. To switch, change the `palette =` line to `synthpunk_pastel_light`, `synthpunk_neon_dark`, or `synthpunk_neon_light`. Icons require a [Nerd Font](https://www.nerdfonts.com/). See [`themes/starship/README.md`](themes/starship/README.md) for details.

## Development

Expand All @@ -91,20 +94,8 @@ bun run check # lint + typecheck
bun run format # auto-format
```

All theme files under `themes/` are generated from `palette/` by the generator. Never edit them directly — edit `palette/` and `generator/`, then run `bun run build`.

## Releasing

Releases are cut from `dev` and tagged from `main`:

1. Merge feature PRs into `dev` after CI passes.
2. When ready to ship, trigger the **Release PR** workflow with the next version number. It bumps every manifest via `scripts/bump-version.ts`, commits to `dev`, and opens a `dev → main` PR.
3. Review the release PR and merge.
4. Merging to `main` automatically tags `vX.Y.Z`, creates the GitHub release, uploads the Starship and WezTerm config files as release assets, builds the VS Code VSIX, and fans out publish jobs (VS Code Marketplace, OpenVSX, Zed, synthpunk.nvim) — each gated on a configured secret.
5. After a release, merge `main` back into `dev` to keep them in sync.

See [`RELEASE.md`](RELEASE.md) for manual publishing steps and prerequisite setup.
All theme files under `themes/` are generated from `palette/` by the generator. Never edit them directly — edit `palette/` and `generator/`, then run `bun run build`. To regenerate the preview images above, see [`assets/generate/`](assets/generate/).

## License

MIT
[MIT](LICENSE)
Binary file added assets/readme.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
23 changes: 8 additions & 15 deletions themes/neovim/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,24 +11,13 @@ A Neovim colorscheme generated from the [Synthpunk](https://github.com/slowdini/

## Installation

### Lazy.nvim

```lua
return {
"slowdini/synthpunk.nvim",
lazy = false,
priority = 1000,
config = function()
vim.cmd("colorscheme synthpunk-pastel-dark")
end,
}
```
### From this repository

### Manual (no plugin manager)
The colorscheme files are plain Lua — no plugin manager required:

```bash
git clone https://github.com/slowdini/synthpunk.nvim /tmp/synthpunk.nvim
cp -r /tmp/synthpunk.nvim/* ~/.config/nvim/
git clone https://github.com/slowdini/synthpunk /tmp/synthpunk
cp -r /tmp/synthpunk/themes/neovim/colors /tmp/synthpunk/themes/neovim/lua ~/.config/nvim/
```

Then in your Neovim config:
Expand All @@ -37,6 +26,10 @@ Then in your Neovim config:
vim.cmd("colorscheme synthpunk-pastel-dark")
```

### Lazy.nvim

The standalone [`slowdini/synthpunk.nvim`](https://github.com/slowdini/synthpunk.nvim) mirror is not published yet — until it is, use the manual install above.

## Requirements

- Neovim >= 0.8 (for `vim.api.nvim_set_hl`)
Expand Down
19 changes: 8 additions & 11 deletions themes/zed/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,11 @@ High-energy synthwave-inspired color themes for Zed.

## Install

Open **Extensions** in Zed (or run `zed: extensions`), search for **Synthpunk**, and install it. Then pick a variant from the theme picker (`theme selector: toggle`).

## Local Development

To test this extension locally in Zed:

1. Open Zed
2. Go to **Extensions** (or run `zed: extensions`)
3. Click **Install Dev Extension** (or run `zed: install dev extension`)
4. Select this directory (`themes/zed/`)
5. Select your preferred theme variant from the theme picker
Synthpunk is not yet in the Zed extension registry (a listing is coming soon). Until then, install it as a dev extension:

1. Clone this repository
2. Open Zed
3. Go to **Extensions** (or run `zed: extensions`)
4. Click **Install Dev Extension** (or run `zed: install dev extension`)
5. Select the `themes/zed/` directory
6. Select your preferred theme variant from the theme picker
Loading