There have been many changes in the fundamental workings of Ubuntu since my last guide for 8.04. This guide is still in progress, but it will be fairly comprehensive, including every customization that I do to my Ubuntu system.

The guide will still be based around my laptop, a Thinkpad x61 tablet. Some things might be specific to this laptop, others might be netbook/ultralight specific (I treat this laptop like a netbook), a few things will be for any convertible tablet notebook, and a lot of this is just personalization.

All of the parts will be posted here when I get a chance, but until then all the individual posts can be found under the “Jaunty” tag or at this page:
http://blog.aliencam.net/tag/jaunty/

Some things you should know before reading:

Often in this guide you have to enter commands that differ based on your username. When this comes up, I will put in the command “$USERNAME” replace the whole thing with the username you use to log in, or the part before the @ when you open a terminal window.

when used in a terminal, the shortcut “~/” means “my home directory” or “/home/$USERNAME/”

If you own an x61t, you may find it useful to have a copy of the x61 tablet maintenance manual. (Hat tip thinkwiki)


Part I. Installation

This is the first in my updated “aliencam’s Customized Ubuntu Setup Guide” for Ubuntu 9.04 Jaunty. The previous guide is for Ubuntu 8.04, and is now mostly out of date.

Before you install or upgrade to 9.04, I would suggest reading the release notes so you can see if there are any specific problems with your hardware and what the fixes are, or if fixes will be released in updates later. With my laptop, I see that there is a problem with some Intel video cards, and there are 3 options to fix that. (I will include those steps in this guide if the problem comes up)

I am installing Ubuntu 9.04 x64 Desktop on my Lenovo Thinkpad x61 tablet. I plan to do whatever I can to get ubuntu working as I like it, and to enable all of this laptop’s features. Some of what I will do is just for personal taste, and almost none of it is necessary. Here is what works on the x61t without any customization:

Trackpoint (mouse)
wifi
ethernet
audio
volume keys
USB devices
bluetooth
fn key adjustments (brightness, radio switch, battery, suspend, lock, etc)
“back” and “forward” buttons (next to arrow keys on keyboard)
tablet stylus (regular click works, but the eraser is only seen as regular click, and the right-click button does not work)
tablet “touch” (this is miscalibrated, where you poke is not where it reads)

settings I installed with: I install from a USB stick, use US International Keyboard with dead keys, a 154 GB EXT4 partition as root, and a 6 GB Swap partition. Timezone is set to “Phoenix” and I do not prefer to log in automatically.


Part II. Update and Repository Setup

Enabling Repositories


Before updating or installing any programs, you should enable more repositories. By default, you will only get security updates, recommended updates, and updates of proprietary drivers / nonfree software in the repositories. With this it is most likely that an update will not break anything new, but you will have older versions of everything.

In order to do this, go to System > Administration > Software Sources, then enter your password and go to the “Updates” tab.

Check both the “Pre-Released Updates” and the “Unsupported Updates” boxes. Pre-released updates means updates that will go into the next 6-month ubuntu release, but did not make the cut for this one, and unsupported updates are updates that are not widely tested for stability yet. Neither are necessary, but I like both of them.

Now, go to the “Third-Party Software” tab and enable both of the repositories there. These “partner repositories” enable the use of non-free software, like flash, mp3 codecs, dvd codecs, and similar. I would say these are necessary unless you want to keep your computer 100% open source (in which case I applaud you for being much more intense than I could stand to be right now).

Then, go to the “statistics” tab, and choose whether or not you want to submit statistical data to Ubuntu. I like to do this because it lets them know how many people are updating, and installing which programs from the repositories. Essentially it helps programs you like to use in the popularity contest of “default” programs.

Another optional step is to choose a different server. This can sometimes get your updates much faster, because you won’t be downloading from the same server as everyone else in the world. To do this, go back to the “Ubuntu Software” tab, and on the “Download From:” dropdown menu, choose “other” and then click “choose best server.” It will now run a series of tests to choose which server you are able to connect to and get the fastest speeds. When it finishes, it will automatically select the best choice, click “choose server,” then “close” and “close” again (the update button never works for me).

Now open up a terminal (Applications> Accessories > Terminal) and type sudo apt-get update, then sudo apt-get upgrade.

Fixing Update-Manager Behavior


I don’t like how update-manager behaves in this new version. What happens now is that once per day the update-manager window will open completely, but if you close it, you won’t see it until a week later unless you restart the computer. I prefer it to show an icon in the taskbar telling me that I need to update, and never pop up the update window.

Here are the steps to get back the old update-manager behavior (from the Release Notes):

Open a terminal (Applications > Accessories > Terminal) and enter the following:


gconftool -s --type bool /apps/update-notifier/auto_launch false

Now you will have an icon in the taskbar if you have available updates.

Restricted Extras


By default, Ubuntu can’t have certain things installed like MP3 codecs, flash player, MS fonts, and Java. You probably will want to install all of these, and thankfully if you have enabled the repositories above, there are two packages that handle most of this.
open a terminal and enter:
sudo apt-get install ubuntu-restricted-extras linux-restricted-modules

enter “y” when it asks you if you want to install all the packages, then let it run.

During installation you should be prompted (in the terminal window) to setup Java, When this happens, scroll down to the bottom with either page-down or the down arrow key, then arrow to the right to get to “ok”. Hit enter, then move the selection left to “Yes” and hit enter again.

You now should be able to do these things.


Part III. Firefox Tweaks.

Now, I’m putting Firefox as the first item on this list of things to do because Firefox is definitely where I spend most of my time.

Flash:
go to a site that requires flash (youtube doesn’t work anymore, try google videos) and click the “install missing plugins” button that pops up at the top right corner of the website. Choose the “Adobe Flash Player” and click “next,” click “install” and enter your password.
Once you finish, you need to restart firefox to get it to work.

Some about:config tweaks:


open a new tab and go to about:config. Here you will be able to adjust many very advanced options in Firefox, some of which could mess up your browser, so be careful and don’t change random things.

In the “Filter:” bar, search for “browser.search.openintab” It should read “false” by default, double-click, or right-click and change it to “true.” This will make it so that every time you use the search bar (top right corner of the browser,) it automatically opens in a new tab.

now search for “middlemouse.paste” and change that value to “false.” Now every time you use the middle-mouse button to scroll, it won’t also paste randomly.

next, go to layout.spellcheckDefault and change the value to “2” This allows spellcheck to work in every field, instead of just large text entry boxes.

Installing Firefox Extensions


One might say that I love my firefox extensions. I would not argue with them at all. All or most of these can be installed by searching for them on the Firefox extension website, then clicking “install.” If they aren’t on that site, google the name and they might be hosted on the author’s site. Here is a list of Firefox Extensions by importance:

Absolutely Essential:

  • Adblock Plus (blocks ads, see configuration steps below)
  • Tabs Open Relative (new tabs open next to the current one)
  • Xmarks (syncs bookmarks and passwords)

Pretty Much Essential:

  • Wise Stamp (awesome custom email signatures)
  • Read It Later (saves pages for you to read later)
  • Twitterbar (post to twitter from the address bar)
  • Down Them All! (download embedded media and multiple files)
  • FireFTP (FTP client in Firefox)

Useful:

  • Better Amazon
  • Better Gcal
  • Better Gmail 2
  • Better Greader
  • Customize Google
  • FasterFox (some tweaks for broadband connections. you can do these manually in about:config)
  • Firebug (useful for web development)
  • Google Gears (! If using 64 but see later, installing this is different. enables offline stuff)
  • Greasemonkey (allows website tweaking. I keep disabled except during a woot off)
  • Hide Find Bar (auto hides the find bar when you aren’t using it)
  • LongURL Mobile Expander (expands tinyurls and other on mouseover. Also available as aGreasemonkey script)
  • Menu Editor (necessary for customization section next)
  • TinyURL Creator (creates tiny URLs)
  • User Agent Switcher (lets you pretend to be IE or another browser to trick websites)

Not Really Necessary At All

  • Alexa- Sparky (helps the Alexa ratings of websites you visit, kind of like spyware)
  • Fission (moves the loading bar to the address bar, like Safari)
  • Mr. Uptime (tells you when a website is back up)
  • Novell Moonlight (lets you use Microsoft Silverlight in Linux/Unix)
  • Retail Me Not (alerts you to coupons on websites using retailmenot.com)
  • ScreenGrab (allows fullscreen screenshots of websites since print to pdf doesnt work well)
  • Stealther (locally disables cache and history and stuff temporarily)
  • Stylish (allows you to tweak websites or firefox with userstyles.org scripts)
  • URL Fixer (fixes .cmo to .com and stuff)

Now once you install all of these your firefox window will be covered in buttons and icons for all these extensions. Most of these are useless and just waste space/time, so I get rid of almost all of them. See “Customization” section below.

Google Gears


Google gears is an extremely useful extension for offline browsing (particularly it lets you use Gmail and Google reader offline), and for speeding up websites like wordpress. Unfortunately, Google does not release a 64 bit version of it, but since it is open source, users have been able to recompile it to work with 64bit versions of Firefox. Strangely, enough, not much actually has to be changed, so I don’t understand why Google won’t release a 64 bit version… anyway, the quickest method I have found is to google “Gears 64 linux” and many people will have compiled and posted a version on their blogs. I have not done this because I don’t have the time right now, and last time I tried, I did something wrong.

Currently, the most recent version available is on Niel’s Blog. Go to that site, download the updated binary (at the moment it is gears-linux-opt-05180.xpi), and to install in Firefox, go to “File > Open” then select the .xpi file you just downloaded.

One problem with this method is that periodically you will get a message saying “Gears cannot be updated because it is not compatible with your architecture” Just ignore these messages, and when you are prompted to “update” firefox extensions, just uncheck google gears so the other extensions update. When this happens, wait a few days then do a google search to see if anyone has posted an updated version of the extension.

Adblock-Plus Configuration


When you install Adblock Plus and restart firefox, the first thing that happens is that it asks you which blocklist you want to subscribe to. Select EasyList (USA). Ever since they have implimented this feature, it is recommended (by the authors of adblock) that you DO NOT install Adblock-Plus Filter Uploader.

Once you have Easylist chosen, adblock will block almost all ads out there. Which, for me, and much of the internet, is actually a problem. Many websites rely on ads to survive, but unfortunately they choose annoying flashing, moving pictures, and similar ads. This is why we use adblock. On the other hand, tasteful and relevant text ads are not only not annoying, but often helpful in finding related websites. As such, I like to allow the Google text-only ads (like the ones I have on this site). There are two adblock-plus filters you can add to allow Google Text-Only ads.

Click the arrow on the “ABP Stop Sign”, and select “Preferences” (in the top right corner if you just installed adblock, otherwise Tools > Add-Ons > Extensions > Adblock > Preferences. ) and click “Add Filter…” Then enter the following two lines as new filters:

@@/pagead2.googlesyndication.com/*ads
@@/pagead2.googlesyndication.com/*$script,subdocument

The first one enables the ad, and the second the “Google” text and rounded corners around some of the text ads.

****NOTE: I’m not actually sure those filters work anymore… I’ll have to look into this more, definitely added to my todo list… dang. leave a comment if it does or doesn’t work***

Firefox GUI Customization/Condensing


NOTE: this section is near unintelligible, I wrote this right when I woke up. I will change it to a list format or comprehensible sentences later.

My screen is very small (12.1″) so I need to save every pixel possible so I can see more content. I also don’t want annoying things bugging me while I’m using Firefox. First thing I do is remove all of the icons from extensions. Top right corner and bottom right corner are covered with these. Most of these can be disabled by right-clicking on them, going to options, and changing some option in the extension itself.

Now, right-click on the menu bar and uncheck “Bookmarks Toolbar,” then select “Customize”. Drag off any items you don’t need (home, the “throbber” and the separator line in the top right) , and drag everything else to the top bar. Then check “Use Small Icons.” Now right-click and uncheck “Navigation Toolbar” as well.

Now there are still a few more changes that need to be made, and these are a bit more advanced. I like to get rid of the magnifying glass icon in the “search” bar, and I would like to combine the stop and reload buttons (you can only use one at a time anyway!), don’t show the forward or back buttons if there is nothing to go forward or back to, auto-hide status bar, and italicize unread tabs.

you can do this all with stylish scripts, guide on Lifehacker, userstyles.org but I would prefer to do it without the extension (this way I can keep stylish disabled except when I really need it).

First step is to make a UserChrome.css file. In Ubuntu Linux, go to /home/$USERNAME/.mozilla/firefox/***profile***/chrome ($USERNAME is your username and ***profile*** will be random letters and numbers). In Windows this will be at “C:\Documents and Settings\$USERNAME\Application Data\Mozilla\Firefox\Profiles\***profile***\chrome\”

Make a copy of userChrome-example.css, and rename it “userChrome.css” . Now open this new file, and paste the following section into the bottom (or right below the @namespace line, it doesn’t mater).

/* This removes the Search Bar Magnifying Glass */
.search-go-button-stack { display: none !important; }

/* Combine Stop and Reload buttons*/

#stop-button[disabled] { display: none;}

#stop-button:not([disabled]) + #reload-button {
display: none;
}

/* Remove Back button when there's nothing to go Back to */
#back-button[disabled="true"] { display: none; }

/* Remove Forward button when there's nothing to go Forward to */
#forward-button[disabled="true"] { display: none; }

/* Auto Hide Status Bar Unless Mouseover */
#status-bar:not(:hover) {margin-bottom:-20px;}
#statusbar-display[label*="."], #statusbar-display[label*="."] ~ * {margin-bottom:20px;}

/*This makes unread tabs appear in italics*/

#content tab:not([selected]) {
font-style: italic !important;
}

These were taken from various places; userstyles.org, lifehacker.com, and some other blogs.

now save and close the userChrome.css then restart firefox.

In Edit > Preferences > Content, I change the default font size to 15 instead of 16, to make everything just a little bit smaller.

in “Privacy” I set Firefox to keep only 30 days of history (even 30 days is a lot of data).

Then, using the preferences option in the “Menu Editor” plugin that I installed earlier, follow the following steps.

Open Preferences for Menu Editor (Tools > Add-Ons > Extensions > Menu Editor > Preferences)
Enable “Advanced Mode”.
Uncheck “visible” for “Edit”, “History”, and “Help”
Then, in the right column, change the dropdown menu to “Edit” and in the left, go to “Tools”
Drag the “Preferences” menu item from the right into “Tools” on the left.
Apply, and click “OK.”

Here are some Screenshots of before and after this customization for Firefox.

screenshotscreenshot-1

UPDATE:

I have now added the Wolfram Alpha search plugin to the firefox search bar. click here to install it.


Part IV. Middle Mouse Scrolling

==Thinkpad/IBM Mouse only==

Jaunty uses the same evdev system that Intrepid used, that I had some troubles with. However, the solution should be the same, and I just hope it works correctly this time.

Here are the original settings, before middle mouse scrolling works:
$ xinput -list-props "TPPS/2 IBM TrackPoint"
Device 'TPPS/2 IBM TrackPoint':
Device Enabled (109): 1
Evdev Axis Inversion (251): 0, 0
Evdev Reopen Attempts (242): 10
Evdev Axis Calibration (243):
Evdev Axes Swap (244): 0
Evdev Middle Button Emulation (252): 2
Evdev Middle Button Timeout (253): 50
Evdev Wheel Emulation (254): 0
Evdev Wheel Emulation Axes (255): 0, 0, 4, 5
Evdev Wheel Emulation Inertia (256): 10
Evdev Wheel Emulation Timeout (257): 200
Evdev Wheel Emulation Button (258): 4
Evdev Drag Lock Buttons (259): 0

Now, to get this working, you need to create “/etc/hal/fdi/policy/mouse-wheel.fdi”. Easiest way to do this is to open up a terminal, and enter:
sudo gedit /etc/hal/fdi/policy/mouse-wheel.fdi

Now, paste in the following content and remove the extra space in each line (between “< " and "merge"
< match key="info.product" string="TPPS/2 IBM TrackPoint">
< merge key="input.x11_options.EmulateWheel" type="string">true
< merge key="input.x11_options.EmulateWheelButton" type="string">2
< merge key="input.x11_options.ZAxsisMapping" type="string">4 5
< merge key="input.x11_options.XAxisMapping" type="string">6 7
< merge key="input.x11_options.Emulate3Buttons" type="string">true
< merge key="input.x11_options.EmulateWheelTimeout" type="string">200

The 2nd to last line in there (200) is optional. This line prevents the middle mouse button from exhibiting the annoying paste function that an unconfigured button does. I need to set this option because as I’m scrolling through a document, I hate random sections being pasted where they don’t belong.

Save, exit, and restart X server by restarting the computer (the guide will cover re-enabling ctrl-alt-backspace to restart X later).

If you want an explanation of the other lines, in my post on this with the last version of Ubuntu, I wrote the following:

EmulateWheel should be pretty obvious, you don’t actually have a wheel with a trackpoint, so it emulates one

EmulateWheelButton: which button pretends to be a wheel? the mouse buttons are numbered 1 2 3 in order, so “2? is the middle one

YAxisMapping: which directions should the y-axis go? (4 is up, 5 is down)

XAxisMapping: which directions should the x-axis go? (6 is left 7 is right)

Emulate3Buttons: actually I’m not sure what this does in conjunction with emulatewheel. It probably allows you to use middle-click still (like to close firefox tabs, or whatever else middle click does)

EmulateWheelTimeout: if the button is held for longer than the ammount of time, it switches off the middle mouse click. Essentially, this is what turns off “middle mouse paste” when you are trying to scroll.

With these settings, my middle mouse scrolling vertically and horizontally works even after suspending.


Part V. Installing Software

I install lots of software that I use nearly every day. Here is a list of what I am installing from the start:

(*) gnome-do
(*) crossover office (PAID SOFTWARE) [Microsoft Office 2008, Vector Magic]
(*) crossover games (PAID SOFTWARE)
gcolor2
gscan2pdf
hugin
inkscape
(*) dropbox
ktorrent
nicotine-plus
(*) opera
abiword
bluefish
(*) banshee
dvd::rip
(*) gpodder (needs python-gpod to work with iPods)
pulse audio volume control (pavu-control)
VLC
compiz fusion icon
(*) Mathematica 7
compiz control settings manager (ccsm)
powertop
gparted
ntfsprogs
hfsprogs
kerneloops
gthumb
subversion
bootchart
wacomtools
xflux (see my guide on installing this)
citrix (see my guide on installing this)

Those programs prefixed with (*) should NOT be installed from the Ubuntu repositories. Either they are not in the repos, or I don’t like the version in the repos.

In order to do this, some custom repositories (Launchpad PPAs) must be added. See the following section for how to install software from Launchpad PPAs.

If you want to install most of these at once, you can use the following command:
$ sudo apt-get install gcolor2 gscan2pdf hugin inkscape ktorrent nicotine bluefish dvdrip pavucontrol vlc fusion-icon compizconfig-settings-manager powertop gparted kerneloops gthumb subversion bootchart ntfsprogs hfsprogs wacom-tools xournal cellwriter

Installing Software from a Launchpad PPA.

In order to do this, open System > Administration > Software Sources > Third Party Software and “Add” the following lines:

deb http://ppa.launchpad.net/banshee-team/ppa/ubuntu jaunty main
deb-src http://ppa.launchpad.net/banshee-team/ppa/ubuntu jaunty main

Once you do this, click close, but not refresh (if you do refresh you will get an error, just ignore that until you complete the next step.)

Now for the tricky part of adding custom PPAs — adding the public keys. What you will need to do from the launchpad PPA page is follow these instructions:

On each Launchpad PPA Page will be a line of text similar to the following:
screenshot

“This repository is signed with 1024R/6E80C6B7 OpenPGP key. Follow these instructions for installing packages from this PPA. ”

To install the key, click the link that the numbers are linked, and then again click the “Key ID” link on the next page (another set of numbers). Now you will be at the public key page. From here, copy-paste everything from
“—–BEGIN PGP PUBLIC KEY BLOCK—–” to “—–END PGP PUBLIC KEY BLOCK—–”
into a new text document (make it on your desktop, it doesn’t matter where really). Then save this document with any name, close the text editor, then open back up System > Administration > Software Sources, go to the “Authentication” tab, click “import key file” then select the file you created. Once you do this you are okay to delete the file.

Now you are ready to install the program from synaptic, or apt-get.


Part VI. Customizing Gnome’s Look & Feel

I don’t really like the way Ubuntu’s default Gnome setup looks. Primarily because I have my tablet, which has a small 12.1 inch screen. I also like to change the theme. Since I have such a small screen, I will do almost anything to increase how much information I can see at the same time (short of getting a laptop with a bigger screen, or an external monitor, of course.) So, many of these tips are inspired or taken from Ubuntu Netbook Remix.

To illustrate the changes I make, here are before and after screenshots of my computer’s look.

Original Final

First step is to install window picker applet: a window picker in your title bar that also has a window close button, and maximus: a program that removes the title bar (the bar with the maximize, minimize, and close buttons) or “un-decorates” maximized windows.

sudo apt-get install window-picker-applet maximus

now the default behavior of maximus is to force all window to be maximized, to change this, add the argument “-m” when running it. It automatically runs on boot, so to change this, go to System > Preferences > Startup Applications, find “Maximus Window Management” in the list, choose it, and click “edit”. Then, change the command to “maximus -m”.

Now, you need to add the window-picker-applet to your Gnome Panel in order to be able to close the open window easily. Right-click on the top middle part of the top Gnome Panel (the bar at the top of the screen), go to “Add To Panel” and add “Window Picker”.

Removing Useless Panel Things:
Remove the following panel applets by right-clicking on them and selecting “Remove From Panel”:

  • User Switcher Applet (top right corner) (also remove the seperator [line] to the left of it).
  • Menu Bar (top left corner, its the equivelent of the “start menu”
  • The three shortcuts next to the menu bar (Firefox, Mail, and Help) (if you are using Gnome-do, you don’t need them)

Now, remove the ENTIRE BOTTOM PANEL by right-clicking in a blank area, and selecting “Delete this panel”

Add the following panel applets to the top panel in this order (left to right) If you don’t know what the applets you already have on the panel are called, then just remove all the applets and start from a blank top panel.

  1. Main Menu
  2. Drawer (optional: use this if you want some program shortcuts in the menu bar still.)
  3. Window Picker
  4. CPU Frequency Scaling Monitor (go to Preferences and set this to be the icon to take up less space)
  5. Notification Area
  6. Indicator Applet
  7. Volume Control
  8. Workplace Switcher
  9. Clock
  10. Trash
  11. Shut Down

You should configure the clock by adding your location (right-click > preferences > location) and removing the date so it is smaller. This way you get the date on mouseover, and the weather to the left of the clock at all times.

You also may want to shrink or grow the panel size by a few pixels, the icons in window-picker are cut off a bit at the default 24 pixels, if that bothers you increase it to 26, but you can actually decrease it all the way to 23 px and it still be usable.

Now, to change Ubuntu to a darker colour theme (I don’t like my screen to burn my eyes), right-click on the desktop (get to the desktop by hitting crl-alt-d now), go to properties, and “change Desktop Bakcground”, then you can go to the “Themes” tab and select Dust. I also go to the “Fonts” tab, and change the font rendering to “Best Contrast” instead of “subpixel smoothing”.

Removing Menu Items

When I installed all those programs, I also installed all of the suggested programs. These ensure that more features of the programs will work, and more smoothly, but it also clutters up my programs menu with a bunch of stuff that I will never use, things like dolphin and konsole are unnecessary when you are using Gnome.

Unfortunately, editing the Gnome menu is not as easy as it is in Windows (this has to be one of the only things I think windows does wayy better) You must use the slow and clunky and buggy Menu Editor program. (significantly improved from the last version, but still not great)

Click your new Menu Button (top left corner) go to System > Preferences > Main Menu.

Now you can go through, reorganize, and remove the icons you don’t want.

Here is a list of changes I made in no particular order:

  • move cellwriter from Universal Access to Acessories (drag to copy, then uncheck in the original location)
  • In Accessories, uncheck kwrite
  • In graphics, uncheck Hugin Batch Stitcher (its a terminal app used by the panorama creator…)
  • Move Bluefish Editor from Programming to Office (drag to copy, then uncheck in the original location)
  • Move Fusion-Icon from System Tools to Accessories (drag to copy, then uncheck in the original location)
  • In System Tools, uncheck Dolphin and Konsole
  • Uncheck everything in “Other” (this is all repeated in the Preferences menu)
  • In Preferences, Create the following new menus: “Display”, and “Input”.
  • Move “Appearance”, “Compiz Config Settings Manager”, “Main Menu”, “QT4 Settings”, “Screensaver”, and “Windows” from Preferences into Preferences > Display (you have to drag it to the display folder in the left sidebar, then uncheck the originals)
  • Move “Ketboard”, “Keyboard Shortcuts”, “Mouse”, “On Board” and “On Board Settings (check these), and “SCIM Input Method Setup” from Preferences in to Preferences > Input. (you have to drag it to the display folder in the left sidebar, then uncheck the originals)

Keyboard Shortcuts

The Gnome “Keyboard Shortcuts” editor does not always work, for example, you cannot set any Super+___ shortcut keys using that, so unfortunately, we must once again use the Compiz Commands Plugin.

Open “compiz control settings manager” (if you don’t already have it installed do: sudo apt-get install compizconfig-settings-manager)

click the “Commands” plugin (it should be at the very top) and enable it if it is not already enabled.

Now in the “Commands” tab, enter whatever command you want to launch (pick any unused number, it does not matter which)

Now, switch to the “Key Bindings” tab. Here is where you will record what key combination you want to launch the command. Click the word “Disabled” then check the “Enabled” checkbox on the window that comes up. Once you click “Grab Key Combination,” the next key combination you press will be recorded.

The combinations that I have set both launch an open terminal window, but since I have two different terminal profiles (one with a transparent background, and another with green text on black background for high-contrast), I want one shortcut to launch each profile.

In the “Key Bindings” I have “XF86Launch1” (ThinkVantage button) as “Command 0” and “Super_L+Tab” (windows key+ tab) as “Command 2”.

In “Command” I have Command 0 set to:
gnome-terminal --window-with-profile=Terminal
(the word “Terminal” being the name of my high-contrast terminal profile)
and Command 1 is set to:
gnome-terminal --window-with-profile=Transparent
(“Transparent” is the name of my transparent profile)

As soon as you close out of CompizConfig the settings should take place.


Setting the Windows (Super) Key to open the Main Menu:

If you want the Windows (or Super) key to open the main menu, you can set it up, but the problem with this is once the shortcut key is set, you can’t use any other shortcuts with the Super key (I use it for lots of things already, so when I realized this, I had to disable it).

For this one, you actually have to use the gnome “Keyboard Shortcuts” editor (correct me if I’m wrong please). So, first (and only!) step is to open that up (System> Preferences> (Input>) Keyboard Shortcuts)
Under the “Desktop” header, find “Show the Panel’s Main Menu” click on the “Alt+F1” on the right, then hit the Super key.

Unfortunately, this removes the alt-f1 shortcut that many people are used to… I don’t know how to have both set at the same time.


Part VII: Pidgin

Customizing Pidgin Settings:
if you use any instant messaging program, you will want to setup Pidgin to work with all of your accounts. It may be ugly and awkward to use at first, but once you change it’s settings it is actually very stable, quick, and it works perfectly for me.

When you first open Pidgin, you will need to add an account, just click “add”, then select the type of account it is, and enter your information. You can add as many accounts of any type as you like to pidgin, and it combines them all very well. Make sure you check the “remember password” option, or you will have to log into each account every time you start pidgin.

Once you finish that, go to Tools > Plugins, and enable the following plugins:

  • Buddy Notes
  • Buddy State Notification
  • Contact Availability Prediction
  • Log Reader
  • Psychic Mode
  • Timestamp
  • Pidgin-Encryption

You’ll also want to download the pidgin-facebookchat plugin from http://code.google.com/p/pidgin-facebookchat/ in order to be able to chat on facebook without actually logging onto the website. (I don’t think I have actually typed in facebook.com in months, I chat through pidgin, reply to messaes via email or SMS, and update my status vis Twitter.) To download the latest version, go to the website, and download the .deb file in the top right corner of the page. Then just install it by double-clicking on it. Then restart Pidgin, and go back into the account manager (ctrl-a) and add the facebook account.

Now, go to Tools > Preferences and uncheck “show IMs and chats in tabbed windows”. Then, select “None” in Smiley Themes. Under “Logging” change “Log Format” to HTML.

If you have previous log files, you can copy those from your backup into /home/USERNAME/.purple/logs andthey will work even if previous logs are from deadAIM, Trillian, and other AIM clients.

Finally, there are way too many libnotify alerts with all my accounts enabled, so go into File > Plugins, scroll down to libnotify, and uncheck “Buddy Signs on”.


VIII. Wacom Tablet Config & Rotation

The tablet on the X61t is amazing. Unfortunately, not everything works out of the box. This guide goes through setting up most of the tablet-related things on the x61t.

what doesn’t work: wacom cpl and all of it’s configurations, screen rotation, touch (kind of works, but it needs the wacomcpl configurations that don’t work), the “eraser” button, the rotation hotkey,

First thing you need to do is make sure you have wacom-tools and xserver-xorg-input-wacom installed:

sudo apt-get install wacom-tools xserver-xorg-input-wacom

Now, we run into a roadblock. Ubuntu 9.04 does something strange with the names of each device, so if you go and try to use any of the utilities that were just installed (wacomcpl and xset wacom being just a few of what is included in the above), it can’t find the actual input devices. In order to remedy this, we need to install a short script from the Ubuntu forums.

Open a root text editor (alt-f2 then enter “gksu gedit”, or type that into a terminal) and paste in the following content:

# wacom-names script by Roger E. Critchlow, Jr. (4-12-09)
# modified by gali98/Favux (4-14-09)
#
# Obtained/shortened by aliencam (aliencam.net) from:
# http://ubuntuforums.org/showthread.php?p=7068115#post7068115
#
#! /bin/sh
## find any wacom devices
for udi in `hal-find-by-property --key input.x11_driver --string wacom`
do
type=`hal-get-property --udi $udi --key input.x11_options.Type`
## rewrite the names that the Xserver will use
hal-set-property --udi $udi --key info.product --string $type
done

Now save it in /etc/init.d/ as “wacom-names”

Close gedit, and in a terminal, enter:

sudo chmod +x /etc/init.d/wacom-names

now you must make sure the file is at /etc/init.d/wacom-names before you do the next step, otherwise you’ll have problems booting, and could run into some other fun issues. Do this by actually going to the file explorer (Places > Computer > Filesystem) and looking for the file “wacom-names” in /etc/init.d. (or type find /etc/init.d/wacom-names into a terminal and make sure it returns “/etc/init.d/wacom-tools” )

One more check, and “ls -l /etc/init.d/wacom-names” in a terminal should return “-rwxr-xr-x 1 root root 508 2009-06-27 00:50 /etc/init.d/wacom-names” (with a different date and time of course)

Now, back in the terminal, the following line sets the script to run after HAL, but before X, meaning that before X even sees the devices, they are correctly named:
sudo update-rc.d wacom-names start 27 2 3 4 5 .

then it should return something similar to:

update-rc.d: warning: /etc/init.d/wacom-names missing LSB information
update-rc.d: see <http://wiki.debian.org/LSBInitScripts>
Adding system startup for /etc/init.d/wacom-names ...
/etc/rc2.d/S27wacom-names -> ../init.d/wacom-names
/etc/rc3.d/S27wacom-names -> ../init.d/wacom-names
/etc/rc4.d/S27wacom-names -> ../init.d/wacom-names
/etc/rc5.d/S27wacom-names -> ../init.d/wacom-names

the “Missing LSB information” line is nothing to worry about for these purposes. LSB Information is a line in the file that is supposed to say what the dependencies for the file are, making sure that it is executed in the correct order. We added it to run in S27 in levels 2, 3, 4, and 5, so it should be fine. I wonder though if this will slow down boot time (this will be analyzed and addressed if necessary in one of the next sections) (UPDATE: it does not seem to adversely affect boot times.)

After restarting the computer, test this by entering “xsetwacom list” into a terminal, it should list the available wacom devices now. You can then use the “wacomcpl” (wacom control panel) to configure the tablet devices.

One thing I noticed was that after enabling the script, kerneloops reports a kernel bug every reboot and every time I resume from suspend/hibernate. It doesn’t seem to cause any real problems, but I would like to find out what is going wrong and how to fix it.

REMOVAL:
if you need to remove this script from startup, simply enter this command into the terminal:
sudo update-rc.d -f wacom-names remove

then delete the actual file with this command:
sudo rm /etc/init.d/wacom-names

SOURCES for wacom-names guide:
http://ubuntuforums.org/showthread.php?p=7068115#post7068115
https://help.ubuntu.com/community/X61T

Once you have the devices renamed properly configure touch by pressing alt-F2, and entering “wacomcpl”. You then need to click the “touch” device in the list, and select “Calibrate”. Then press the center of the pink selected box (first in the top left corner, then the bottom right) and it will recalibrate the touch device.

You also probably want to set the button on the stylus to be right-click, and the back button to be middle. To do this, in wacomcpl go to the “stylus” device, click “tool buttons”, and change “Button 2” to “right”. Then hit “Okay” and close wacomcpl.


Keeping Configuration After Reboot

Now, if you have a problem loosing the calibration every time you restart the computer (I do), the following steps will save your configuration between reboots.

first, you need to edit the .xinitrc file in your home directory. Open a terminal and enter:
gedit ~/.xinitrc

Now, put a # before the line “. /etc/X11/xinit/xinitrc” Save, and close. Now, you need to set this file to run on startup. Open System > Preferences > Startup Applications, and create a “New” entry.

Name it something you will remember, I chose “Wacom Config”
The command should be:
sh /home/$USERNAME/.xinitrc
and for a comment, I put “Sets wacom tablet configuration on boot.”

Now, just configure your wacom tablet settings as normal with wacomcpl (see above) and the settings will be saved.

UPDATE: (July 26, 2009) A recent update fixed the problem that was making this necessary. If you did this fix and all of the sudden your configuration stopped working, just go into the System> Preferences > Startup Applications and disable or delete the .xinitrc launcher that was created (the wacom configuration setting).


Screen Rotation Script

Screen rotation is one of the things I am most asked about with the X61t. Unfortunately, you can’t use the standard display control panel to rotate the screen because then the tablet input will not be rotated. Fortunately, this is a very easy fix once you have applied the wacom-names script (detailed above in this guide.)

This particular script rotates the screen clockwise 90 degrees every time you run it, so if you want the screen to be facing the right, you will have to run it three times, left is just once, inverted is twice, and four times to get it back to normal. I chose not to do an automatic rotation script because those use CPU cycles, and significantly decrease battery life. If you want automatic screen rotation see https://help.ubuntu.com/community/X61T#Setup%20Automatic%20Screen%20Rotation

First, create a new file for the rotate script in your home directory:
gedit ~/.rotate

Now, paste the following content into the empty rotate file, then save and close gedit:

#Screen Rotation Script by aliencam (http://aliencam.net)
#This script will only work if your Xserver has the correct tablet device names
#follow the guide on http://blog.aliencam.net/articles/ubuntu-9-04-setup-guide/
#! /bin/sh

orientation=`xrandr -q | grep “LVDS”| awk ‘{print $4}’ | sed ‘s/[^A-Za-z]//g’`
if [ “$orientation” = “normal” ]; then
/usr/bin/X11/xrandr –orientation right
xsetwacom set stylus rotate CW

else
if [ “$orientation” = “right” ]; then
/usr/bin/X11/xrandr –orientation inverted
xsetwacom set stylus rotate 3
else
if [ “$orientation” = “inverted” ]; then
/usr/bin/X11/xrandr –orientation left
xsetwacom set stylus rotate CCW
else
if [ “$orientation” = “left” ]; then
/usr/bin/X11/xrandr –orientation normal
xsetwacom set stylus rotate

else
/usr/bin/X11/xrandr –orientation normal
xsetwacom set stylus rotate
fi
fi
fi

fi

If you want the code formatted correctly (wordpress removes all my tabs and whitespace!) download the file here: http://cameronkopas.com/blog/wp-content/uploads/2009/06/rotate.txt into your home directory, and rename it from “rotate.txt” to “.rotate” (the “.” before the filename makes it a hidden file)

Now, we have to make the file executable:

chmod +x ~/.rotate

At this point, you are ready to run the script. You can execute it by clicking on it in your home folder, but since we made it hidden it is more likely that you want to set a shortcut to execute the file. In the past, I have had a button on the panel at the top that I could click to rotate the screen, but now I realize that it would be much better (and space-conserving) to simply use the rotate screen button on the tablet itself.

If you still want to have a button on the panel, right click on an empty space, select “Add to panel” (you might have to move something to get empty space) then add a “Custom Application Launcher”, making the command “/home/$USERNAME/.rotate”

To set one of the tablet hardware buttons to be a shortcut key, you first have to find out it’s keycode. To do this, open a terminal and launch the program “xev”

Then move your mouse over to close the window that it spawns, but don’t close it yet. When your mouse is in position, press the tablet rotate button and you should get something like the following:
KeyPress event, serial 32, synthetic NO, window 0x4a00001,
root 0xaa, subw 0x0, time 1510919, (164,-20), root:(611,29),
state 0x0, keycode 199 (keysym 0x0, NoSymbol), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False

In there you can see “keycode 199” remember this or write it down, then you can close the box that xev spawned. (if yours does not show a keycode, type the command “setkeycodes 6c 199”. see Here for the rest of the tablet buttons, and Here for other keys entirely.

At this point, you need to create an xmodmap file in your home directory, and set your computer to use that xmodmap file:
touch ~/.Xmodmap
xmodmap ~/.Xmodmap

Now, edit the file by entering “gedit ~/.Xmodmap” into a terminal to include the keys you want to map in the following format:
keycode < keycode> = < keysym>

So in my case, I want to map keycode 199 to the keysum XF86LaunchB (I’m saving LaunchA for later)
keycode 199 = XF86LaunchB

then save and close the file. You will have to restart X (haven’t gotten to setting that hotkey yet) so for now, logout and log back in, or restart the computer. You will then be asked which Xmodmap file you want to load, select the one you just created, press “load”, “do not ask me this again”, and then “okay”.

xmodmap

Now to actually set that key to launch the rotate script, you should already have compiz config settings manager installed (sudo apt-get install compizconfig-settings-manager if you don’t already). Open that in System > Preferences > (Display >) Compiz Config Settings Manager.

Within CompizConfig, click on “Commands” (should be top left) then go to the “Key Bindings” tab. Click on the word “Disabled” next to “Run Command 1” (I’m saving command 0 for later) then check the “Enabled” box. Now you need to click on “Grab Key Combination” and press the rotate screen button (it should then read XF86LaunchB). Now you can hit okay and go to the “Commands” tab.

In “Command Line 1” enter the command for the rotate script:
/home/$USERNAME/.rotate

Now check the “enable commands” box over in the left column, hit back, close compizconfig, and have fun with your new calibrated tablet with ondemand screen rotation!!!

SOURCES for rotation and hotkeys:
rotation script framework: http://wiki.control-d.com/index.php?title=Ubuntu_Intrepid_Ibex_(8.10)_on_a_Toshiba_Protege_M400#Rotating_the_screen
Tablet Hardware Buttons: http://www.thinkwiki.org/wiki/Tablet_Hardware_Buttons
Thinkpad Special Keys: http://www.thinkwiki.org/wiki/How_to_get_special_keys_to_work#Gnome.2Fmetacity


more to come… post any suggestions, or other things you would like to see in the comments. Sorry it took me so long to compile this… we’re already halfway to the release of 9.10!