From e2f1fd30b6289bec55dc9d25f170ec37f3cde64b Mon Sep 17 00:00:00 2001 From: "Sam G." Date: Sun, 11 Aug 2024 01:19:13 -0700 Subject: [PATCH] minor README update --- README.md | 40 +++++++++++++++++++++++++++++++--------- 1 file changed, 31 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 933eab2..b428516 100644 --- a/README.md +++ b/README.md @@ -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)