# config/obs-studio and is symlinked into place -- home-manager's # programs.obs-studio module only wraps the package and its plugins, it has no # options for profiles or scene collections. # # recursive = true matters: without it home-manager would symlink the whole # ~/.config/obs-studio directory into the nix store, and OBS could not create # logs/, plugin_config/ or basic/scenes/ inside a read-only store path. With it, # the directories are real and only the tracked files are links. # # OBS rewrites its own config on exit (user.ini geometry/DockState, # global.ini LastVersion, basic.ini whenever settings change). Those writes # replace the symlink with a regular file. force = true makes the next # nixos-rebuild switch overwrite it without a backup -- a .hm-bak would only # collide with the previous one and fail activation. The repo is the source of # truth, so anything changed in the OBS GUI that should stick has to be copied # back before rebuilding: # # cp -a ~/.config/obs-studio/user.ini config/obs-studio/user.ini # # Iteration loop: edit config/obs-studio/... -> git add if new -> # nixos-rebuild switch -> restart OBS. { ... }: { programs.obs-studio = { enable = true; # plugins = with pkgs.obs-studio-plugins; [ ]; }; xdg.configFile."obs-studio" = { source = ../config/obs-studio; recursive = true; force = true; }; }