From 7428b8c5f36d7c8e87e8f6fc25c7bc05b623cef8 Mon Sep 17 00:00:00 2001 From: samiamorwas Date: Sun, 16 Aug 2026 03:12:38 -0400 Subject: [PATCH 1/3] chore(docs): commit readme header image --- assets/readme.png | Bin 0 -> 59001 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 assets/readme.png diff --git a/assets/readme.png b/assets/readme.png new file mode 100644 index 0000000000000000000000000000000000000000..a36ef598a7625ffbfed2d043eaf03bf698fb1f8a GIT binary patch literal 59001 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

;l!(ldk4osW{|3HUtMp` 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 Date: Sun, 16 Aug 2026 03:27:54 -0400 Subject: [PATCH 2/3] chore(docs): update header image, remove unneeded release section --- README.md | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 9210255..f46f362 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@

- Synthpunk icon + synthpunk — High-energy synthwave color schemes

# Synthpunk @@ -93,18 +95,6 @@ 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. - ## License MIT From 66d3a6811c86c911299ac8df49ab7d3132d2162b Mon Sep 17 00:00:00 2001 From: samiamorwas Date: Sun, 16 Aug 2026 04:28:11 -0400 Subject: [PATCH 3/3] chore(docs): readme update --- README.md | 75 +++++++++++++++++++++-------------------- themes/neovim/README.md | 23 +++++-------- themes/zed/README.md | 19 +++++------ 3 files changed, 54 insertions(+), 63 deletions(-) diff --git a/README.md b/README.md index f46f362..d41493b 100644 --- a/README.md +++ b/README.md @@ -6,74 +6,75 @@ # 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 | +| ----------- | ------ | ---- | +| Synthpunk Neon Dark — React/TSX | Synthpunk Neon Dark — Python | Synthpunk Neon Dark — Rust | -![Synthpunk Neon Dark — React/TSX](assets/sample-react.png) +| C# | Markdown | | +| -- | -------- | - | +| Synthpunk Neon Dark — C# | Synthpunk Neon Dark — Markdown | | -### 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 @@ -81,7 +82,7 @@ Then set `config.color_scheme = 'Synthpunk Pastel Dark'` in your `wezterm.lua`. 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 @@ -93,8 +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`. +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) diff --git a/themes/neovim/README.md b/themes/neovim/README.md index 9f0160f..836b8cb 100644 --- a/themes/neovim/README.md +++ b/themes/neovim/README.md @@ -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: @@ -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`) diff --git a/themes/zed/README.md b/themes/zed/README.md index ffa0f68..067ea64 100644 --- a/themes/zed/README.md +++ b/themes/zed/README.md @@ -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