Shared UI Themes

Michał Sawicz michal.sawicz at
Thu Mar 16 10:34:40 UTC 2017

Hi all,

One of the interfaces we listed as things to be done to support UI
applications proper was UI themes.

Albert had a stab [1] at approaching this, but I'd like to discuss what
we want here long-term, how flexible we want this to be.

Right now the approach he's taken was to have a single snap
(ubuntu-app-themes) that content-shares our preferred themes, and have
the desktop helpers look there unconditionally.

While this works, it feels like it'd be quite limiting, so we thought we
discuss this in a wider forum.

Ideally, I think, we should have per-toolkit, versioned, theme
interfaces (gtk3-theme, qt5-theme). Can this be achieved with properties
of the content interface?

One problem with that is that approach is we wouldn't have a way to
change the theme globally, for all snaps, unless we change the
connections when the user selects a different theme.

Question is, how do we tell apps which theme to use or where to find it?
If a user connects a particular snap to a different theme, how do we
tell the snapped app to use it? I'm thinking interface hooks here, the
plugging snap would have to store some environment variables on
connection. Alternatively, a launch helper could check the connected
slot and modify the environment based on that?

Each theme could then be snapped separately (we could also have bundles
of themes - say, matching themes for multiple toolkits, or a group of
themes from the same source?).

On Ubuntu, we'd auto-connect our themes, other platforms would likely
want to auto-connect some others?


Michał Sawicz <michal.sawicz at>
Canonical Ltd.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 841 bytes
Desc: OpenPGP digital signature
URL: <>

More information about the Snapcraft mailing list