Symconf
symconf is a CLI tool for managing local application configuration. It implements a
general model that supports dynamically switching/reloading themes for any application,
and makes it easy to templatize your config files.
Quick example
The single command symconf config -m dark -s gruvbox indicates a dark mode preference and
that the gruvbox palette should be used. In this example, invoking this command kicks
off several app-specific process to update the system state:
- GTK: reacts to the mode setting and sets prefer-darksystem-wide, changing general GTK-responsive applications like Firefox (and subsequently websites that are responsive toprefers-color-scheme)
- kitty: theme template is re-generated using the dark gruvboxpalette, andkittyprocesses are sent a message to live reload the new config
- neovim: a vimtheme file is generated from thegruvboxpalette, and running instances ofneovimare sent a message to re-source this theme
- waybar: bar styles are updated to match the mode setting
- sway: the background color and window borders are dynamically set to base gruvboxcolors, andswaymsg reloadis called
- fzf: a palette-dependent theme is re-generated for gruvboxcolors and re-exported
- rofi: launcher text and highlight colors are set according to mode
Behavior
It uses a simple operational model that symlinks centralized config files to their expected locations across one's system. This central config directory can then be version controlled, and app config files can be updated in one place.
symconf also facilitates dynamically setting system and application themes. You can
create themed variants of your config files, and symconf will "swap out" the matching
theme config files for registered apps and running config reloading scripts.
Usage
See more in USAGE