6.5 KiB
Usage
usage: symconf [-h] [-c CONFIG_DIR] [-v] {config,generate,install,update} ...
Manage application configuration with symlinks.
options:
-h, --help show this help message and exit
-c CONFIG_DIR, --config-dir CONFIG_DIR
Path to config directory
-v, --version Print symconf version
subcommand actions:
{config,generate,install,update}
Additional argument details:
-h --help
: print help message-c --config-dir
: the location of thesymconf
config directory. Assumes$XDG_CONFIG_HOME
(e.g.,~/.config/symconf/
) by default.
config
subcommand
The config subcommand applies symlinks for registered application routes that meet specified constraints.
usage: symconf config [-h] [-s STYLE] [-m MODE] [-a APPS] [-T TEMPLATE_VARS [TEMPLATE_VARS ...]]
Set config files for registered applications.
options:
-h, --help show this help message and exit
-s STYLE, --style STYLE
Style indicator (often a color palette) capturing thematic details in a config file
-m MODE, --mode MODE Preferred lightness mode/scheme, either "light," "dark," "any," or "none."
-a APPS, --apps APPS Application target for theme. App must be present in the registry. Use "*" to apply to all registered apps
-T TEMPLATE_VARS [TEMPLATE_VARS ...], --template-vars TEMPLATE_VARS [TEMPLATE_VARS ...]
Groups to use when populating templates, in the form group=value
symconf config
is the subcommand used to match and set available config files for registered applications-a --apps
: comma-separate list of registered apps, or"*"
(default) to consider all registered apps.-m --mode
: preferred lightness mode/scheme, eitherlight
,dark
,any
, ornone
.-s --style
: style indicator, often the name of a color palette, capturing thematic details in a config file to be matched.any
ornone
are reserved keywords (see below).-T --template-vars
: additional groups to use when populating templates, in the form<group>=<value>
, where<group>
is a template group with a folder$CONFIG_HOME/groups/<group>/
and<value>
should correspond to a TOML file in this folder (i.e.,<value>.toml
).
generate
subcommand
The generate subcommand fills in templates with theme values matched under provided constraints,
usage: symconf generate [-h] -o OUTPUT_DIR [-s STYLE] [-m MODE] [-a APPS] [-T TEMPLATE_VARS [TEMPLATE_VARS ...]]
Generate all template config files for specified apps
options:
-h, --help show this help message and exit
-o OUTPUT_DIR, --output-dir OUTPUT_DIR
Path to write generated template files
-s STYLE, --style STYLE
Style indicator (often a color palette) capturing thematic details in a config file
-m MODE, --mode MODE Preferred lightness mode/scheme, either "light," "dark," "any," or "none."
-a APPS, --apps APPS Application target for theme. App must be present in the registry. Use "*" to apply to all registered apps
-T TEMPLATE_VARS [TEMPLATE_VARS ...], --template-vars TEMPLATE_VARS [TEMPLATE_VARS ...]
Groups to use when populating templates, in the form group=value
symconf generate
is a subcommand that can be used for batch generation of config files. It accepts the same arguments assymconf config
, but rather than selecting the best match to be used for the system setting, all matching templates are generated. There is one additional required argument:-o --output-dir
: the directory under which generated config files should be written. App-specific subdirectories are created to house config files for each provided app.
install
subcommand
The install subcommand runs the install.sh
scripts for registered apps.
usage: symconf install [-h] [-a APPS]
Run install scripts for registered applications.
options:
-h, --help show this help message and exit
-a APPS, --apps APPS Application target for theme. App must be present in the registry. Use "*" to apply to all registered apps
symconf install
: runs install scripts for matching apps-a --apps
: comma-separate list of registered apps, or"*"
(default) to consider all registered apps.
update
subcommand
The update subcommand runs the update.sh
scripts for registered apps. This
action expects the install process for each matched app to have been run
beforehand.
usage: symconf update [-h] [-a APPS]
Run update scripts for registered applications.
options:
-h, --help show this help message and exit
-a APPS, --apps APPS Application target for theme. App must be present in the registry. Use "*" to apply to all registered apps
symconf update
: runs update scripts for matching apps that specify one-a --apps
: comma-separate list of registered apps, or"*"
(default) to consider all registered apps.
Matching factors
The keywords any
and none
can be used when specifying --mode
, --style
,
or as a value in --template-vars
(and we refer to each of these variables as
factors that help determine a config match):
-
any
will match config files with any value for this factor, preferring config files with a valuenone
, indicating no dependence on the factor. This is the default value when a factor is left unspecified. -
none
will match"none"
directly for a given factor (so no special behavior), but used to indicate that a config file is independent of the factor. For instance,symconf config -m light -s none
will match config files that capture the notion of a light mode, but do not depend on or provide further thematic components such as a color palette.
Examples
-
Set a dark mode for all registered apps, matching any available style/palette component:
symconf config -m dark
-
Set
solarized
theme forkitty
and match any available mode (light or dark):symconf config -s solarized -a kitty
-
Set a dark
gruvbox
theme for multiple apps (but not all):symconf config -m dark -s gruvbox -apps="kitty,nvim"
-
Set a dark
gruvbox
theme for all apps, and attempt to match other template elements:symconf config -m dark -s gruvbox -T font=mono window=sharp
which would attempt to find and load key-value pairs in the files
$CONFIG_HOME/groups/font/mono.toml
and$CONFIG_HOME/groups/window/sharp.toml
to be used as values when filling templatized config files.