How To Tweak GNOME 3 To Your Needs
I’ve written about GNOME 3 before, specifically how much I love it. I do not use any extensions or third-party tweaks whatsoever as GNOME 3 feels very complete for me out-of-the-box. However, some users aren’t so easy to please and their habits don’t quite mix with the overall design of GNOME 3, even after approaching it with an open mind. Until the project is more mature (3.2, 3.4 maybe), there are several workarounds to many of the common “problems” that I’ve seen users have with GNOME 3:
How do I use the old GNOME 2 UI?
Before I tell you how to enable the old UI, let me just say that the GNOME 2 UI is deprecated for various reasons and WILL NOT RECEIVE FUTURE UPDATES. The old UI is considered a “Fallback Mode” for users who cannot use the current UI and is not intended to be used any longer if your system is powerful enough to use the new GNOME 3 UI. I would highly recommend that you give the new GNOME 3 UI a chance for a week and wrap your head around the new concepts, shortcuts and features. If, after all of that, you still want to use the old GNOME 2 UI, you can enable the intentionally hidden “Fallback Mode” by doing the following:
- Open “System Settings” in the Status menu at the top-right of the screen.
- Click “System Info” in the System Settings window.
- Click the “Graphics” tab on the side.
- Flip the switch for “Forced Fallback Mode”.
In addition to this, there are some extensions that enable a more GNOME 2-like experience. Scroll down to read about them.
GNOME Tweak Tool
An easy, GUI method to configuring GNOME 3 is present in the form of the (semi-official) tool, GNOME Tweak Tool. Download and install it with these commands:
git clone git://git.gnome.org/gnome-tweak-tool
./autogen.sh && make && sudo make install
After it’s installed, run it with the “gnome-tweak-tool” command and customize GNOME in any of the following ways (lifted from the website):
- Install and switch gnome-shell themes
- Switch gtk themes
- Switch icon themes
- The user-interface and titlebar fonts
- Icons in menus and buttons
- Behavior on laptop lid close
- Shell font size
- File manager desktop icons
- Titlebar click action
- Shell clock to show date
- Font hinting and antialiasing
GNOME 3 does not officially support theming at the moment for the default UI, so you need the user-theme extension installed, which I mention below. As for GTK themes, there aren’t any other GTK3 themes available yet, so as soon as more are available theme support will be implemented.
How do I use my old window border themes?
GNOME 3, as of right now, does not let you change the default theme using a GUI option because they want a standard visual identity for GNOME 3, sort of how everybody knows a Windows or Mac desktop just by looking at it because of their strong visual identities. In addition to that, the designers and developers figured that it’s better to care about getting the fundamentals done right first, and allowing for more superficial concerns such as theming later. A method to change the window border theme is present though, but it is hidden. To change it, follow these steps:
- Copy the theme to ~/.themes (that’s /home/you/.themes)
- Open “gconf-editor”
- Browse to desktop -> gnome -> shell -> windows on the tree on the left side of the window.
- On the right, there’s an option for “theme”. Change it to the name of the window border theme you want to use and restart GNOME (Alt+F2, type “r”, hit enter)
GNOME Shell Extensions
GNOME Shell (the default desktop UI) has support for extensions (also called “Add-ons”), though support for them isn’t quite finalized yet. In order to use extensions now, you need to install the latest extensions from git. Here’s a list of all of the current extensions included in the repository (list taken from the README in the repository):
Lets you use classic Alt+Tab (window-based instead of app-based) in GNOME Shell.
For those who want a power off item visible at all the time, replaces GNOME Shell
status menu with one featuring separate Suspend and Power Off. Adds the ability to
hibernate as well.
Lets you manage your workspaces more easily, assigning a specific workspace to
each application as soon as it creates a window, in a manner configurable with a
Shows a dock-style task switcher on the right side of the screen.
Shows a status menu for rapid unmount and power off of external storage devices (i.e. pendrives)
A minimal example illustrating how to write extensions.
Integration with Gajim, a Jabber/XMPP instant messaging client.
An alternative algorithm for displaying the thumbnails in the overview that more closely reflects the actual positions and sizes.
Shows a status indicator for navigating to places.
A message tray indicator showing CPU and memory loads.
Loads a shell theme from ~/.themes/<name>/gnome-shell.
Allow keyboard selection of windows and workspaces in overlay mode.
Replace the GTK+ based indicator from gnome-settings-daemon with
a native one. Lets the user rotate the laptop monitor and open
display preferences quickly.
To install, I would look for packages in your distribution’s repositories first (I know that Arch Linux has them). If not, use the following commands:
git clone git://git.gnome.org/gnome-shell-extensions
./autogen.sh --prefix=$HOME/.local --enable-extensions="enter the extensions you want to enable here, space separated"
There are some other extensions as well that aren’t in the git repository as of yet that I find to be very nice, though I don’t actually use any of them. Four of these are currently distributed in a pack, while another must be downloaded from git. The pack of extensions contains these:
Turns clicking on the “Activities” button into a menu for Applications similar to GNOME 3. The overview still works with the hot-corner and Windows key.
Break Dynamic Workspaces:
Lets you set a fixed number of workspaces. Helpful for users who find dynamic workspaces annoying.
Moves the clock between the status menu and the system indicators, like in GNOME 2 and Ubuntu Unity. I personally lik the clock in the middle, but I guess this frees the middle for extensions to use, like the next extension…
Puts a copy of your favorites list on the panel, between the Activities button and the AppMenu. This is similar to launchers from GNOME 2 and other desktops.
To install these extensions, do the following (credit goes to WebUpd8):
cd && wget http://intgat.tigress.co.uk/rmy/extensions/gnome-shell-frippery-0.0.4.tgz
tar -xvf gnome-shell-frippery-0.0.4.tgz
The extensions will now appear in ~/.local/share/gnome-shell/extensions along with the others I mentioned. You can remove them individually if there are ones you do not with to use. Another extension that WebUpd8 pointed out is a “Workspace Indicator” extension which lets you switch workspaces using the mouse without opening the Overview. To install it, you need to clone from a git repository. First, make sure you have git installed, and do the following:
git clone https://github.com/erick2red/shell-extensions.git
mkdir -p ~/.local/share/gnome-shell/extensions #just in case
mv firstname.lastname@example.org/ ~/.local/share/gnome-shell/extensions/
After installing any of these, restart GNOME Shell (Alt+F2, type “r”, hit enter). You should now have your extensions installed and functional.
If you were looking for more “hardcore” customization such as editing the GNOME Shell CSS files to customize it’s appearance, read this blog post (not mine). Some of the things that he does with GNOME 3 are really incredible and it shows how customizable GNOME 3 really is. In fact, some of these extensions come from his blog posts if I’m not mistaken. Enjoy, and I hope that these various tips helped you improve your GNOME 3 experience :)!