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` is a CLI tool for managing local application configuration. 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
`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.
`symconf` also facilitates dynamically setting system and application "themes," symlinking
matching theme config files for registered apps and running config reloading scripts.
## 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:
For
example, the following `symconf` call coordinates a light to dark mode switch
- **GTK**: reacts to the mode setting and sets `prefer-dark` system-wide, changing general
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)