Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.

Install GNOME Themes

This script installs the latest git versions of some fine GNOME themes into the current user's .themes folder. Run the script again whenever you want to get the latest theme updates. Many of these themes are updated frequently with bugfixes and enhancements.

It supports GNOME versions 3.22 and above.


You need to install the requirements first. See install-requirements-fedora and install-requirements-debian. The Debian script should work for Ubuntu, too. We welcome contributions for other operating systems, too, especially Arch Linux!

In case your operating system doesn't have a sassc package you can build it manually with install-sassc.

Now, get the script:

git clone ~/install-gnome-themes

If you already have themes of the same names installed in your .themes folder, they will be deleted, so backup the folder first if you want to keep them. Other themes will not be touched.

Installing Themes

You can update this script to its latest version and run it like so:

git -C ~/install-gnome-themes pull --ff-only

Note that it will take some time, because some themes render all their images during build.

To change your theme, run the GNOME Tweak Tool and go to the Appearance tab. Or, you can use the command line:

gsettings set org.gnome.desktop.interface gtk-theme "GTK theme name"
gsettings set org.gnome.desktop.wm.preferences theme "Shell theme name"

To avoid rebuilding themes if there was no change the script caches identifiers in the file .install-gnome-themes.conf in the current user's .themes folder. Delete it to force rebuilding all themes:

rm ~/.themes/.install-gnome-themes.conf

Disabling Themes

You can disable individual themes in case they're broken or you just don't want them built.

Edit the .install-gnome-themes.conf in the current user's .themes folder and put the word "skip" instead of the git hash. For example, to skip Plano themes:

github|lassekongo83|plano-theme|master skip

Uninstalling Themes

You can uninstall individual themes by deleting their directories in your .themes folder. To uninstall all user themes, including themes not installed by this script, delete the entire directory:

rm -r ~/.themes

Note that themes take very little space (less than 300 MB for all themes combined) and do not slow down your system when unused.


Because we are tracking the latest versions of themes, there is a chance something will break. Please help us fix it and open an issue with as much detail as you can!

By default the script logs all output to the file .install-gnome-themes.log in the current user's .themes folder, but you can also send it to the console like so:

LOG=/dev/stdout ~/install-gnome-themes/install-gnome-themes

Supported Themes

All of these themes provide at least GTK+ theming (for both GTK+3 and GTK+2) and many also provide a shell theme. You are free to mix and match GTK+ themes with shell themes! Some themes also provide application theming (Firefox, Chrome, etc.) though you will have to install that separately. For Firefox, note that there is also a generic GNOME 3 theme that might improve its appearance for some themes, though your mileage will vary.

Unsupported Themes

These themes only work for GNOME 3.18, which used a different theme system.


Script to install the latest versions of some fine GNOME 3 themes