From d7b9ea2ee57b1d8dddf04848b010ba086096f2eb Mon Sep 17 00:00:00 2001 From: rowan Date: Fri, 7 Mar 2025 10:53:05 -0600 Subject: [PATCH] basic readme --- README.md | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..53335a3 --- /dev/null +++ b/README.md @@ -0,0 +1,34 @@ +# configctl +a simple wrapper around fuse-overlayfs to manage multiple config changesets + +# Why? +i have an unhealthy relationship with overlayfs. i also like to easily change my desktop themes without a bunch of symlink swapping + +# Requirements +* fuse-overlayfs +* systemd + +# Usage + +```sh +configctl [unmount] +``` + +by default, the configctl expects the base configuration set to exist in `$XDG_DATA_HOME/config/base` (usually `~/.local/share/config/base`) and the changesets to exist in `$XDG_DATA_HOME/config/changeset`. changes while the configuration is mounted will be written to `$XDG_STATE_HOME/config/{,.work_}` + +```sh +configctl my_config +``` + +executing the previous command will do the following +* search for `$XDG_DATA_HOME/config/changeset/my_config` +* create the following directories if they don't already + * `$XDG_STATE_HOME/config/my_config` + * `$XDG_STATE_HOME/config/.work_my_config` +* create a service file in `$XDG_CONFIG_HOME/systemd/user/my_config-automount.service` +* mount the base config and the selected changeset + +enabling the service file will mount the config on next user login + +# Issues +while technically supported, it's not possible to change or unmount a changeset once mounted. this is because the mount will become immediately busy, preventing `fusermount` from being able to unmount it.