I’m using GNOME Shell as my default Linux desktop on Ubuntu at the moment, and so far I’m really enjoying it — bar one thing.

The main GNOME Shell UI font is not directly changeable.

GNOME Tweak Tool lets you change the font family and font size for app windows, interface, and in the terminal, but these changes do not change the font used in the GNOME top bar, notifications, extension menus, the date/time dropdown, the Dash/Activities overlay, and elsewhere.

GNOME tweak Tool Fonts
Font changes made in GNOME Tweak Tool only affect application windows

A quick bit of Googling turned up a solution in the comments on a blog from 2013.  Yup, this is a long-standing issue it seems!

The good news is that don’t have to keep using a mis-matched desktop. You can change the GNOME Shell font used in the GNOME Shell top bar and other UI elements.

How? By editing a .css file.

How to Change Font in GNOME Shell’s Top Bar (+ Elsewhere)

You should have everything you need to change GNOME top bar font, namely a text editor. But the exact .css file you need to edit will depend on the GNOME Shell theme you’re using.

If you’re not sure if you’re using a GNOME Shell theme you probably aren’t. You need to have installed the User Theme extension from the GNOME Extensions website to enable this feature, and have a corresponding GNOME Shell theme installed.

Which is how we achieve these; you need to edit the corresponding gnome-shell.css file in the theme’s directory.

I’m using the Arc Dark GNOME Shell theme, installed from Ubuntu Software. To edit its .css file and tweak the font, I first run:

sudo gedit /usr/share/themes/Arc-Dark/gnome-shell/gnome-shell.css


Your theme’s location may be different, so make sure you are editing the appropriate file before beginning.

Once you’ve located and opened the corresponding ‘gnome-shell.css’ file find the following chunk of code that begins:

stage {
change font in gnome shell topbar
Edit this bit of code in the .css file

Once you’ve located the correct section (see image above) you can change the font family (and size and colour if you want to) to any font you have installed.

So, for example, if I want to the Ubuntu font I would change the font family to Ubuntu like so:

stage {
 font-family: Ubuntu;
 font-size: 9pt;
 color: #5c616b; }

Once you’ve made your edit remember to hit save, and then exit.

For your changes to take effect you will need to open GNOME Tweak Tool and select your shell theme from the drop down in ‘Appearance’ (if your theme is already selected go ahead and select a different theme and then switch back for the change to take effect).

That’s all there is to it; the default font for GNOME Shell is changed — enjoy!

adwaita Fonts gnomeshell