Change Snap Theme

If you avoid using Snap apps because they don’t match your system theme, spoiling an otherwise well-crafted desktop aesthetic, you’re not alone — but did you know that there’s a workaround?

Canonical maintain a gtk-common-themes Snap app. This bundle contains Snap versions for some of the best GTK themes including well-worn faves like Adwaita, Arc, Materia, and Greybird.

For maximum helpfulness the bundle is even installed by default on Ubuntu.

Whenever you change theme to one included in this bundle all (compatible) Snap apps “match” it, no extra effort required on your part:

Greybird dark theme
Greybird Dark is an automatic match

But what happens if you use a GTK theme NOT included in the Snap theme bundle?

Well, right now, Snap apps will use the standard Adwaita theme when the system GTK theme is not included in the gtk-common-themes bundle. Superficial or not, the mismatch is jarring enough to put some people off of using Snap apps entirely.

But until better theme integration arrives in Snaps — spoiler: automatic theme installation is on the way — here’s a workaround.

Solution: Use a Matching Snap Theme

People are now packaging GTK and icon themes as Snap apps and putting them on the Snap Store for easy installation. A variety of popular GTK themes are currently available as ‘Snap themes’ including Adapta, Layan, Orchis, Mojave, Canta, Qogir, and Vimix. More will likely follow.

Presently you need to install each additional Snap theme individually and, more crushingly, you have to manually configure your setup to make Snap’d software use them — and repeat the step each time you install new Snap apps.

The latter step, as you’ll shortly see, is quite off-putting.

So let’s look at an example.

Let’s say you use the colourful Layan theme as your desktop theme (and you dang well might as it’s pretty sassy) but you want your Snap apps to use it too because currently they look like this:

Layan gtk theme with snap app not matching
Cawbird Snap app doesn’t match…

First, install the Layan theme snap:

sudo snap install layan-themes

Then run this command to get Snap apps to use the Layan themes package and not something from the gtk-common-themes package:

for i in $(snap connections | grep gtk-common-themes:gtk-3-themes | awk '{print $2}'); do sudo snap connect $i layan-themes:gtk-3-themes; done

Yeah: I did say this bit is a little scary looking! There is a shorter (but no less obtuse) command in the Ubuntu France forum if you’re interested.

In the near future, this command won’t be necessary but, for now, it is.

Now whenever you set Layan as your system theme all compatible Snap apps will “match” it in looks:

Layan theme with snap app matching
Cawbird Snap app using Layan theme

You can enhance the look further as several popular icon themes are also available as Snaps. Sadly you have to connect an icon pack in the same manner as a theme (but spoiler: the relevant code is usually listed on the theme’s Snap store listing).

You also need to re-run the command each time you install a new Snap app (though you can connect apps individually if you prefer).

But for the sake of consistency I think it’s worth the extra effort!

h/t Gérald M.

How To

Eye Candy

layan

snap apps

themes