From 39d52fbbcfeae42419fe9f78d6d9b46df9691073 Mon Sep 17 00:00:00 2001 From: Jonny Barnes Date: Sun, 9 Aug 2026 12:53:03 +0100 Subject: [PATCH] Record verified light-mode results for the theme hooks Tested with the system actually in light mode rather than inferred from dark: - the status bar switches in the same second client-light-theme fires - a fresh nvim reports background=light, so the OSC 11 round trip through tmux to ghostty works and restarting nvim is genuinely sufficient - delta resolves syntax-theme = GitHub, its light default, against Monokai Extended on dark, so it does detect the terminal background Both the nvim and delta checks needed a real tty to be meaningful. Run with stdout on a pipe they each fall back to their dark default, which looks like a correct answer while proving nothing. Also documents why the first Light switch did not move the status bar: tmux enables the terminal's theme-reporting mode when a client attaches, so the client that predated these hooks was never asked to report changes. A detach and reattach fixes it, and a fresh server never sees it. Co-Authored-By: Claude Opus 5 (1M context) --- README.md | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ff64126..0cb8c9b 100644 --- a/README.md +++ b/README.md @@ -84,8 +84,19 @@ toggling Light/Dark by hand — nothing in the chain knows why it changed. > [!NOTE] > A running nvim will not follow a live change: the docs are explicit that the > TUI sets `background` *on startup* if it can detect it. New instances are -> fine; existing ones need `:set background=light` or a restart. delta is -> per-invocation so should be fine, but that is untested here. +> fine — verified, a fresh nvim in light mode reports `background=light` — but +> existing ones need `:set background=light` or a restart. + +Verified in light mode: the status bar switches in the same second the hook +fires, a fresh nvim detects `light`, and delta resolves its light default +(`syntax-theme = GitHub`, against `Monokai Extended` on dark). + +> [!TIP] +> When adding these hooks to an *already running* tmux server, detach and +> reattach. tmux enables the terminal’s theme-reporting mode when a client +> attaches, so a client that predates the hooks never gets asked to report +> changes — `#{client_theme}` still reads correctly, because that is answered by +> a direct query, but no hook fires until the client reattaches. > [!NOTE] > This previously used [`dark-mode-notify`](https://github.com/bouk/dark-mode-notify)