feat: keep iTerm2-Color-Schemes in sync
- Dominant language
- TypeScript
- Stars
- 954
- Forks
- 68
- PR merge metrics
- No merged PRs in 30d
Description
The https://github.com/mbadolato/iTerm2-Color-Schemes repository is the official source of color schemes bundled with iTerm2 (and other terminals as well, such as Ghostty). A catppuccin port was included there as part of https://github.com/catppuccin/iterm/issues/8.
However, there have been changes to this color scheme, which left `iTerm2-Color-Schemes` out of sync, and the cursor text unintelligible (see https://github.com/mbadolato/iTerm2-Color-Schemes/pull/560). Although it is possible to download the canonical color scheme from this repo, it certainly feels superfluous when catppuccin is a builtin color scheme.
Ideally, there should be a CI workflow to create a pull request to `iTerm2-Color-Schemes` on every merged pull request to this repository.
I created https://github.com/mbadolato/iTerm2-Color-Schemes/pull/560 by running the following commands locally, which could be adapted for an automated CI workflow:
```bash
git clone https://github.com/mbadolato/iTerm2-Color-Schemes
git clone https://github.com/catppuccin/iterm
cp -rf iterm/colors/catppuccin-* iTerm2-Color-Schemes/schemes/
cd iTerm2-Color-Schemes
pyenv install
pyenv virtualenv venv-iterm
pyenv activate venv-iterm
pip install -r requirements.txt
python3 tools/p3tosRGB.py schemes/catppuccin-latte.itermcolors
python3 tools/p3tosRGB.py schemes/catppuccin-frappe.itermcolors
python3 tools/p3tosRGB.py schemes/catppuccin-macchiato.itermcolors
python3 tools/p3tosRGB.py schemes/catppuccin-moccha.itermcolors
make
git checkout -b catppuccin
git add .
git commit -m "fix(catppuccin): sync catppuccin with canonical repo"
```
Alternatively, add contribution instructions and add syncing with `iTerm2-Color-Schemes` as a required step.
One of the big advantages of syncing with `iTerm2-Color-Schemes` is that by maintaining only one repo, we get color schemes for all popular terminals (iTerm2, Alacritty, Ghostty, XTerm, Foot, Kitty, Wezterm, etc.) "for free".
Another option would be to maintain the `iterm` color scheme directly in `iTerm2-Color-Schemes`, and either deprecate the catppuccin repos, or set up CI workflows to pull changes from `iTerm2-Color-Schemes` automatically, which would significantly reduce maintenance burden.
Contributor guide
Research direction
Start with the listed sync commands, especially copying iterm/colors/catppuccin-* into iTerm2-Color-Schemes/schemes/ and running tools/p3tosRGB.py, requirements.txt, and make in that repository. Determine which synchronization approach is intended, then verify that a merged change can produce an up-to-date pull request against iTerm2-Color-Schemes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- git, github-actions, python, shell
- Domain
- ci-cd, devops, tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100