Ubuntu User Interface Tweaks

Exclusive offer: get 50% off this eBook here
Asterisk Gateway Interface 1.4 and 1.6 Programming

Asterisk Gateway Interface 1.4 and 1.6 Programming — Save 50%

Design and develop Asterisk-based VoIP telephony platforms and services using PHP and PHPAGI

$23.99    $12.00
by Christer Edwards | August 2009 | Linux Servers Open Source

One of the greatest things about a Linux based Desktop environment is the ability to customize nearly everything you see. In this article by Christer Edwards, we will see how to find hidden UI options as well as save all of your customizations for easy replication. By the end of this article you'll know how to automate (script) the customization of your desktop down to the very last detail.

I have spent time on all of the major Desktop operating systems and Linux is by far the most customizable. The GNOME Desktop environment, the default environment of Ubuntu and many other Linux distributions, is a very simple yet very customizable interface. I have spent a lot of time around a lot of Linux users and rarely do I find two Desktops that look the same. Whether it is simple desktop background customizations or much more complex UI alterations, GNOME allows you to make your desktop your own.

Just like any other environment that you're going to find yourself in for an extended period of time, you're going to want to make it your own. The GNOME Desktop offers this ability in a number of ways. First of all I'll cover perhaps the more obvious methods, and then I'll move to the more complex. As mentioned in the introduction, by the end of this article you'll know how to automate (script) the customization of your desktop down to the very last detail. This is perfect for those that find themselves reinstalling their machines on a regular basis.

Appearance

GNOME offers a number of basic customizations within the Applications menu. To use the "Appearance Preferences" tool simply navigate to: System > Preferences > Appearance

You'll find that the main screen allows you to change your basic theme. The theme includes the environment color scheme, icon set and window bordering. This is often one of the very first things that users will change on a new installation. Of the default theme selections I generally prefer "Clearlooks" over the default Ubuntu brown color.

Ubuntu User Interface Tweaks

The next tab allows you to set your background. This is the graphic, color or gradient that you want to appear on your desktop. This is also a very common customization. More often than not users will find third-party graphics specific in this section. A great place to find user-generated desktop content is the http://gnome-look.org website. It is dedicated to user-generated Artwork for the GNOME and Ubuntu desktop.

On the third tab you'll find Fonts. I have found that fonts do play a very important role in the look of your desktop. For the longest time I didn't bother with customizing my fonts, but after being introduced to a few that I like, it is a must-have in my desktop customization list. My personal preference is to use the "Droid Sans" font, at 10pt for all settings. I think this is a very clean, crisp font design that really changes the desktop look and feel.  If you'd like to try out this font set you'll have to install it. This can be done using:

sudo aptitude install ttf-droid

Another noticeable customization to your desktop on the Fonts tab is the Rendering option. For laptops you'll definitely want to select the bottom-right option, "Subpixel Smoothing (LCDs)". You should notice a change right away when you check the box.

Ubuntu User Interface Tweaks

Finally, the Details button on the fonts tab can make great improvements to the over all look. This is where you can set your font resolution. I highly suggest setting this value to 96 dots per inch (dpi). Recent versions of Ubuntu try to dynamically detect the preferred dpi. Unfortunately I haven't had the best of luck with this new feature, so I've continued to set it manually. I think you'll notice a change if your system is on something other than 96. Setting the font to "Droid Sans" 10pt and the resolution to 96 dpi is one of the biggest visual changes that I make to my system!

The final tab in the Appearances tool is the Interface. This tab allows you to customize simple things like whether or not your Applications menu should display icons or not. Personally, I have found that I like the default settings, but I would suggest trying a few customizations and finding out what you like.

If you've followed the suggestions so far I'm sure your desktop likely looks a lot different than it did out of the box. By changing the theme, desktop background, font and dpi you may have already made drastic changes. I'd like to also share with you some of the additional changes that I make, which will help demonstrate some of the more advanced, little known features of the GNOME desktop.

gconf-editor

A default Ubuntu system comes with a behind-the-scenes tool called the "gconf-editor". This is basically a graphical editor for your entire GNOME configuration settings. At first use it can be a bit confusing, but once you figure out where and how to find your preferred settings it becomes much easier.

To launch the gconf-editor press the key combination ALT-F2 and type:

gconf-editor

I have heard people compare this tool to Microsoft's registry tool, but I assure you that it is far less complicated! It simply stores GNOME configuration and application settings. It even includes the changes that you made above! Anytime you make a change to the graphical interface it gets stored, and this tool is a graphical way to view those changes.

Let's change something else, this time using the gconf-editor.

Another of my favorite interface customizations includes the panels. By default you have two panels, one at the top and one at the bottom of your screen. I prefer to have both panels at the top of my screen, and I like them to be a bit smaller than they are out of the box. Here is how we would make that change using the gconf-editor.

Navigate to Edit > Search and search for bottom_panel or top_panel. I will start with bottom_panel. You should come up with a few results, the first one being /apps/panel/toplevels/bottom_panel_screen0.

Ubuntu User Interface Tweaks

You can now customize the color, size, auto-hide feature and much more of your panel. If you find orientation, double-click the entry, and change the value to "top" you'll find that your panel instantly moves to the top of the screen. You may want to alter the size entry while you're in there as well. Make a note of the Key name that you see for each item. These will come in handy a little bit later.

A few other settings that you might find interesting are Nautilus desktop settings such as:

  • computer_icon_visible
  • home_icon_visible
  • network_icon_visible
  • trash_icon_visible
  • volumes_visible

These are simple check-box settings, activating or deactivating an option upon click. Basically these allow you to toggle the computer, home, network or trash icons on your desktop. I prefer to make sure each of these is turned off. The only one that I do like to keep on is volumes_visible. Try this out yourself and see what you prefer.

Automation

Earlier I mentioned that you'll want to make note of the Key Name for the settings that you're playing with. It is these names that allow us to automate, or script, the customization of our desktop environment. After putting a little bit of time into finding the key names for each of the customizations that I like I am now able to completely customize every aspect of my desktop by running a simple script! Let me give you a few examples.

Above we found that the key name for the bottom panel was: /apps/panel/toplevels/bottom_panel_screen0

The key name specifically for the orientation was: /apps/panel/toplevels/bottom_panel_screen0/orientation

The value we changed was top or bottom. We can now make this change from the command line using by typing:

gconftool-2 -s --type string /apps/panel/toplevels/bottom_panel_screen0/orientation top

Let us see a few more examples, these will change the font settings for each entry that we saw in the Appearances menu:

gconftool -s --type string /apps/nautilus/preferences/desktop_font "Droid Sans 10"
gconftool -s --type string /apps/metacity/general/titlebar_font "Droid Sans 10"
gconftool -s --type string /desktop/gnome/interface/monospace_font_name "Droid Sans 10"
gconftool -s --type string /desktop/gnome/interface/document_font_name "Droid Sans 10"
gconftool -s --type string /desktop/gnome/interface/font_name "Droid Sans 10"

You may or may not have made these changes manually, but just think about the time you could save on your next Ubuntu installation by pasting in these five commands instead! I will warn you though, once you start making a list of gconftool commands it's hard to stop. Considering how simple it is to make environment changes using simple commands, why not list everything!

I'd like to share the script that I use to make my preferred changes. You'll likely want to edit the values to match your preferences.

#!/bin/bash
#
# customize GNOME interface
# (christer@rootcertified.com)
#

gconftool-2 -s --type string /apps/nautilus/preferences/desktop_font "Droid Sans 10"
gconftool-2 -s --type string /apps/metacity/general/titlebar_font "Droid Sans 10"
gconftool-2 -s --type string /desktop/gnome/interface/monospace_font_name "Droid Sans 10"
gconftool-2 -s --type string /desktop/gnome/interface/document_font_name "Droid Sans 10"
gconftool-2 -s --type string /desktop/gnome/interface/font_name "Droid Sans 10"
gconftool-2 -s --type string /desktop/gnome/interface/icon_theme "gnome-brave"
gconftool-2 -s --type bool /apps/nautilus/preferences/always_use_browser true
gconftool-2 -s --type bool /apps/nautilus/desktop/computer_icon_visible false
gconftool-2 -s --type bool /apps/nautilus/desktop/home_icon_visible false
gconftool-2 -s --type bool /apps/nautilus/desktop/network_icon_visible false
gconftool-2 -s --type bool /apps/nautilus/desktop/trash_icon_visible false
gconftool-2 -s --type bool /apps/nautilus/desktop/volumes_visible true
gconftool-2 -s --type bool /apps/nautilus-open-terminal/desktop_opens_home_dir true
gconftool-2 -s --type bool /apps/gnome-
do/preferences/Do/Platform/Linux/TrayIconPreferences/StatusIconVisible true
gconftool-2 -s --type bool /apps/gnome-do/preferences/Do/CorePreferences/QuietStart true
gconftool-2 -s --type bool /apps/gnome-terminal/profiles/Default/default_show_menubar false
gconftool-2 -s --type string /apps/gnome-terminal/profiles/Default/font "Droid Sans Mono 10"
gconftool-2 -s --type string /apps/gnome-terminal/profiles/Default/scrollbar_position "hidden"
gconftool-2 -s --type string /apps/gnome/interface/gtk_theme "Shiki-Brave"
gconftool-2 -s --type string /apps/gnome/interface/icon_theme "gnome-brave"
gconftool-2 -s --type integer /apps/panel/toplevels/bottom_panel_screen0/size 23
gconftool-2 -s --type integer /apps/panel/toplevels/top_panel_screen0/size 23

Summary

By saving the above script into a file called "gnome-setup" and running it after a fresh installation I'm able to update my theme, fonts, visible and non-visible icons, gnome-do preferences, gnome-terminal preferences and much more within seconds. My desktop actually feels like my desktop again!

I find that maintaining a simple file like this greatly eases the customization of my desktop environment and lets me focus on getting things done. I no longer spend an hour tweaking each little setting to make my machine my home again. I install, run my script, and get to work!


If you have read this article you may be interested to view :


Asterisk Gateway Interface 1.4 and 1.6 Programming Design and develop Asterisk-based VoIP telephony platforms and services using PHP and PHPAGI
Published: February 2009
eBook Price: $23.99
Book Price: $39.99
See more
Select your format and quantity:

About the Author :


Christer Edwards currently works for a US Department of Defense Contractor maintaining Linux and FreeBSD Systems. In a previous life he was a Technical Instructor developing and teaching courseware for Red Hat Enterprise. While it is the Enterprise  that pays the bills, his real passion is in the Linux community trenches. He has been a long-time contributor to Ubuntu where he has maintained a technical blog on the Ubuntu Planet for over three years. He was also key in organizing the Ubuntu LoCo project throughout the US. An ideal day for him is one spent quietly writing documentation and articles.

Books From Packt

ModSecurity 2.5
ModSecurity 2.5

Beginning OpenVPN 2.0.9
Beginning OpenVPN 2.0.9

Linux Email
Linux Email

Ext JS 3.0 Cookbook
Ext JS 3.0 Cookbook

JBoss AS 5 Development
JBoss AS 5 Development

Pentaho Reporting 3.5 for Java Developers
Pentaho Reporting 3.5 for Java Developers

MooTools 1.2 Beginner's Guide
MooTools 1.2 Beginner's Guide

Plone 3 for Education
Plone 3 for Education

Your rating: None Average: 5 (1 vote)
Great Post by
Love the article, and thanks for the UI automation on fresh installs. Cheers Christer
nice post man by
nice post man
Why by
Why has nobody posted a comment, it was a nice read.

Post new comment

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
E
p
C
5
Z
h
Enter the code without spaces and pay attention to upper/lower case.
Code Download and Errata
Packt Anytime, Anywhere
Register Books
Print Upgrades
eBook Downloads
Video Support
Contact Us
Awards Voting Nominations Previous Winners
Judges Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
Resources
Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software