# Shchemes Automatically theming your apps with the power of the shell. ## Why Shchemes will support any theme format, app, or scheme you want, with a little leg work. It is less than 300 lines. It can go anywhere bash will, and will comfortably live in your dotfiles. Compare with [tinty](https://github.com/tinted-theming/tinty). ## Installation Clone the repo with submodules ``` git clone --recurse-submodules https://git.sys42.net/dakedres/shchemes.git ``` Symlink to it somewhere in your PATH. Pick your poison ```sh ln -s $PWD/shchemes ~/bin/shchemes ln -s $PWD/shchemes ~/.local/bin/shchemes ``` ## Usage Install your favorite base16 themes from tinted-themes: ```sh shchemes install_tinted_scheme --scheme=monokai ``` You can also exclude --scheme from any of these commands and it will read from your `SCHEME` environment variable. Append your theme to a config ```sh shchemes --scheme=base16:monokai create_theme kitty >> ~/.config/kitty/kitty.conf ``` If you want to be able to hotswap themes, you'll probably need to use injection. ```sh echo "#START SHCHEMES BLOCK : shchemes create_theme kitty" >> ~/.config/kitty/kitty.conf # Add the comment for the injection block shchemes --scheme=base16:monokai inject ~/.config/kitty/kitty.conf # Inject the theme ``` Here's an example script: ```bash export SCHEME="base16:horizon-terminal-dark" shchemes install_tinted_scheme shchemes inject "${HOME}/.config/kitty/kitty.conf" shchemes inject "$HOME/.config/rofi/config.rasi" bspwm_theme="$HOME/.config/bspwm/colors" shchemes create_theme bspwm > "$bspwm_theme" "$bspwm_theme" shchemes inject "${HOME}/.config/qutebrowser/config.py" pkill -HUP qutebrowser # Reload qutebrowser config ``` Note you'll have to add all the comments for where to place the injections See the [cookbook](./doc/cookbook.md) for some ideas on ways to use Shchemes. You can read the manual [in your browser](./doc/manual.md) or by running `shchemes help`. ## Credits This software is a work of opportunism - [mo](https://github.com/tests-always-included/mo) - Mustache templates in bash. Shchemes wouldn't be possible without it. - [tinted-theming/schemes](https://github.com/tinted-theming/schemes) - Several base16 themes - [deathbeam/base16-discord](https://github.com/deathbeam/base16-discord) - The base16 `better-discord` target - [mk12/base16-kitty](https://github.com/mk12/base16-kitty) - The base16 `kitty` target