Open-source project
vinceliuice/WhiteSur-gtk-theme avatar
vinceliuice/WhiteSur-gtk-theme

WhiteSur GTK Theme: a macOS-style theme for GTK desktops, and what the installer actually does

MacOS like theme for all gtk based desktops

9,309 stars733 forksCSSMIT

At a glance

What is it?
WhiteSur is an MIT-licensed GTK theme that rebuilds the macOS look for GNOME, XFCE and other GTK-based desktops. The install script is the product; the libadwaita support is a workaround, not a feature.
Who is it for?
Adopt WhiteSur if you run a GTK desktop and want the macOS look without touching a single CSS file, and accept that libadwaita apps need the -l overwrite and lose theme switching. Skip it if you rely on per-app dark mode toggling or run a Qt-heavy desktop where the theme will barely show.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 19 days ago.
What is it written in?
Mainly CSS, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What WhiteSur GTK Theme is for, and who it is not for

WhiteSur GTK Theme is a theme pack that gives GTK-based desktops a macOS appearance. The README describes it plainly as "A macOS like theme for Linux GTK Desktops", and the repository topics list gnome, gtk3, gtk4 and macos. It is aimed at people who have already chosen a GTK desktop and want the visual language of macOS on top of it, rather than at people looking for a new desktop environment.

The audience is narrower than the topic list suggests. GTK themes style GTK applications, the shell panel and the window decorations that the desktop delegates to GTK. A desktop built mostly on Qt, or an application that draws its own widgets, will ignore most of what WhiteSur installs. The README also recommends three GNOME Shell extensions: user-themes, dash-to-dock and blur-my-shell. The first one is not optional in spirit. Without user-themes, the shell theme does not apply, and you get themed applications under an unthemed panel. That mismatch is the most common reason a first install looks half-finished.

The theme is MIT licensed, and the repository carries a COPYING file alongside the source. That matters less for a theme than for a library, but it means you can fork the CSS and ship a modified variant if you want to.

Inside the repository: sassc, src, and a script that does the work

The top-level layout tells you what kind of project this is. There is no compiled artifact to download: the repository holds install.sh, tweaks.sh, parse-sass.sh, plus src/, libs/, other/ and release/. The theme is generated, not shipped. The README lists sassc as a required build dependency, and parse-sass.sh is the script that pairs with it. In other words, the CSS you end up with is compiled from Sass sources in src/ at install time on your machine.

That design choice explains the option surface. Because the theme is generated per install, the installer can offer opacity variants, light and dark variants, ten accent colors, two color schemes, a Monterey style switch, and a Nautilus style selector. A prebuilt theme archive would have to ship every combination; WhiteSur builds the one you asked for. The README documents the options as repeatable flags, so `-t red -t green` produces two accent variants and `-t all` produces every accent.

The dependency list splits into two groups. The source-build group is sassc plus a glib development package, named per distribution: libglib2.0-dev-bin on Ubuntu 20.04, libglib2.0-dev on Ubuntu 18.04, Debian 10.03 and Linux Mint 19, libxml2-utils on the same older releases, and glib2-devel on Fedora and Redhat. The second group is optional: imagemagick for the GDM tweak, dialog for the interactive installer, optipng and inkscape for asset rendering. The README claims the installer already provides all of those dependencies, which is a strong statement for a shell script and worth verifying on your distribution rather than assuming.

Installing WhiteSur GTK Theme from source

The README gives a two-step quick install. Clone shallow, then run the installer. The `--depth=1` flag keeps the download to a single commit, which is sensible given that the interesting content is the working tree, not the history.

bash
git clone https://github.com/vinceliuice/WhiteSur-gtk-theme.git --depth=1
cd WhiteSur-gtk-theme
./install.sh

The default run installs the WhiteSur GTK theme pack into `/home/[USER_NAME]/.themes`, which the README gives as the default destination for `-d, --dest`. After it finishes, the theme should appear in your desktop's theme picker. On GNOME, that picker is usually the Tweaks application, and the shell theme entry only becomes available once the user-themes extension is enabled.

If you want a specific accent instead of the default BigSur-like set, pass `-t`. The README gives these three examples, and the flag is repeatable.

bash
./install.sh -t red            # install red theme accent only
./install.sh -t red -t green   # install red and green theme accents
./install.sh -t all            # install all available theme accents

Removal is per component rather than global. The README lists four separate commands, and the distinction between install.sh and tweaks.sh matters: the GDM and Firefox themes are installed by tweaks.sh, so they are removed by it too.

bash
./install.sh -r
sudo ./tweaks.sh -g -r
./tweaks.sh -f -r
./tweaks.sh -F -r

Those four lines remove, in order, the GTK themes, the GDM theme, the Firefox theme and the Flatpak GTK themes. If you only ran `./install.sh`, the first line is the one you need.

The libadwaita problem, and why -l is a compromise

This is the part of the README that deserves the most attention, and the project is unusually direct about it. The section is titled "Fix for libadwaita (not perfect)". Since GNOME 43.0, the README states, more built-in applications use libadwaita, and libadwaita does not support custom themes. That means gnome-tweaks and dconf-editor cannot restyle those applications.

The workaround the README describes is to overwrite the gtk-4.0 configuration file with a theme file. The consequence is stated in the same paragraph: all GTK4 applications end up on one fixed theme and cannot be switched, not even to dark mode. Changing the theme means re-running the overwrite with a different theme.

The commands are short. `./install.sh -l` installs into `$HOME/.config/gtk-4.0`, defaulting to the normal dark theme, and `./install.sh -l -c light` installs the light variant instead.

bash
./install.sh -l                # Default is the normal dark theme
./install.sh -l -c light       # install light theme for libadwaita

My reading is that this is the correct trade-off to document and the wrong one to hide. A user who installs WhiteSur expecting the whole desktop to restyle, and then finds that Files and Settings ignore the theme, will blame the theme. A user who reads this section first knows that GTK4 applications are a separate, manual, one-theme-at-a-time problem. If switching between light and dark at runtime is part of how you work, WhiteSur's libadwaita path conflicts with that directly.

Customizing accent, Nautilus style and the shell

Beyond the default install, the option list is where WhiteSur earns its keep. Accent color is the most visible knob: `-t` takes default, blue, purple, pink, red, orange, yellow, green, grey or all, and the default is described as BigSur-like. Opacity takes normal or solid. Color takes light or dark. Window control buttons take normal, alt or all, defaulting to normal. Color scheme takes standard or nord.

Nautilus gets its own selector. `-N` accepts stable, normal, mojave, glassy or right, with the default described as a BigSur-like style with a stabled sidebar. The README's example is `./install.sh -N mojave`. If the file manager is the application you look at most, this is the flag to experiment with first.

The GNOME Shell tweaks live under `--shell` and are more granular than the rest: an Activities icon chosen from a list of distributions and platforms, a panel background image or a blank panel, panel opacity at 30, 45, 60 or 75, panel height at default, smaller or bigger, a smaller font option, and a normal show-apps button style. There are also standalone flags for rounded maximized windows, black panel font, a darker dark theme, and an interactive dialog mode. The `--silent-mode` flag is described as being for developers, ignoring confirm prompts and making parameters stricter.

One practical note: the option list is long enough that `--dialog` exists as an alternative to typing flags. That is a reasonable signal that the CLI surface has outgrown casual use.

Where WhiteSur is the wrong choice

The clearest failure mode is the one the README admits to. If you want GTK4 and libadwaita applications to follow a runtime theme switch, WhiteSur cannot give you that through the normal theme mechanism. The `-l` route fixes the appearance and removes the switching. That is a genuine limitation, not a configuration detail.

The second limitation is scope. The theme is for GTK desktops. The topics list gnome, gtk3 and gtk4, and the README's recommended extensions are all GNOME Shell extensions. XFCE and other GTK desktops can use the GTK parts, but the shell tweaks in tweaks.sh are described in GNOME Shell terms: a panel, an Activities icon, a show-apps button. Those concepts do not map onto every desktop, so a non-GNOME user should expect to use install.sh and skip a good portion of tweaks.sh.

The third is maintenance of a fork. Because the theme is generated from Sass at install time, any local edit you make to the compiled output disappears on the next install. If you want lasting changes, they belong in src/, which means learning the source layout rather than editing a stylesheet.

Finally, a theme is cosmetic. Nothing here changes application behaviour, and nothing here is a reason to pick a GTK desktop over another one.

WhiteSur against Orchis and Colloid

The obvious alternatives are the other GTK theme projects people search for alongside this one: Orchis and Colloid. The difference is not quality, it is target. WhiteSur's stated goal is reproducing macOS, and every option points that way: the Monterey style switch, the BigSur-like default accent, the Mojave Nautilus variant, the Apple, Tux and distribution choices for the Activities icon. You install it because you want that specific look.

Orchis and Colloid sit in the same installer-driven family of GTK themes but do not carry the macOS brief. Choosing between them is a question of which visual language you want, not which one is more capable. If you want macOS, WhiteSur is the one built for it. If you want a neutral, modern-looking GTK theme, the macOS-specific options here are dead weight.

A second alternative is not a theme at all: leaving the distribution default in place. The cost of WhiteSur is not installation, it is the follow-up. You need the user-themes extension for the shell, you need to decide about the libadwaita overwrite, and you need to re-run the installer when you want a different variant. A default theme has none of that. That is a fair comparison to make before starting.

Maintenance, licensing and upgrade cost

The last push to the default branch was on 2026-09-11, and the most recent release is dated 2026-09-10, with earlier releases on 2026-08-08 and 2026-07-07. On that evidence the project is being updated on a roughly monthly cadence, and the repository is not archived.

Upgrades are manual. There is no package manager entry described in the README, so the upgrade path is to pull the repository again and re-run install.sh. Because the theme is generated from source each time, a re-run regenerates your chosen variants rather than patching them. If you had installed a specific accent and opacity combination, you need to pass the same flags again; the installer does not remember them. The `clean-git.sh` and `make-release.sh` scripts in the repository root suggest the maintainer has a release process, but the README does not document an upgrade procedure for end users, so treat reinstall as the assumed path.

The licence is MIT, and the repository includes a COPYING file. MIT is permissive: forking, modifying and redistributing the theme are allowed subject to the licence terms. The one thing worth flagging is that a macOS-style theme imitates another vendor's visual design. That is a design question rather than a licensing one, and nothing in the repository suggests a trademark claim. I am not a lawyer and this is not legal advice; if you plan to redistribute a modified WhiteSur as part of a product, read COPYING and make your own call.

Editorial conclusion

Adopt WhiteSur if you run a GTK desktop and want the macOS look without touching a single CSS file, and accept that libadwaita apps need the -l overwrite and lose theme switching. Skip it if you rely on per-app dark mode toggling or run a Qt-heavy desktop where the theme will barely show. Before installing, check that sassc and the glib development package are present, and read the -l section of the README so the gtk-4.0 overwrite is a decision rather than a surprise.

Frequently asked questions

How do I install the WhiteSur GTK Theme?

Clone the repository with `git clone https://github.com/vinceliuice/WhiteSur-gtk-theme.git --depth=1`, then run `./install.sh` to install the default theme pack. The default destination is `/home/[USER_NAME]/.themes`.

How do I install the WhiteSur GTK Theme on Ubuntu?

The install steps are the same as on any distribution: clone and run `./install.sh`. The README lists libglib2.0-dev-bin as the required dependency on Ubuntu 20.04, and libglib2.0-dev plus libxml2-utils on Ubuntu 18.04.

How do I remove the WhiteSur GTK Theme?

Run `./install.sh -r` to uninstall the GTK themes. The GDM, Firefox and Flatpak themes are separate: `sudo ./tweaks.sh -g -r`, `./tweaks.sh -f -r` and `./tweaks.sh -F -r` respectively.

How do I use the WhiteSur GTK Theme?

Install it with `./install.sh`, then select it in your desktop's theme picker. On GNOME the README recommends the user-themes extension so the shell theme applies, plus dash-to-dock and blur-my-shell for the full layout.

Official sources

  1. Issues
  2. License: MIT
  3. README
  4. Releases
  5. vinceliuice/WhiteSur-gtk-theme on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/vinceliuice-whitesur-gtk-theme.svg)](https://hysenlabs.com/projects/vinceliuice-whitesur-gtk-theme)