2026-09-18 00:33:06 +02:00
2026-09-18 00:21:20 +02:00
2026-09-18 00:21:20 +02:00
2026-09-18 00:21:20 +02:00
2026-09-18 00:21:20 +02:00
2026-09-18 00:21:20 +02:00
2026-09-18 00:33:06 +02:00
2026-09-18 00:21:20 +02:00
2026-09-18 00:21:20 +02:00
2026-09-18 00:21:20 +02:00
2026-09-18 00:33:06 +02:00
2026-09-18 00:21:20 +02:00

tint

A small wrapper around Tinty that manages light/dark theme pairs and applies the selected theme to Ghostty, Zed, Herdr, and OMP.

Requirements

This setup targets macOS and requires:

  • Homebrew
  • Go 1.26 or newer
  • Tinty 0.34 or newer
  • dark-notify for automatic switching when macOS changes appearance
  • make from the Xcode Command Line Tools

Install the required tools:

xcode-select --install
brew tap tinted-theming/tinted
brew install tinty go
brew install cormacrelf/tap/dark-notify

Ghostty, Zed, Herdr, and OMP are optional consumers. Install only the applications you use.

Install

From this directory, run:

make install

The installer:

  • Builds ~/.local/bin/tint.
  • Installs config.toml under $XDG_CONFIG_HOME/tinted-theming/tinty, or ~/.config/tinted-theming/tinty when XDG_CONFIG_HOME is unset.
  • Copies state.toml only when no state file already exists.
  • Creates ~/.config/herdr/config.toml if needed.
  • Runs tinty sync to download the configured theme repositories.
  • Creates and loads a dark-notify LaunchAgent for automatic macOS appearance switching.

Add the binary directory to your shell path:

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

Verify the installation:

which tint
tinty --version
tint

Automatic light/dark switching

make install creates and loads ~/Library/LaunchAgents/dev.tinty.dark-notify.plist. The agent starts at login, restarts if it exits, and invokes tint light or tint dark whenever macOS changes appearance.

Confirm that the agent is running:

launchctl print "gui/$(id -u)/dev.tinty.dark-notify"

Inspect its output if an application does not update:

tail -f ~/Library/Logs/dark-notify.log

Application setup

Ghostty

The Tinty hook writes:

~/.config/ghostty/themes/tinted-theming

Select it in the Ghostty configuration:

theme = tinted-theming

The hook sends SIGUSR2 to reload Ghostty after applying a theme.

Zed

The wrapper writes:

~/.config/zed/themes/tinty-current.json

After applying the first theme, select Tinty Current in Zed.

Herdr

The wrapper maintains a generated [theme.custom] block in:

~/.config/herdr/config.toml

When the herdr executable is available, the wrapper also runs herdr server reload-config.

OMP

The wrapper writes:

~/.omp/agent/themes/tinty-current.json

Configure OMP to use tinty-current where required.

Usage

Show the current pair and available commands:

tint

Select a named pair:

tint swamp

Apply one side of the current pair:

tint light
tint dark

Set both sides:

tint light:base16-swamp-light dark:base16-swamp-dark

Save and favorite a named pair:

tint pair swamp dark:base16-swamp-dark light:base16-swamp-light
tint favorite swamp

Force appearance selection for scripts or troubleshooting:

TINTY_PAIR_APPEARANCE=light tint swamp
TINTY_PAIR_APPEARANCE=dark tint swamp

Update

After changing or updating the wrapper source:

make install

Existing state.toml content is preserved.

Uninstall

make uninstall

This unloads and removes the LaunchAgent, log, and tint binary. It also removes configuration, state, and the empty Herdr configuration only when they were originally created by make install; pre-existing user files are preserved. Tinty itself and its shared data remain installed.

Licensed under GPL-3.0

In plain terms:

  • Anyone may use, copy, modify, and sell the software.
  • Distributed copies must remain GPL-3.0.
  • Modified versions must clearly say they were changed.
  • Distributing binaries requires providing the corresponding source code.
  • Recipients receive the same rights to modify and redistribute.
  • Distributors cannot add restrictions that contradict the GPL.
  • Patent rights cannot be used to make the software effectively proprietary.
  • Hardware distributors cannot prevent users from installing modified versions.
  • The software comes without warranty or liability.
  • Private use and private modifications impose no publication requirement.
  • Merely using the software over a network does not require publishing changes; that requirement belongs to the AGPL.

For details, see the actual LICENSE.

S
Description
Wraps tinty for even easier cross-program color scheme control and automatic theme switching synced to match the system theme. Supports the programs I use -- feel free to fork the repo and fit it to your needs.
Readme GPL-3.0 138 KiB
Languages
Go 91.8%
Makefile 8.2%