34 lines
1.3 KiB
Markdown
34 lines
1.3 KiB
Markdown
# 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 <changeset> [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/{<changeset>,.work_<changeset>}`
|
|
|
|
```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.
|