Terminal colors wrong after silverblue upgrade


I rebased my two Silverblue PCs to f39 yesterday and today. Both upgrades went well just like normal. However, there is one strange side effect: the terminal is completely light themed. Title bar, background and font.
For the background and font I can easily change it (but it does not respect the “use system theme” option). I have not found a way to change the title bar.

As you can see in the screenshots, the files app has correct colors. The terminal looked the same before the upgrade.

Any ideas?

Do you have the Legacy (GTK3) theme set to Adwaita-dark? That theme was removed from the base image (gnome-themes-extra) in F39.

Setting the theme name to a non-existent theme apparently causes gnome-terminal to revert to light mode.

You can layer that package or install the theme in ~/.local/share/themes (it’s only one line).

If gnome-terminal is the only affected app you’re using, you could just reset the theme name to Adwaita. Its ‘Theme variant’ preference will work in that case. Newer apps, including GTK3 apps that use libhandy will support dark mode via the GNOME preference.

My settings for terminal have been as shown below and did not change with the upgrade.
Note that I am using the built-in scheme and not the system theme.

Interestingly, I prefer the dark theme on my terminal but use light theme in Gnome. I’m just now realizing that my Gnome Terminal is dark even though my Gnome itself is set to light and the terminal is set to System.


However, I haven’t changed these settings during the Fedora 38->39 upgrade. I happen to prefer dark mode for the terminal and light mode for the rest of Gnome, so I didn’t think anything of it until now.

Unchecking the “Use colors from system theme” and picking light might works for me, but I can definitely see how this behavior is unexpected.

(I also have gnome-themes-extra installed)

I think it should be expected.

The color can be set to follow the system theme or built-in. If built-in is selected then changing the system theme would not be expected to change the terminal setting. Conversely, selecting to use the system theme the terminal should be expected to follow system theme changes.

In my case, with it set to use system settings, the System is set to Light, but the Terminal is Dark. In the OP, the System is set to Dark but the Terminal is Light. It is not following the system theme changes.

There’s a global ‘Theme Variant’ setting, as seen in the OP’s first screenshot. I believe it defaults to Dark.

This is still implemented using the legacy gtk-application-prefer-dark-theme setting, so even setting it to Default doesn’t make gnome-terminal follow the system color scheme.

1 Like

Where can I check and change this Legacy theme? It could very well be the issue!
I think I might have done some changes to theme settings at some point, using the Tweak tools or what ever it is called nowadays. I don’t have it installed now, but maybe this is what I should do?

You can check gsettings get org.gnome.desktop.interface gtk-theme.

If it’s anything other than ‘Adwaita’, run gsettings reset org.gnome.desktop.interface gtk-theme.


Thank you! That was it!

It’s still kind of a mess. I tried a couple of GNOME Shell Extensions right after I installed Silverblue, and nothing worked, but they probably did screw things up a little. I eventually got rid of all of them.

I just did: gsettings get org.gnome.desktop.interface gtk-theme

and got ‘Adwaita-Dark’

Then I ran gsettings reset org.gnome.desktop.interface gtk-theme.

And that switched it to ‘Adwaita.’

After that, the GNOME Terminal does NOT follow my system preference (which is Dark), but I can turn it dark in Preferences -- Theme Variant. I’m not sure if that is expected behavior. I’d rather it follows what I set in GNOME Settings -- Appearance -- Style.

And since I made this change, now Transmission (which I’m running from the Flathub Flatpak) went from dark to light, no matter what I do in GNOME Settings.

I also have a half-dark, half-light gVim. The top bar is dark but the menus are light.

When I had “Adwaita Dark,” Transmission and gVim were reliably dark (now always light and half dark, respectively).

Now I have GNOME Terminal working right, but the other two less-dark.

I’m assuming there’s a gap in Silverblue GNOME’s ability to manage dark mode for pre-GTK4 apps.

(Edits to spell ‘Adwaita’ correctly)

For GNOME Terminal:

This has just been addressed in version 3.50, but that didn’t make it into F39, not sure why.

Transmission is a rare pure GTK4 app. Without libadwaita, it doesn’t know anything about color schemes. Your best option is to bring back Adwaita-dark, as described upthread. You can layer the package, or simply create ~/.local/share/themes/Adwaita-dark/gtk-3.0/gtk.css:

@import url("resource:///org/gtk/libgtk/theme/Adwaita/gtk-contained-dark.css");

Flatpak has no support for GTK4 themes currently, but fortunately Adwaita-dark is an alias for the builtin Default:dark.

GTK3 apps that use libhandy (which was the precursor to libadwaita) also work, as does anything that implements support for the color scheme setting itself.


This didn’t work for me. I created the file, and nothing changed.

My point in all of this is that things shouldn’t be so fiddly.

Did you also change the theme back to Adwaita-dark? You can use Tweaks, or gsettings set org.gnome.desktop.interface gtk-theme Adwaita-dark

I would have preferred that gnome-themes-extra hadn’t been removed from the base image, but it’s only ‘fiddly’ for things that don’t support the color scheme spec.

1 Like

That did it – I missed the last step. Thank you @chrisawi for your help.

1 Like