minor README update

This commit is contained in:
Sam G. 2024-08-11 01:19:13 -07:00
parent bf311d57a5
commit e2f1fd30b6

View File

@ -1,12 +1,34 @@
# Overview # Symconf
`symconf` is a CLI tool for managing local application configuration. It uses a simple `symconf` is a CLI tool for managing local application configuration. It implements a
operational model that symlinks centralized config files to their expected locations across general model that supports dynamically switching/reloading themes for any application,
one's system. This central config directory can then be version controlled, and app and makes it easy to templatize your config files.
config files can be updated in one place.
`symconf` also facilitates dynamically setting system and application "themes," symlinking ## Quick example
matching theme config files for registered apps and running config reloading scripts. 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:
For - **GTK**: reacts to the mode setting and sets `prefer-dark` system-wide, changing general
example, the following `symconf` call coordinates a light to dark mode switch GTK-responsive applications like Firefox (and subsequently websites that are responsive to
`prefers-color-scheme`)
- **kitty**: theme template is re-generated using the dark `gruvbox` palette, and `kitty`
processes are sent a message to live reload the new config
- **neovim**: a `vim` theme file is generated from the `gruvbox` palette, and running
instances of `neovim` are 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 `gruvbox`
colors, and `swaymsg reload` is called
- **fzf**: a palette-dependent theme is re-generated for `gruvbox` colors 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](/USAGE.md)