Ubuntu / Linux news and application reviews.

There is a bug in GNOME Shell which breaks the CSS for all extensions if you use the User-Theme extension. The bug is not in the User-Theme extension, but this extension exposes it (when used with GNOME Shell Themeselector or Tweak Tool).

Unfortunately the bug hasn't been fixed so far, but you can get all extensions to work with the User-Theme extension by using a patch submitted by Sardem FF7. I've found the solution on fpmurphy.com but his patch actually didn't work because he didn't patch the main.js file too. He updated the post and now the instructions on that blog work too.


Here's a screenshot with two extensions (Weather Extension and System Monitor), before applying the patch:

GNOME Shell CSS before patch


And after applying the patch:

GNOME Shell CSS after patch


And a video demoing both the issue and the fix:




After applying the fix below, you'll be able to use GNOME Tweak Tool or ThemeSelector extension to change GNOME Shell themes, without breaking other extensions.


Applying the patch to fix GNOME Shell CSS issues when using User-Theme extension


Before trying to apply the patch, make a backup of the original extensionSystem.js and main.js files under /usr/share/gnome-shell/js/ui/ - you can use the commands below to backup these files under ~/backup:

cd
mkdir -p backup
cp /usr/share/gnome-shell/js/ui/extensionSystem.js ~/backup/
cp /usr/share/gnome-shell/js/ui/main.js ~/backup/


Patch GNOME Shell

You can find the patch HERE and apply it yourself using the commands below (you'll need to have "patch" installed):

su - #in Ubuntu, use "sudo su"
cd /usr/share/gnome-shell/
wget -O - http://bugzilla-attachments.gnome.org/attachment.cgi?id=181855 | patch -p1


Or use can use the already patched files (tested on Fedora 15 only, using GNOME Shell 3.0.2; make sure you've installed "wget") below:

sudo rm -f /usr/share/gnome-shell/js/ui/extensionSystem.js
sudo rm -f /usr/share/gnome-shell/js/ui/main.js
sudo wget http://webupd8.googlecode.com/files/extensionSystem.js -O /usr/share/gnome-shell/js/ui/extensionSystem.js
sudo wget http://webupd8.googlecode.com/files/main.js -O /usr/share/gnome-shell/js/ui/main.js


Important: when you get a GNOME Shell update, these files will be overwritten so you'll have to apply the patch again!