# home-impermanence OpenBSD compatible implementation of the [impermanence project from the NixOS community](https://nixos.wiki/wiki/Impermanence) 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, 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. # Configuration The configuration is done in two part, system wide to configure the **impermanence** service that will mount the memory filesystem and populate it. ## System wide Using rcctl: `rcctl set impermanence flags -d /home/persist/ -u my-user` and `rcctl enable impermanence`. ## User configuration The user configuration will be done in `/home/persist/my-user/impermanence.yml` if you chose `-d /home/persist` for the service and `-u my-user`. 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. # home-impermanence rc service ## Restart The restart parameter to the service will unmount the device and recreate it, allowing a fresh restart. ## Reload The reload parameter to the service will check the configuration file and will create missing links or overwrite files from the temporary filesystem with a symlink to the persistent storage if any. This should be used when you add a file or directory to your configuration and you want to update your current living system. ## Start Creates and populates the home filesystem. ## Stop Umount the home filesystem.