RPI4, Raspberry Pi OS and MATE desktop - Essential tweaks

Updated: September 14, 2020

Hear, hear. Today, I have a rather lengthy article for you. I want to show you all the different changes and tweaks I had to introduce to my Raspberry Pi 4 and its resident Raspberry Pi OS, in order to transform a fairly bland operating system into a stylish, eye-turning desktop. To that end, first step, I installed the MATE desktop environment.

Similar to what we did with Ubuntu MATE, we will now tweak the MATE desktop on top of Raspberry Pi OS. Please note that most of the tips and tricks outlined in the other tutorial are valid and applicable here, but we need more. Now, take a deep breath and follow me, for there's quite some work ahead of us.

Teaser

Installation of the MATE desktop & additional software

The magic one-liner:

sudo apt-get install mate-desktop-environment mate-desktop-environment-extras plank

And if you feel something is missing, then try also:

sudo apt-get install mate-session-manager mate-themes mate-screensaver mate-power-manager mate-indicator-applet mate-indicator-applet-common mate-tweak dconf-editor

Extra extra software

Some more nice applications that you may need or like:

sudo apt-get install firefox-esr gimp libreoffice

Extra apps

Setup new visual theme

Essentially, what I did was try to make MATE in Raspberry Pi look like Ubuntu MATE as reasonably as possible. To that end, I pilfered a bunch of assets from an Ubuntu MATE installation on the Pi and copied them over into the Raspberry Pi OS. So in the commands below, the assets all come from Ubuntu MATE in the corresponding directories:

sudo cp -r sd-card-mount/.../themes/Ambiant-MATE /usr/share/themes/
sudo cp -r sd-card-mount/.../themes/mate /usr/share/themes/
sudo cp -r sd-card-mount/.../themes/mate-dark /usr/share/themes/

sudo cp -r sd-card-mount/.../icons/Ambiant-MATE /usr/share/icons/

Please note that the first Ambiant-MATE refers to THEMES and the second to ICONS!

I then created my own Ambiant-MOTE theme, which has black fonts for better visual contrast. In essence, I hacked and edited the default theme, and changed a number of hexadecimal color values in the relevant CSS files of the theme.

Font color

I then installed Ubuntu fonts (under /usr/share/fonts).

I installed La Capitaine and Papirus icons (under ~/.icons).

I configured Plank + transparency, as I've shown you in the Ubuntu MATE article linked earlier.

Plank tweak

Configure MATE as the default desktop environment

I had to change the login session manager in Raspberry Pi OS, so that I would get a login screen, and be able to choose which session I like. This can be done by editing the /etc/lightdm/lightdm.conf file. Please make sure the following four lines are presented (and not commented out):

greeter-session=lightdm-gtk-greeter
greeter-hide-users=false
autologin-user=pi
autologin-session=mate

By default, the user will be pi and greeter-session will be set to pi-greeter.

Configure Brisk menu (and full screen)

Top panel > Add new item > Brisk. But then, Brisk doesn't look that good in its normal guise, as you cannot resize it, and often, you end up with a scrollbar in the left-side category pane. What you can do is go for a full-screen menu. To that end, you need to launch dconf-editor.

Go to com > solus-project > brisk-menu > window-type. Toggle "Use default value" to 0 in the bottom half of the window, and change the Default value 'classic' to 'dash' - and then, restart your user session - simply log out and then log back in.

Brisk Dash mode

And you will have something like this:

Dash activated

Configure global menu

We need to install another package - and then restart the session (logout, login):

sudo apt-get install mate-applet-appmenu

Finally, add the global menu applet to the panel, and Bob's your uncle!

Add global menu

Global menu works 1

Global menu works 2

VLC shows no video playback in full screen

This seems to be caused by the wrong output device. Tools > Preferences > Video. Change the default Video Settings Output from 'Automatic' to 'OpenGL for Embedded Systems 2 video output'. Alternatively, you can try some of the other options, but please be aware what they mean (including video acceleration), and whether they are going to cooperate well with your setup (like HDMI).

Change video output

VLC video tearing

Another problem I noticed - fixed by system update. So make sure the system is indeed up to date. The full sequence will also install any firmware updates, so you may benefit from other improvements, like better drivers and more optimized power management.

sudo apt-get update
sudo apt-get -y dist-upgrade

System updated

VLC uses a wrong theme

If VLC does not look the part, it's probably because it's not using the Qt5 styles.

VLC, thin fonts

The solution is as follows:

sudo apt-get install qt5-style-plugins

Then, you can either "wrap" VLC with an environment variable in your launchers:

QT_QPA_PLATFORMTHEME=gtk3 vlc

Or set this as a global environment variable in your session:

echo "export QT_QPA_PLATFORMTHEME=gtk3" >> ~/.profile

And then you get:

VLC, fixed

VLC fixed, zoomed in

LibreOffice uses a wrong theme

Another possible victim of your MATE-ification effort is LibreOffice. It, too, may have a 1995 look. The solution is to install additional GTK integration and optional icon themes. The packages you need are:

sudo apt-get install libreoffice-gtk3 libreoffice-style-breeze libreoffice-style-elementary libreoffice-style-sifr

You can also optionally install libreoffice-gtk2, if you like.

And then, LibreOffice goes from this:

LibreOffice, old theme

To something like this:

LibreOffice, fixed

Pidgin (and maybe VLC again, et al) uses a wrong theme

You may notice that some applications like Pidgin - or perhaps even VLC - may suffer from another visual artifact. They have white (or pale) font on pale background in submenus, making then invisible and/or unreadable. This is caused by a wrong theme in the ~/.gtkrc-2.0 file. By default, MATE on Raspberry Pi references the Breeze theme. We want Ambiant-MATE - or rather our modified Ambiant-MOTE.

Wrong theme

You will need to edit the contents of the ~.gtkrc-2.0 file from this:

include "/usr/share/themes/Breeze/gtk-2.0/gtkrc"
style "user-font"
{
font_name="Noto Sans Regular"
}
widget_class "*" style "user-font"
gtk-cursor-theme-name="breeze_cursors"
gtk-font-name="Noto Sans Regular 10"
gtk-theme-name="Breeze"
gtk-icon-theme-name="breeze"
gtk-fallback-icon-theme="gnome"
gtk-toolbar-style=GTK_TOOLBAR_ICONS
gtk-menu-images=1
gtk-button-images=1

Replace the include line to be:

include "/usr/share/themes/Ambiant-MATE/gtk-2.0/gtkrc"

Or Ambiant-MOTE, our Ambiant with black fonts. You can also change fonts, icon themes, and other assets. For example, you can use the Papirus or La Capitaine icon themes, and whatnot. And also use Ubuntu fonts. Pidgin and other applications will now show their submenus correctly. Job done.

Correct theme

Firefox shows mobile pages

For some reason, I noticed that Firefox ESR renders various pages (but not all) as though my Pi was a mobile device. Not all, but some. To get around this niggle, at least until there's an official fix, you can force the user agent string - this is a text identifier that browsers provide to Web pages so they can be served optimal content. Anyway, go to Firefox about:config, and add the following entry:

general.useragent.override

And populate it with something like the user agent from a classic Linux desktop:

Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:76.0) Gecko/20100101 Firefox/76.0

Other things

A few more important details, if you please, for a complete experience.

Black bars on the screen and less-than-maximum screen resolution

This can be caused by overscan - you can disable this feature.

Teaser, weird resolution

Hardware acceleration

This is a separate topic, but it requires mention. As I've outlined in the dedicated guide, you need to make sure your browsers (Firefox and Chromium), as well as media players like VLC) are configured to use HW acceleration.

Firefox, turn layers on

Network Manager does not scan and show Wireless access point

This is caused by a conflict between default WPA supplicant and Network Manager.

Network Manager works

Final result

Behold and enjoy your elegant, slick Pi desktop.

Tweaked looks 1

Tweaked looks 2

Conclusion

That was long, initially frustrating, but in the end quite satisfying. What I've done is a hefty part of the visual uplifting that some distributions do when they go about transforming the bland, stock look & feel of different desktop environments, in order to make them more presentable to the general populace. Alas, in 2020, just like 1995, having a beautiful Linux desktop is not a given in most cases. And there's really no reason why Raspberry Pi OS running MATE should be so meh when you first launch it.

But that's something I can't solve. What I can do - and I did - is a bunch of technical solutions. We covered software, changing the default theme, font installation and customization, application tweaks, system and application menu, video playback, browser behavior, and then some. Hopefully, this exercise will allow or even encourage you to set up your own Pi and try to use it as a daily driver. So far, cautiously, the experiment has turned mildly positive. We had a rough start, but this article clears it. Take care, and stay tuned for more.

Cheers.

You may also like: