Changing The Default Appearance Theme

Hello people of the community.

I was wondering if there was a way to change or override the default setting for The appearance theme. I have a theme that I want to use (an actual theme, not a custom theme made in the ui), but I don’t know how to make the system default to the theme when a new user has been created.

I’ve tried this guide (How to do change the default settings?), but I’m a bit confused on what I need to do. I don’t know if I need to create an override file or edit one.

If I need to create a new file, is there a template I can use?

If I need to edit one, which one do I need to edit?

Any help is appreciated! Thanks!

When you installed the theme, did you install it the the themes folder in your own user account or did you install it in the global themes folder?

If you installed it in the global themes folder, then you just need to log in as the user in question and apply the new theme by going to system/preferences/look and feel/appearance. Thereafter, whenever this user logs in, the theme will be the default one.

On the other hand, if you installed the theme to the themes folder for a specific user, then you need to repeat this installation process when logged in as the other user. And then apply the theme for that user by again going to system/preferences/look and feel/appearance

The theme is in /usr/share/themes, and it shows up in other user accounts.

What I’m asking is if there is a way to have the system use a specific theme by default whenever a new user is created. This setting should be global, on all users and guests.

I think the default config files used when creating a new user are in /etc/skel but I’m not sure how to setup a default theme, as it’s stored in Dconf.

EDIT: oh, I hadn’t looked at the link you put. I guess you’ll simply have to create an override file in /usr/share/glib-2.0/schemas with the Dconf settings you want to change. Look at ubuntu-mate.gschema.override to check the Dconf keys you need and create your own .override file with the values you want. You’ll have to name it so that it is loaded after the others. As they’re sorted alphabetically, I guess you’ll have to use a name “higher” than “ubuntu-mate.gschema.override”, you can try something like “zzz.override”.

The values you’need to change should be these ones:

[org.mate.interface]
icon-theme='Ambiant-MATE'
gtk-decoration-layout='menu:minimize,maximize,close'
gtk-theme='Ambiant-MATE'
font-name='Ubuntu 11'
document-font-name='Ubuntu 11'
monospace-font-name='Ubuntu Mono 13'

[org.mate.Marco.general]
center-new-windows=false
compositing-manager=true
side-by-side-tiling=true
theme='Ambiant-MATE'
titlebar-font='Ubuntu Medium 11'

org.mate.interface would be for the Gtk and icon themes, while org.mate.Marco.general would be for the Marco/Metacity (windows titlebar) theme. Of course, you don’t have to set all the values, keep only the keys you want to override.

2 Likes

I tried what you told me to, with no avail. I even tried just copy-pasting the theme assets into Ambiant-MATE in /usr/share/themes, but only things like system colors, controls, and window borders would go through. I’m fine with just doing that, but I need help getting everything that is missing (icons, etc) working.

You can see the difference between the two files.

Also, did you want me to CREATE an override file or EDIT an already existing file.

Create an override file. And make sure that its name comes after (alphabetically) ubuntu-mate.gschema.override.

You shouldn’t modify the original themes: if they’re updated, you’ll lose your changes.

What is the name of the theme that you’d like as default? Is it installed at system level (i.e. /usr/share/themes for Gtk/Metacity and /usr/share/icons for icons)?

EDIT: After doing a few tests, I have a few more infos:

  1. the name of the file should end with .gschema.override, not just .override. As it has to be loaded after ubuntu-mate.gschema.override, you can name it something like zzz-myconfig.gschema.override. I haven’t made tests with numbers to define priority (like 90_myconfig.gschema.override) but I assume that ubuntu-mate.gschema.override would take priority over such a name.

  2. After creating the file, you have to recompile the schemas with the following command:

    sudo glib-compile-schemas /usr/share/glib-2.0/schemas/