Problem applying themes in Ubuntu Mate 22.04

I have been using Ubuntu Mate since 2018 and so have a stable base of themes that I use frequently when I get bored of the current one. One of these themes is Adapta Colorpack.

I really like this theme, however, I have experienced some problems with the last Ubuntu Mate version that I have never experienced with Ubuntu Mate 20.04 or 18.04.

The thing is that, when I apply the theme, everything works fine, but when I log out and log in again (or shut down the computer and turn it on again) I notice that the window border theme has changed from the Adapta one to the default Yaru one.

This happens not only with the Adapta theme, but also with some other themes, in which, instead of changing the window border theme, it is the control theme (the inside of the application) that changes from the theme I applied to the default Yaru theme.

This bug is very annoying, since I would have to reapply the theme every time I log in again. I wonder which changes have been made in the last version of Mate (1.26) that break so many of my themes that worked in Mate 1.24, and whether there is a solution to this or not.

I can confirm this bug.

Although the theme that I use (Ambiant-dark) does not have this issue, I tested the adapta theme ( sudo apt install adapta-gtk-theme) and it indeed changes the windowborder to Yaru-light for apperently no reason.

Maybe @Frieder_Saugschmerle could shine a light on this, he knows an awful lot about theming.

Anyway, it is a bug in an official supported theme so you might want to file a bug against either adapta-gtk-theme or MATE-desktop

2 Likes

@tkn

You should try to oprn the mate theme settigs dialog. What happens if you set your wanted metacity theme and gtk theme manually as a custom theme?

Also have you tried to write a theme default settings file inside of ~/home/themes/Adapta?.

Next thing is you might want to change default theme at every login with dconf. Put the command as a starter on startup.
This is very hacky but i have such a configuration on my own pc too.

Also there are two dconf settinga for gtk theme. Maybe if ypu change one, the other change too. One is inaccesible from the settigs dialog.

2 Likes

I normally apply my themes manually by opening the theme settings dialog and choosing the icons, pointer, controls and window border themes separetely. What I did find right now, however, is that, at least for the Adapta theme, the problem is with the window decoration, since I tried using a different controls theme with the Adapta window decoration and it changed to Yaru at the next login; however, using Adapta for the controls theme with a window border decoration from another theme didn't trigger this bug and the window decoration didn't change to Yaru.

However, there are other themes in which the opposite happens, it is the controls theme (the main window) that changes, and it prevents one from using most of the desired theme.

I have never fully understood how themes are written and, despite having tried to read the files of some of them, they have always seemed a little cryptic to me, so I have zero experience tweaking or creating them.

I thought about something similar yesterday, but I didn't like the feeling of having to do so much work for something like this to work. I have a slight feeling of frustration with this release of Mate, because I keep finding things that used to work and no longer do, like having to change the lightdm login background by editing files because the settings application that used to let me do it graphically no longer works, or the removal of some applets from the panels to name a few.

first workauround:
We have something called index.theme for each mate theme. Custom themes drop them sometimes and yes i can confrm your bug. However pleasse try if creatijng the index.theme files fixes the problem.

Then they arte like the preinstalled themes.

Firstly lets take a look at YaruOk!
I did create a local copy in folder ~/.themes/YaruOk
Inside that folder you can add a file named index.theme

[Desktop Entry]
Type=X-GNOME-Metatheme
Name=YaruOk
Comment=Port of Clearlooks-Phenix and Traditional OK
Encoding=UTF-8

[X-GNOME-Metatheme]
GtkTheme=YaruOk
MetacityTheme=YaruOk
IconTheme=mate
CursorTheme=mate
CursorSize=24
ButtonLayout=:minimize,maximize,close

Second example i have created a folder named leopard in ~/.themes
with the following Content:

[Desktop Entry]
Name=Leopard
Type=X-GNOME-Metatheme
Comment=

[X-GNOME-Metatheme]
GtkTheme=Devil-Leopard
MetacityTheme=Devil-Leopard-globalmenu
IconTheme=Mac-OS-X-Lion-master
GtkColorScheme=tooltip_fg_color:#ffffff,tooltip_bg_color:#343434
CursorTheme=Win-8.1-S
CursorSize=32

Second workaround:
Last hack create a startup applications wirth the following code
a-start-theme.desktop

dconf write /org/mate/desktop/interface/gtk-theme "'Aero40'"

a-start-icon.desktop

dconf write /org/mate/desktop/interface/icon-theme "'Aero40'"

a-start-window.desktop

dconf write /org/mate/marco/general/theme "'Aero40'"

3 Likes

I did now try to explain what happens if the index.theme file is missing and how you can workaround that by creating that text file. If that doesnt work use the second hack i mentioned.

Its very important for both workarounds to use clear folder Names without any funny intendations in the folder name and to use the name of the folder the theme is in as theme name.
It might be Adapta but if its in adapta folder you use adapta as theme name. If it is Arc Funny Blue your rename the folder name to arcfunnyblue. and you use arcfunnyblue as theme name. Believe me its easier that way!

3 Likes

The first approach did not work, unfortunately, but the second one did. I created a bash script with those three lines and changed the values to the corresponding theme folder name and made it execute at login. Now, I assume every time I log in it applies said configuration as if I did it manually.

I want to point out though that in the line quoted above, I had to change Marco to marco for it to work, so keep that in mind.

Also, I wanted to thank you for your help. Even if it is not the way in which the user is supposed to interact with Mate appearance settings, at least your approach gets the desired result without much effort. I hope though that the bug will be solved in the future.

That can also be fixed, follow the instructions in this link:

2 Likes

Thats somewhat true. I suspect its just one of the gschema.override files causing this.
But i dont recommend to modify these system files unless absolutely necessary. Running a command to change some dconf setting on startup for an specific user is much safer.

2 Likes