Skip to content

[pull] master from Gogh-Co:master - #12

Open
pull[bot] wants to merge 1310 commits into
briorg:masterfrom
Gogh-Co:master
Open

pull[bot] wants to merge 1310 commits into
briorg:masterfrom
Gogh-Co:master

Conversation

@pull

@pull pull Bot commented Jan 13, 2026 •

Copy link
Copy Markdown

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 : )

Mgldvd and others added 30 commits April 8, 2025 08:56
feat: add Arc themes with both light and dark versions
Add additional Monokai Pro filters
Implement Wezterm support in apply-colors.sh using
Dynamic Color Escape Sequences.
Add Wezterm terminal support
YAML does not allow tabs.
Used an LLM to refactor gogh.sh to display theme names the same way on macos and linux.
refactors script to consistently display theme names
✨ (theme): Add Tiwahu Dark theme configuration
Mgldvd and others added 30 commits September 6, 2026 20:59
…ample

A personal access token raises the 60/hour unauthenticated limit to
5,000/hour for the same endpoint.
Was mistakenly tacked onto Interactive Mode's step 2; it's a separate
install path, not part of the interactive flow. Now its own section
between Install and Install (Non-Interactive Mode), added to the index.
…on selector

Same ⚙️ emoji as Pre-Install and Install (Non-Interactive Mode), both of
which correctly encode it as %EF%B8%8F -- Install was the only one
using a plain hyphen instead.
Split the 20-item flat index into two grouped columns (Getting Started
/ Themes & Data, Help & Contributing / Project) instead of one long
list -- cuts the vertical height roughly in half. Dropped the fragile
invisible-spacer-image table hack in favor of valign/width on the
cells. Swapped the stale themes.gif for gogh-demo.gif, which wasn't
used anywhere else in the README.
Recorded fresh screenshots of the live site's Detailed view for 20
popular themes (Dracula, Nord, Gruvbox Dark, Solarized Dark, Monokai,
Tokyo Night, Rose Pine, One Dark, Ayu Dark, Everforest Dark Hard,
Kanagawa, Horizon Dark, Synthwave Everything, Cyberpunk Neon, GitHub
Dark, Material, Palenight, Nightfly, Oceanic Next, Snazzy) via
Playwright in Docker, and assembled them into a slideshow gif
(1252x760 source, ~1.3s per theme, 954KB). Replaces the stale
themes.gif that used to sit next to the index -- this one lives in the
Themes section instead, next to the "Browse themes" link.
Keeps the index itself text-only/compact, with the new showcase gif as
a visual right below it instead of inside the Themes section.
…ct it

A user hit "error: unsupported SysV option" from the ps -h -o comm -p
$PPID call used to walk up the process tree and detect TERMINAL when
it's not already set. -h triggers BSD-vs-SysV personality detection in
procps-ng that some versions reject outright when combined with -o/-p,
even though it works fine on others (confirmed fine on procps-ng 4.0.4
here, but not on whatever the reporter has).

Switched to the -o field= (empty header) form instead, which suppresses
the header without needing -h at all. That in turn surfaced a second,
real bug while testing: -o ppid= right-pads the numeric field to its
column width, so a short pid can come back with a leading space; the
existing code then feeds that quoted, whitespace-and-all, into the next
-p "$pid" call, which errors with "improper list". Trimmed it.

Verified the fixed loop end-to-end through 4 nested parent-shell layers
(bash -> sh -> sh -> zsh -> real process), walking up correctly with no
errors. Applied in both gogh.sh and apply-colors.sh (duplicated logic in
both), plus updated apply-colors.sh's own "try this" hint message to
match. task test passes (shellcheck, bats, bash -n).
Adds tests/docker/, three suites that need a real installed terminal
package/ps build/dconf session that task test can't provide, run
entirely inside disposable containers (never the host -- see the
README's "Why Docker, never the host" section, which documents why
after this project once leaked a dconf write into a real desktop
session trying to sandbox it on the host):

- run-ps-compat.sh: the ps -o comm=/-o ppid= calls used for TERMINAL
  auto-detection, against procps-ng 3.3.17/4.0.2/Alpine's build.
  Confirmed this regression-tests the ppid= trim fix specifically
  (reproducibly breaks with "improper list" without it, on all three).
- run-gtk-terminals.sh: GNOME Terminal, MATE Terminal, Tilix -- the real
  apply-colors.sh end to end via installs/dracula.sh, against real
  installed gsettings schemas in a fresh dbus-run-session.
- run-file-terminals.sh: xfce4-terminal, foot, Konsole, kitty, kmscon,
  Termux, Linux vt, and mintty's config-writing logic, checking the
  written config file for the expected color.

Building the GTK suite surfaced a real bug: apply_gtk() had its own
pre-flight check (dconf list "${BASE_DIR%:}" non-empty) separate from
the DEFAULT_SLUG gsettings fallback from #351/#386/#552, and it happened
to keep passing for GNOME Terminal/Tilix only because their
PROFILE_LIST_KEY is a direct child of BASE_DIR -- MATE's lives under a
sibling .../global/ subtree, so the exact fresh-install case the other
fix resolved still failed this second, redundant check. Fixed by
checking DEFAULT_SLUG directly instead.

Building the file-terminals suite surfaced a second bug: apply_konsole()
never created ~/.local/share/konsole/ before writing into it -- the
touch/echo calls failed silently (no set -e in this codebase) and the
script still exited 0, so a fresh install would silently do nothing.
Fixed with a mkdir --parents.

Added `task test:docker` (bash tests/docker/run-all.sh) -- deliberately
not part of `task test`/CI: these are slower (image builds, apt-get)
and need Docker, which isn't guaranteed everywhere task test runs. Run
by hand after touching ps/dconf/gsettings/terminal-config-writing logic.

tests/docker/README.md documents what's covered, what isn't and why
(Guake, Alacritty/Terminator, Wezterm, Ghostty, Pantheon/elementary,
iTerm2), and the two bugs above as the reason this exists.
Same *.md blanket-ignore pattern caught this like it caught the docs/
files earlier -- add the same explicit exception.
Extends the Docker integration suites to the remaining terminals that
can realistically be tested this way. Alacritty and Terminator go
through their Python helpers (now installed via requirements.txt in
the file-terminals image); Ghostty just needs its config file checked,
no package required; Guake gets its own check in gtk-terminals since
it writes straight into guake.style.font instead of a profile list.

Building the Terminator case surfaced a real bug: apply-terminator.py's
backup_conf() unconditionally copies the existing config to back it up,
but crashes with an unhandled FileNotFoundError when Terminator has
never been launched before and no config file exists yet. Fixed by
skipping the backup when there's nothing to back up.

Updates the README's Docker test column and tests/docker/README.md
accordingly.
The Docker suites in tests/docker/ only ever exercise the Dracula theme
against each terminal, so a bug specific to another theme's
installs/*.sh (missing var, unusual value) would go unnoticed. Adds a
lightweight bats check (dracula, aci, 1984-dark, cobalt2, min-dark)
against foot only, since apply_foot() creates its own config from
scratch with no dconf and no external package required -- runs safely
on the host, no Docker needed.

Each assertion compares against that theme's own COLOR_01/BACKGROUND_COLOR
value (not a hardcoded needle), so it fails the same way regardless of
which theme's pipeline breaks.
The website now lives in its own repo (Gogh-Co/gogh-website) with a
self-contained deploy workflow, so this is no longer called by anyone.
gogh-co.github.io/Gogh was frozen on its last build after the deploy
workflow moved to gogh-website. Replace it with a minimal page that
redirects visitors to gogh.website.
…tor,

  Ubuntu 24.04, WSL, xfce4-terminal, and Debian uuid-runtime

  Document only actionable, command-oriented resolutions from issues not
  previously covered. Omit issues already fixed on master with no
  remaining troubleshooting step.
…tor,

  Ubuntu 24.04, WSL, xfce4-terminal, and Debian uuid-runtime

  Document only actionable, command-oriented resolutions from issues not
  previously covered. Omit issues already fixed on master with no
  remaining troubleshooting step.
SilkCircuit is a design system that shares one palette across Neovim,
VS Code, Chrome, and terminals. These five files are its terminal ANSI
schemes. Neon, Vibrant, and Soft step down in saturation, Glow is the
ultra-dark variant for OLED and low light, and Dawn is the light one.

Values match the Ghostty and Kitty configs shipped by the upstream
project, with hex uppercased to fit the validator. Only themes/ is
touched; generated output is left to CI.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WAKpAw1biNtpxi3VEb37Nw
Ubuntu 22.04's apt bats (1.2.1) predates BATS_TEST_TMPDIR, so the
variable expands empty and mktemp/mkfifo templates resolve to the
filesystem root, failing with permission denied.
Vaporwave Control Room: A terminal theme for when the LLM is confidently not listening.
…lej/improve-vaporwave-control-room"

Source commit: e420eca
theme: Add X theme family (12 palettes)

This branch has not been deployed

No deployments
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

⤵️ pull merge-conflict Resolve conflicts manually

Projects

None yet

Development

Successfully merging this pull request may close these issues.