Theme / terminal / keyboard
A consistent workspace, across tools.
Color tokens live in one place and are loaded by the shell and Lua configurations. WezTerm follows the same light or dark choice, while Neovim can read that choice when it starts.
Shared state
One palette, several consumers.
The files under home/.config/theme supply base tokens to Zsh, Neovim and WezTerm.
Color tokens
colors.env defines the base tokens; colors.zsh and colors.lua expose them to shell and Lua code.
Theme command
theme light and theme dark update runtime state, shell colors and the theme signal shared with WezTerm.
Editor & terminal
Neovim reads NVIM_THEME; WezTerm uses the shared palette and theme_mode for tabs and panes.
WezTerm
More than a color scheme.
The terminal configuration groups palette, UI, keys and plugins in separate Lua modules. smart-splits connects its panes with the editor.
theme dark theme light # Optional editor override NVIM_THEME=light nvim # Theme state ~/.local/state/dotfiles/theme
Other modules
Keyboard and supporting tools.
Karabiner holds the macOS-only key rules and automatic configuration snapshots. tmux, IdeaVim and custom scripts are documented separately in the repository.
Review before copying
Some Karabiner rules call AppleScript, macOS tools or absolute paths. The repository documentation flags these as settings to review on another machine.