Original URL: http://www.theregister.co.uk/2008/11/24/netbook_linux_guide_3/

The Netbook Newbie's Guide to Linux

The Big Easy

By Chris Bidmead

Posted in Software, 24th November 2008 15:17 GMT

Episode Three Considering that Linux netbooks are designed to present a simplified interface that can be used by complete newbies, it's amazing how buzzy hackers have become about them. Even people who wouldn't consider themselves hardcore techies love to tinker under these machines' hoods.

Eee Simple Mode

Yes, from the hardended hacker's point of view, the various Linux distros on netbooks like the MSI Wind, the Acer Aspire One and the Asus Eee PC are dumbed down, and the real hacker solution is to take the supplied OS off altogether and start again with a fresh full distribution like Ubuntu - this would be a prime candidate. But that's not the thrust of this series, and there's much that can be done without taking that drastic step. For example, AA1 users can start by switching into Advanced Mode like this:

Open up a terminal - Files > My Documents, or any of the icons in the Files group, will open the File Manager, and you'll find Terminal in the File menu.

As we saw in Episode One, the AA1 interface is built using a lightweight Linux window manager called Xfce. We can get to its settings manager with the command:

xfce-setting-show

Click the Desktop icon and bring up the Desktop Preferences dialogue box. You can make some minimal cosmetic changes to the desktop with the appearance tab, but what we want is the second tab marked 'Behaviour'. Put a tick in the box marked 'Show desktop menu on right click'. Close the dialogue box, close the XFCE Settings Manager, and close the terminal window.

AA1 Desktop Behaviour

Activate the Advanced menu

Now a right-click anywhere on the standard desktop will bring up the Desktop Menu. This menu is largely a text-based duplication of what you can do from the standard icon-based desktop, but also includes a number of very interesting advanced options.

The top item in the Settings Menu is the Settings Manager that we just visited. Selecting this menu item produces exactly the same results as that xfce-setting-show command we typed into the command line. Try it.

In fact, the GUI is just a front-end to the command line. You'll discover that most of the Linux interface is built along these lines, the real heavy lifting being done by off-screen command-line operations, with the GUI front-end pulling the strings. To see how this works, select Settings/Menu Editor. In the left-hand column is the entry that appears in the menu against, in the right-hand column, the command that will be run as a result of picking that entry.

As this is a menu editor, you're now in a position to mess this about any way you want. I wouldn't recommend you do so at this stage, but to get a feel for the possibilities try putting a tick in one of the boxes in the third column marked 'Hidden', perhaps on the line labelled 'About Xfce'. Save your edit with Control-S, close the Menu Editor, and return to the standard AA1 desktop. Now you'll see that when you right click to bring up the Desktop Menu, the About Xfce entry has disappeared.

Acer Aspire One menu editor

Messing with the Menu Editor

Doing this is, by the way, totally unfair to a brilliant Frenchman called Olivier Fourdan, the creator of Xfce credited here, so I suggest you change this back again.

A more useful tweak might be to add a second Workspace in the 'Workspaces and Margin' dialogue box. This will give you a pair of 'virtual desktops' you can switch between using Alt-Left-Cursor and Alt-Right-Cursor. Crude but effective, and certainly improvable - with different-looking desktops, for example; all suggestions welcomed.

Acer Aspire One workspaces editor

Create a virtual desktop or two

Screenshots

The AA1 lets you take a screenshot simply by pressing the Print Screen key. However, this won't work when you have a desktop menu open. To take the shot of such a menu requires a command-line operation.

AA1 Desktop Menu

Open the 'Run Program' dialogue box by pressing alt-F2. Type the following command:

gnome-screenshot --interactive

This opens a very flexible Take Screenshot dialogue box that gives you a choice of grabbing the whole desktop or just the current window, and also allows you to set a delay. A nice lengthy delay of 15 seconds gave me time after I pressed the Take Screenshot button to open up the Desktop Menu.

Gnome-screenshot is also available on the MSI Wind. Alas, it's an older version which lacks the 'Select Window' and 'Delay' functions. On the Asus Eee PC, the Screen Capture icon under Work > Accessories evokes the fully functional Ksnapshot screen grabber.

For another demonstration of the connection in Linux between the graphical front end and the underlying text files, let's take a closer look at the Easy Mode interface of the Asus Eee PC. The icons it uses, the way they're grouped, and the applications they evoke, are all defined in a single text file, /opt/xandros/share/AsusLauncher/simpleui.rc. AsusLauncher is the name of the application that creates Easy Mode.

Eee PC Easy Mode

AsusLauncher in action

Before we mess with this file, we'll take the precaution of making a back-up. Open a terminal, switch to the /opt/xandros/share/AsusLauncher directory and type:

sudo cp simpleui.rc simpleui.rc.bak

Now we're ready to edit the file (see Box: Not So Simple). Xandros offers several editors, but as this is an XML file it would be smart to use the supplied editor, called Kwrite, as this has a fancy feature that understands XML structures and uses different colours to display the different XML elements.

While still in the the /opt/xandros/share/AsusLauncher directory type:

sudo kwrite simpleui.rc

There's a very handy crib about all this on the Eee User Wiki, including a suggestion for adding an appropriate icon to the Easy Mode if you're going to do a lot of editing to the configuration file. So my first edit was to add the following stanza:

<parcel simplecat="Favorites" extraargs="/usr/bin/sudo /usr/bin/kwrite  /opt/xandros/share/AsusLauncher/simpleui.rc"

icon="documents_norm.png"

selected_icon="documents_hi.png">

<name lang="en">Menu Edit</name>

</parcel>

This makes the simpleui.rc file very easy to get at, but changes aren't reflected until you restart AsusLauncher. I knocked off a quick and dirty script to do this, which needs to be run with root privileges:

#!/bin/sh
killall AsusLauncher
/opt/xandros/bin/AsusLauncher &

You'll need to save this as a plain text file - I simply called it relauncher - and then make it executable with a command like this:

chmod a+x relauncher

chmod is the Unix utility for "changing the mode", and "a+x" means "make this file executable for everyone on the system".

The structure of simpleui.rc isn't too hard to get to grips with, even if you're not familiar with XML. The body of the file defines two different kinds of objects: simplecat, which is the broad grouping into application types like 'Work', 'Play', and so on; and parcel, which defines how to invoke a particular application, what icon should represent it on the desktop and what name to give the icon. The naming is done in over a dozen different languages, but for our present purposes we'll chauvinistically ignore everything except the line where lang="en".

Eee PC Relauncher script

Entering the Relauncher script in nano

Notice the placing of the angle brackets, and in particular the fact that each parcel definition is closed with a </parcel> flag.

One of the things I use a netbook for is movie script writing. No, you don't need a $500 software application to do this right. There's a wonderful free website called Zhura.com I use all the time, so I want to make it directly accessible from my Eee PC Easy Desktop.

'Copy and paste' was invented for exercises like this. So I pick an existing parcel definition that's close to what I need - iGoogle will do - copy the whole thing from <parcel... down to and including the </parcel> closer, and paste that in again at the end of the file just before the </simpleui> which signs off the whole Simple UI definition.

Not So Simple

The simpleui.rc file in /opt/Xandros/share/AsusLauncher is a "master configuration file". Normally, you'd leave it alone, instead editing a local copy of the file kept elsewhere - typically in a hidden directory under the home directory. A well-behaved application would know to look there first, only referring to the master configuration file if it couldn't find the user copy.

Unfortunately, Asus has been moving the location of this local copy around during recent software updates, so to keep things simple I'm sticking with the master file.

It's for the sake of simplicity, too, that I'm making these changes to the AsusLauncher by hand, rather than availing myself of the ready-made software solutions that Eee PC fans have cooked up. I'm certainly not knocking these useful contributions, but they tend to conceal rather than reveal the underlying principles. Once you understand these principles, by all means go ahead with offerings like these if you think they'll help.

Now I just have to implement the obvious changes to make Firefox point to Zhura.com. At the same time, it seemed worth adding another stanza to give my relauncher script a front end alongside the simpleui.rc edit function. And to tidy up the new additions by blocking them between a couple of XML comment lines - always a useful thing to do when changing system files. The resulting new stanzas look like this:

<!-- This chunk added by chb -->

<parcel simplecat="Favorites" extraargs="/usr/bin/sudo /usr/bin/kwrite /opt/xandros/share/AsusLauncher/simpleui.rc"

icon="documents_norm.png"

selected_icon="documents_hi.png" >

<name lang="en">Menu Edit</name>

</parcel>

<parcel simplecat="Favorites" extraargs="/usr/bin/sudo /home/user/relauncher"

icon="sync_norm.png" >

<!-- selected_icon="sync_norm.png"> -->

<name lang="en">Relauncher</name>

</parcel>

<parcel simplecat="Favorites" extraargs="/usr/bin/firefox http://www.zhura.com"

icon="zhura_norm.png"

selected_icon="zhura_hi.png" >

<name lang="en">Zhura</name>

</parcel>

<!-- end of chunk added by chb -->

And here's how that looks on the Eee PC screen.

Asus Eee PC desktop with added icons

I've re-used standard Easy Mode icons for Menu Edit and Relauncher - check out the cheeky cheat I used to move the Relauncher caption down to make room for the too-low icon - and added Zhura's own icon for the movie script Web site. But it's still work-in-progress - see my confessional in the box below.

Next time... we'll be looking at some more interface tweaks, discuss how to get help over the Web, and talk a bit about optimising video on these neat little machines.

Easy (?) Mode Icons

A manufacturer who has decided to lock down an interface isn't going to worry about how difficult it might be for a user to make modifications. That seems to be the way with Asus' Easy Mode - particularly when it comes to the icons.

Each single icon you see in Easy Mode actually needs a full set of five separate icons in order to work properly. So if you're going to add a new icon of your own, as I did with Zhura rather than appropriate an existing icon - which, by the way, doesn't always work either - you're going to have a merry time grafting away inside a graphics app like The Gimp before you get a result. Yes, there are some utilities out there specially designed to help with this problem, but I wanted to make sure I understood the fundamentals first.

The Easy Mode screenshot I've included here is actually a bit of a cheat: when I took it I still hadn't mastered the whole elaborate process of icon creation. I haven't Photoshopped anything, but if you were able to slide the mouse cursor over the Zhura icon you'd see it vanish, because the "highlight" aspect of the icon wasn't working properly at the time I took the screenshot.

I've fixed the problem now, so I don't feel too bad about publishing this. I'm not going to take up space here to tell you how to do it, but I will point you in the direction of these six webpages (!) that walk you through the whole rigmarole.

Other Episodes
1. 'We're the Fukawi'
2. Into the Cloud