Hey there,
Does anybody know if it’s possible today to define/change the
content-interface target directory when the interface is being
connected? If that’s not possible yet, is it on the snappy team roadmap?
(The content interface doesn’t seem to
cover that topic)
That’s something we think is going to be needed to get themes to work.
Indeed the way GTK/GNOME works we need to make the theme available under
$share/theme/<theme_name>. Since we don’t know in advance what theme the
application is going to need we don’t know what directory to create at
build time (or we would need to create empty directories for all the
existing themes and rebuild every time a new theme is uploaded to the
store, and that would not cover locally built theme snaps).
Here is an example of the proposed definitions in case it helps
understanding the problem
- the theme snap would have this declaration
slots:
ambiance:
interface: content
content: desktop-theme
read:
- /usr/share/themes/Ambiance
- the gtk-demo snap
plugs:
themes:
interface: content
target: $SNAP/share/themes/$THEME_NAME
default-provider: ubuntu-themes
The issue is that the target directory needs to be created dynamically
since it has to reflect the name of the theme mounted…
We also need to be able to do several desktop-theme mounts under
different directories (if the machine wants to make several themes
available to the users).
We do need to mount the different themes together because:
- the snaps mounts are not specific to one user and different users on
the same system might use the snap under different desktop environments
or with different themes - GNOME allows to change themes dynamically by setting a gsettings key,
that needs to keep working
Does anybody know how that could be made to work or maybe some idea of
alternative solution?
Cheers,
Sebastien Bacher