If you customized your fonts using GNOME Tweaks (formerly GNOME Tweak Tool), you may have noticed that your changes do not affect the top bar or places such as the activities overview.

To change these, you will have to do a bit more work. The font for these places is decided by what is called a "shell theme". We will need to enable changing these, and create our own to change the font.

Enabling shell themes in GNOME Tweaks

You may have noticed that the option to change shell themes in GNOME Tweaks is greyed out. To enable it, you need to install the official User Themes extension. This process is easy to do if you've installed the chrome-gnome-shell extension in your browser and the companion desktop application, but you may also download the extension manually from the GNOME Extensions website, and install it by unpacking the .zip file into a folder named [email protected] and moving it to ~/.local/share/gnome-shell/extensions.

User Themes extension

After that, restart GNOME Shell by logging out and back in, then enable the extension in GNOME Tweaks → Extensions. The option to use shell themes will now be available.

Creating a custom shell theme

Next, you will need to create a new GNOME Shell theme. The process requires:

  1. Creating a new theme folder inside of the default themes directory
  2. Creating a gnome-shell theme folder inside of that
  3. Creating a special gnome-shell.css file which will import a complete theme, but change the font.

To simplify this process, you can run the following command in the terminal:

mkdir -p ~/.themes/ModMyTheme/gnome-shell; gedit ~/.themes/ModMyTheme/gnome-shell/gnome-shell.css

This command will create the necessary folders (-p flag for mkdir will ensure that), and then open the gedit text editor with the gnome-shell.css file.

gedit with theme file

In the text editor, paste the following code:

@import url("resource:///org/gnome/theme/gnome-shell.css");

stage {
    font-family: Roboto Condensed;
    font-size: 15px;
}

Of course, you should replace Roboto Condensed with the font of your choosing, and do the same for the font size. You may also replace the URL on the first line with one from a different shell theme (for example, the beautiful Arc theme also comes with a GNOME Shell theme). You will need to find that theme's gnome-shell.css file, however. Themes will usually be located in ~/.themes/, ~/.local/share/themes, or /usr/share/themes.

Selecting the new theme

After this process is complete, restart GNOME Tweaks, then select your theme from the list. Once you do that, GNOME will be using your new theme for the top bar, along with the Activities overview and various other popup windows, such as the one seen below.

GNOME Top Bar

You may have noticed that the theme we created was using CSS. This means that there's a lot of different other ways that you can modify the theme, beyond just changing fonts. For learning more about that, the GNOME Wiki is a good place to start.

What do you think? Are you going to experiment with making a custom shell theme? Let us know in the comments below!