Such a tool permits to have your $HOME mounted with a memory filesystem and populate it from an explicit list of files and directories hooked from a persistent storage directory (like a place in your /home partition), the point is to have a clean and reproducible environment every time you log in with only the content you selected. No more extra files when you start a program only once.
Using rcctl: `rcctl set impermanence flags -d /home/persist/ -u my-user` and `rcctl enable impermanence`.
### Alpine Linux
Lazy way is to enable the service local with `rc-update add local`, and create two files `/etc/local.d/99-impermanence.start` and `/etc/local.d/99-impermanence.stop` with the following content:
The configuration file describes the size of the memory filesystem, the list of files and the list of directories that should be added to the filesystem as symbolic links from the persistent directory.
If you want to add a file to the persistent area after a change, you may want to know exactly what changed on disk to add the file or directory to your configuration file.
When using this way of life, you need to remember all changes that don't belong in the persistent areas will be lost. For example, this will happen for all new files or directories at the root of your $HOME.
If you are using your system and want to keep a newly created file or directory, move it to your persistent area at the correct place and create a symbolic link, this will allow a drop-in replacement without rebooting.
There are no good or bad configuration file content (except if it's invalid obviously). The whole point of impermanence is to hand-pick every directories and files you want to run your session, by admitting all others files will be thrown away at reboot.
While you can list `.config` and `.local` which is a very large include, you could rather list only a subset of those, which will make a long list and require a few guess&fix sessions to get the things right.
If you are actively tweaking your configuration file, you may have issues when impermanence is unmounting the ramdisk device even with your graphical session stopped, a process may still be running and using the partition. You would have to find the running PID by looking at processes and their owner and kill it.
As a side effect, you shouldn't be able to stop impermanence while you are using your session because the system will prevent the ramdisk to be umounted.