Compiling gtk3-mushrooms on Ubuntu

For those who used Ubuntu in the days of GTK2, you might know GTK3 introduced some quirks (and regressions) of much liked aesthetics and functionality. A project named gtk3-mushrooms patches up GTK3 to restore them like old times.

:camera: See here for before & after screenshots.

It is only packaged up for Arch (AUR) and Manjaro (as gtk3-classic), so it's not available for those using Ubuntu MATE. It should be noted that Ubuntu also apply their own patches to Ubuntu's GTK3 which may or may not cause other issues. These patches do cause a conflict so quilt is necessary to unpatch some of all of Ubuntu/Debian's patches.


I spent hours already trying two approaches to get it working on Ubuntu, without 100% success. So, I left my notes if anyone is interested in having an attempt to compile/package this project. GTK3 is a large beast, so it will require patience.

Packaging would be better then compiling/installing alongside the system's GTK3. Plus, it can easily be used in a PPA and built by Launchpad. I ran into problems just compiling gtk+3.0 (19.04) packages even without applying any additional patches. :confused:

3 Likes

Challenge accepted :slight_smile:
Problem solved. I have created my own gists for Ubuntu MATE 18.04 LTS, 19.04 and 19.10.

Details are below.

At first we need to use gtk3 from Ubuntu repository. Canonical and Debian have special patches for gtk3, we need to apply them.

Then we need to clone gtk3-mushrooms repository on the specific gtk3 version.
For example for Ubuntu 18.04 LTS we need to use 3.22.30-1.

Then we need to change PKGBUILD - we have not to use all patches for makefiles.
There are several deb-packages build from the gtk3 source. So we need to have documentation, examples, tests and utils compiled and packaged.

For Ubuntu 18.04 LTS the patching process was more succesful than for 19.04 and 19.10.
For latter two I need to remove one patch (csd__clean-headerbar.patch) because of conflict with Unity-related Ubuntu patches (I guess).

The screencast from 19.04 is below:

It also should be noted that some patches have failed chunks, but compilation and creating of deb-packages were successful. So I think it is too early for creating PPA.

We can see that gtk3-mushrooms patches are applicable for Ubuntu MATE :ubuntu_mate:

1 Like

Unity already have traditional-mesaage dialog patch. You need to modify in a way so that it works for other session too.

2 or 3 more attempts later, this project (now known as gtk3-classic) is now packaged for Ubuntu 20.04 LTS, 21.10 and the upcoming 22.04 LTS.

Thanks to @Norbert_X for helping with the script!

4 Likes