Switch the theme live
Widgets copy their colors when they are created, so they now get role tokens (one unique RGB value per role) instead of colors, and a wrapper around the tcell screen replaces the tokens with the current theme's colors in SetContent. Changing the theme in the Config view swaps that table; the next draw recolors everything. Poster colors that equal a token are nudged off it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019reK4DUGYqDUjniWYJvwUW
This commit is contained in:
@@ -144,7 +144,7 @@ func (r *toastRoot) Draw(screen tcell.Screen) {
|
||||
if t.expires.Sub(now) < toastFade {
|
||||
fg = named("gray") // fade out
|
||||
}
|
||||
style := tcell.StyleDefault.Background(current.toast).Foreground(fg)
|
||||
style := tcell.StyleDefault.Background(tokens.toast).Foreground(fg)
|
||||
for cx := x; cx < x+width; cx++ {
|
||||
screen.SetContent(cx, y, ' ', nil, style)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user