home.persistence

type

attribute set of submodule

default

{
  home.persistence = {};
}

home.persistence.<name>.allowOther

Whether to allow other users, such as root, access to files through the bind mounted directories listed in directories. Requires the NixOS configuration parameter programs.fuse.userAllowOther to be true.

type

null or boolean

example

{
  home.persistence.<name>.allowOther = true;
}

default

{
  home.persistence.<name>.allowOther = null;
}

home.persistence.<name>.directories

A list of directories in your home directory that you want to link to persistent storage.

type

list of string

example

{
  home.persistence.<name>.directories = [
    "Downloads"
    "Music"
    "Pictures"
    "Documents"
    "Videos"
    "VirtualBox VMs"
    ".gnupg"
    ".ssh"
    ".local/share/keyrings"
    ".local/share/direnv"
  ];
}

default

{
  home.persistence.<name>.directories = [];
}

home.persistence.<name>.files

A list of files in your home directory you want to link to persistent storage.

type

list of string

example

{
  home.persistence.<name>.files = [
    ".screenrc"
  ];
}

default

{
  home.persistence.<name>.files = [];
}

home.persistence.<name>.removePrefixDirectory

Note: This is mainly useful if you have a dotfiles repo structured for use with GNU Stow; if you don't, you can likely ignore it.

Whether to remove the first directory when linking or mounting; e.g. for the path "screen/.screenrc", the screen/ is ignored for the path linked to in your home directory.

type

boolean

example

{
  home.persistence.<name>.removePrefixDirectory = true;
}

default

{
  home.persistence.<name>.removePrefixDirectory = false;
}