Request for personal-files interface for obs-studio

OBS Studio outside of snap confinement stores its configuration files and supporting data into $XDG_CONFIG_HOME/obs-studio. Please can the store assert that the obs-studio snap be allowed to use the following personal-files interface definition:

plugs:
  obs-config-dir:
    interface: personal-files
    write: [$HOME/.config/obs-studio]

This will be added to the obs-studio snap via PR 24 (https://github.com/snapcrafters/obs-studio/pull/24/files)

Can you please explain why the existing snap specific $HOME is not suitable or what issues this is causing? If this were to use the real $HOME if the user runs a non-snap version of OBS Studio will it result in issues in the shared use of this directory?

Upstream often indicate the path for adding user-defined plugins that aren’t shipped with the application. There is also the potential for users to be migrating from non-snapped installation into a snapped variant so it is expected that the snap pick-up their existing configurations such as scene layouts and encoding preferences.

In terms of compatibility I do not know whether there is a problem with sharing the configuration directories :frowning:

I’m expecting that this be rejected, but I felt that it should at least be discussed first :slight_smile:

If it is approved for this snap, there isn’t a snap on earth for which it should be rejected :wink:

for their own files, no. This request is for specifically obs-owned files. The path in .config is namespaced.

As is everything else which follows the XDG spec. If I can be unnecessarily dramatic for a moment, this is an existential crisis for the snap confinement model. Either we persuade the world to do things differently or we dump the plan to remodel the world into little confined boxes.

I could imagine this could be handled using just the read permission for this path and using a command-chain script to migrate things from the real $HOME to the snap-specific $HOME. This could then try and detect any possible versioning incompatibilities etc and handle them, and so could possibly avoid many problems with a shared location (but would take more work on your part to implement this).

1 Like

This is actually the primary use case for personal-files: read on a directory/file that upstream is the owner of to import data into the snap.

@daniel - does this make sense for your snap?

Yes this could be workable… I’ll have a poke tomorrow to see what’s what.