Conversation
…d improved deployment process
…use 'main/website'
Add prompt/docs sets for Claude, Codex, GitHub, OpenCode, and VS Code command folders.\nInclude .sync.yml and OpenCode skill docs to standardize assistant workflows.
fix(gogh.sh): replace symbols in theme name with dashes
Add Miasma terminal theme
GitHub deprecated Node 20 for actions and currently forces them onto Node 24 with a warning on every run. - actions/checkout v4 -> v7 and actions/setup-python v5 -> v7, both on Node 24. Their breaking changes don't apply here: no workflow uses pull_request_target or workflow_run, or setup-python's removed pip-install input - Replace actions/create-release@v1, archived and still on Node 12, with `gh release create`, keeping the same tag, title, notes and target commit
Add kmscon, the Linux virtual terminal and Termux, which Gogh supports but the Terminal dropdown didn't offer, and drop st+, which Gogh doesn't support (st users can pick "Other (not listed)").
fix: rename appy_tilixschemes to apply_tilixschemes
ci: move GitHub Actions off Node 20 and Node 12
docs: list every supported terminal in the bug report template
…g one
A theme name becomes three file names -- its gogh.sh THEMES entry,
installs/<slug>.sh and the data/ files -- and two names can map to the
same one ("Dracula" and "Dracula+" are both dracula). The generators
then silently drop one from THEMES, overwrite one installer, and rename
one data/ file with a -1 suffix.
- theme_common.py: move the installer (step 7) and THEMES (step 8) slug
rules into installer_slug() and gogh_list_slug(), and add
theme_file_slugs() returning all three. Steps 7 and 8 use them with
identical output (verified: all 1247 installers and the THEMES array
regenerate unchanged)
- validate_theme_format.py: a newly added theme fails when any of its
file names is taken by an existing theme, which keeps its name; two
new themes colliding with each other both fail. No existing theme
collides today
- Document the rule in CONTRIBUTING.md, tools/README.md and task help
gogh.sh downloads installs/<entry> for each THEMES entry, but step 8 built the entries with its own rule while step 7 names the installers with another. For a name starting with a symbol, like "(Foo)", the entry became -foo.sh while the installer is foo.sh, so gogh.sh would list a theme whose installer doesn't exist. Step 8 now uses installer_slug(), the same rule as step 7, so the two always match, and gogh_list_slug() goes away. No current theme is affected: the THEMES array regenerates unchanged.
validate_theme_format.py imports its slug and contrast rules from tools/lib/theme_common.py, so a change there can change what validation accepts, but it didn't trigger the workflow.
feat(validate): reject new themes whose name collides with an existing one
fix(generate): name THEMES entries with the installer slug
The README links each terminal to its apply_*() function in apply-colors.sh by line number, and those anchors drift whenever lines move above a function: all 20 had drifted by 37-58 lines until #560. - validate_readme_links.py checks that every link points at the line where its function is defined, and --fix rewrites them; a link to a function that no longer exists fails even with --fix - CI runs it in "Validate PR", now also triggered by README.md changes - task validate:readme-links / validate:readme-links-fix, and `task validate` includes the check - CONTRIBUTING.md explains when to run the fix; tools/README.md lists the script and brings validate_pr.py's row up to date with the non-theme PR rules from #559
fix: correct "deriviates" typo in the unsupported terminal message
feat(validate): keep README links to the apply functions in sync
Alacritty support lived in apply-alacritty.py, which needed ruamel.yaml, tomli and tomli_w (not shipped with Alacritty) and, since the TOML switch, dropped the user's comments when rewriting alacritty.toml. apply_alacritty now works like Kitty and Ghostty: the theme goes into gogh.toml next to alacritty.toml, which only gets one import entry (general.import on 0.14+, top-level import on 0.13, detected with `alacritty --version`). An existing import array keeps its entries and gets gogh.toml last, on one line or several. The importing file is loaded after its imports, so [colors.primary], [colors.normal] and [colors.bright] tables left in alacritty.toml (as the old helper wrote them) are commented out after a backup; colors set as dotted keys or inline tables are reported instead. alacritty.yml (Alacritty < 0.13) now fails with a pointer to `alacritty migrate`. - Remove apply-alacritty.py, its download in gogh.sh and GOGH_ALACRITTY_SCRIPT, and ruamel.yaml/tomli/tomli_w from requirements.txt - Docker tests: Alacritty from scratch and over existing color tables - Update NON_INTERACTIVE.md, TROUBLESHOOTING.md and the README links
Backups are named <file>.<timestamp> to the second, so several changes within one second (e.g. applying many themes at once) overwrote the backup holding the user's original config with a later one. Move the backup into a shared backupConfig helper that keeps the first backup of each second and skips empty files.
- Strip TOML comments outside quoted strings only, so a comment containing quotes (`import = ["a"] # see "a"`) no longer hides the closing bracket, and a "#" inside a path isn't taken as a comment - Check for an existing gogh.toml import inside the import array only: the same path in another setting or comment no longer skips it - When `alacritty --version` can't be read, use the top-level import, which every version reads (0.14+ with a deprecation warning), instead of general.import, which 0.13 ignores - Fail with an error instead of reporting success when gogh.toml, the backup or alacritty.toml can't be written
Terminator support lived in apply-terminator.py, which needed configobj (not always installed with Terminator, #439), crashed when the config had no [profiles] section, and wiped an existing profile's settings when asked not to copy the default one. apply_terminator now edits the config with awk: it sets use_theme_colors = False (the helper meant to, but never wrote it), background_color, foreground_color and palette on the chosen profile under [profiles] -- never the [[default]] of [layouts] -- replacing those keys in place and keeping every other setting. A missing [profiles] section, profile or config file is created; only a new profile asks whether to start as a copy of default. Same prompts and backup as before, using backupConfig. With both helpers gone, Gogh no longer needs Python to apply themes: - Remove apply-terminator.py, its download in gogh.sh, GOGH_TERMINATOR_SCRIPT and configobj from requirements.txt (now only the generate/validate tools' dependencies) - Docker tests drop Python and cover Terminator from scratch too - Update NON_INTERACTIVE.md, TROUBLESHOOTING.md, the improvement issue template, validate-on-pr.yml paths and the README links
- "Copy the rest of the settings from the default profile?" asks again on anything other than Y/yes/N/no/Enter, as the Python helper did, instead of taking it as yes - Fail with an error instead of reporting success when the config or its backup can't be written
feat(alacritty): apply themes from apply-colors.sh, without Python
feat(terminator): apply themes from apply-colors.sh, without Python
theme: Add Sangdoist
…eme/sangdoist" Source commit: d7c7775
theme: Add Sangdoist Light
theme: Add Seoulism Light
…at/seoulism-light" Source commit: 42c6a02
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )