Friday, October 26, 2012

Use Custom Theme in GNOME Shell 3.6 (Ubuntu 12.10)

Here's a simple solution for you who use GNOME Shell desktop environment (GNOME 3.6) to make custom themes (especially metacity/window decoration themes) work on GNOME Shell 3.6 desktop in latest Ubuntu 12.10 (Quantal Quetzal).

Some people prefer GNOME Shell desktop environment over the default Unity desktop in latest Ubuntu 12.10. The DE comes with the default Adwaita theme from GNOME Team, which is clean and beautiful theme, but still, people want the ability to use custom themes to personalize for their own desktop.

In previous version of GNOME Shell, people can choose different themes by putting their cutom themes in user folder (~/.themes) and then easily activate them via a theme changer utility app like GNOME Tweak Tool (Advanced Settings). Unfortunately, in the latest stable realease (GNOME 3.6), this ability to use custom theme is not that easy anymore, which is I think a regression. Below is a screenshot:

Screenshot: Can not change window border theme on GNOME Shell session

Like you can see on the screenshot above, I activated custom themes (zonColor) for window border/titlebar theme, GTK theme, and GNOME Shell theme. The GTK theme and GNOME Shell theme work, but not the window (metacity/mutter) theme; it still show the default theme, despite what I choose via GNOME Tweak Tool app window.

So, how to make custom themes (especially metacity) work on latest GNOME Shell 3.6?

I found that this bug is not on GNOME Tweak Tool side, because the solution is quite simple. All you have to do is put your themes in system wide themes folder, which is located in /usr/share/themes, instead of user themes folder (~/.themes).

Solution

Put your themes in
/usr/share/themes
(system wide themes folder)
or
~/.local/share/themes
(see update below)


The above is the screenshot after I put my theme in /usr/share/themes folder and activate it via GNOME Tweak Tool, and it works. :)

As a side note, although this solution works perfectly, I hope that this is only a temporary solution or workaround; GNOME Shell developers should fix this issue so that users can easily change window border theme in GNOME Shell session to a theme found in their local themes folder (~/.themes), without having to modify system wide file-system.

***

UPDATE

2012.06.08

A reader, Morgan, has an alternative solution (thanks!) (see comment below). Put your themes in ~/.local/share/themes to use it in GNOME Shell session. This way, you don't have to move your themes to system wide themes folder (/usr/share/themes).

You can create a new themes folder in ~/.local/share and move/copy all themes to it, or better yet, I recommend you to create a symbolic link instead, to avoid duplicated contents. To create this symlink (symbolic link), simply run this command:
ln -s $HOME/.themes $HOME/.local/share/themes

.


PS: Still, sorry for my English :)

3 comments:

  1. I had this problem too, but after some debugging I found that Gnome Shell looks for metacity themes in ~/.local/share/themes. So I moved my ~/.themes folder to that location and symlinked it back. Now everything works, at least in 3.6.1.

    ReplyDelete
  2. This comment has been removed by the author.

    ReplyDelete

Google+ Comments Disqus Comments
Disqus Comments Google+ Comments
comments powered by Disqus