• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

umputun / agterm / 28926497599
98%

Build:
DEFAULT BRANCH: master
Ran 08 Jul 2026 07:51AM UTC
Jobs 1
Files 56
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

08 Jul 2026 07:48AM UTC coverage: 98.992% (-0.04%) from 99.035%
28926497599

push

github

web-flow
feat: follow macOS light/dark appearance via ghostty's dual theme value (#74)

* feat: follow macOS light/dark appearance via ghostty's dual theme value

The AppSettings.theme field now holds either a plain bundled name or
ghostty's native dual form (light:NAME,dark:NAME) - the dual form IS the
"track the macOS appearance" state, exactly ghostty's own model (and
kitty's presence-of-the-dark-variant opt-in). No extra fields, no toggle.

The pinned libghostty cannot switch a dual theme value at runtime, so
agterm resolves the active side itself (ThemeResolution, host-free) and
rewrites + reloads the config when the OS appearance flips (a surface's
viewDidChangeEffectiveAppearance posts .agtermSystemAppearanceChanged;
SettingsModel debounces and no-ops when the resolved side is unchanged).

Settings UI: two always-visible pickers, no toggle. "Theme" (relabeled
"Light theme" while a dark theme is set) and "Dark theme" with a "none"
row - picking a dark theme composes the dual value (the light side seeds
from the current theme, else Builtin Light); "none" collapses back to
the plain theme.

Theme palette (View > Select Theme...): previews are plain names that
naturally override the dual value; commit replaces the CURRENT
appearance's side (the pair is kept); committing "default ghostty" over
a pair collapses to no theme. The picker badges/opens on the effective
(on-screen) theme.

Control API, per-slot (mirrors the pickers over the same SettingsModel
setters): `theme set NAME` sets the light/single slot keeping a dark
slot; `theme set --dark NAME` sets the dark slot (starts syncing);
`theme set --dark none` clears it; `--light X --dark Y` sets both; bare
`theme set` resets to ghostty's built-in. Responses echo the full state
(result.theme / sync / light / dark; theme absent while syncing).
theme.list carries the same sync state; the CLI marks both sides and
prints a header while syncing.

Chrome follows: selection colors re-resolve per appearance, COLOR_CH... (continued)

41 of 43 new or added lines in 5 files covered. (95.35%)

3831 of 3870 relevant lines covered (98.99%)

7768830.79 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
96.8
-0.47% agtermCore/Sources/agtermCore/ControlDispatcher.swift
Jobs
ID Job ID Ran Files Coverage
1 28926497599.1 08 Jul 2026 07:51AM UTC 56
98.99
GitHub Action Run
Source Files on build 28926497599
  • Tree
  • List 56
  • Changed 5
  • Source Changed 5
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #28926497599
  • 9729c0d0 on github
  • Prev Build on master (#28926192921)
  • Next Build on master (#28962601683)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc