varna वर्ण

Accepted ADR 0004 · 2026-10-21

#4. Reload running tools, but never from a throwaway HOME

#Context

A theme switch should show at once, without restarting anything: sway reloads its config, waybar its style on SIGUSR2, kitty its config on SIGUSR1, tmux re-sources a file per server, Neovim runs a function through --remote-expr (never typing into a buffer). But the reloaders find tools through the process table and runtime sockets, not through HOME: a test run with a throwaway HOME once restyled the developer's real tmux and switched the desktop to light mode.

#Decision

apply reloads only when HOME is the user's real home (core.live_home(), from the password database); otherwise it writes files and reloads nothing. Tools that can't reload live (the prompt, fzf, lazygit, swaylock) take the theme on their next start, and apply says so.

#Consequences

← All decisions · source