How to turbo-charge your Linux desktop
Manufacturers and PC vendors would have you believe that there's only one way to speed up your machine: buy new kit. And then, in 18 months, buy new kit again. However, it's usually our software that's the real bottleneck. If you've been using Linux for a while, you'll already have discovered lighter alternatives to some of the platform's bloatfests - for example, using AbiWord and Gnumeric in the place of OpenOffice.org.
But what about the desktop itself? That's where you can get some real speed gains...
To start with, let's look at how the layers of the Linux GUI fit together. At the bottom is the X Window System (aka "X"), which interfaces with the hardware and provides low-level libraries to draw pixels and render shapes. Above that sits a widget toolkit (eg GTK+ or Qt), which interfaces with the X Window System to create re-usable widgets such as buttons, menus, drop-down boxes and more. Moving on, there's the window manager (aka "WM"), which uses the widget toolkit to produce title bars, resize handles and menus. Finally, at the very top of the stacks, is the desktop environment, which builds upon the window manager, adding panels, system trays, a file manager and so on.
That's the setup when you're running one of the big three desktops (Gnome, KDE, Xfce). However, if you choose a standalone window manager (WM), you can cut out the first and third layers in this stack. A window manager tends to incorporate all desktop functionality into a single executable that doesn't have additional programs such as file managers.
Also, most standalone window managers don't rely on a widget toolkit, instead rendering their own graphics and interfacing directly with the X Window System libraries. This helps to keep their RAM consumption to a minimum.
We're using Ubuntu 8.10 for this article, and we'll show you the commands you'll need to install three great WMs via the internet. Click Applications > Accessories > Terminal (in Gnome) to enter the commands. Then, after installing, log out and click Options > Select Session to choose the WM that runs when you log in. Let's go!
- Raw speed and low dependencies, free up screen space
- Install on Ubuntu sudo apt-get install fluxbox fluxconf
When you first start Fluxbox, you'll probably be scratching your head and pondering: is this it? Well, that's the idea: Fluxbox wants to give your screen real estate back to you. It may look a bit daunting at first, but give it some time and you'll learn to love it.
Straight away you'll notic e that there's no program menu to click like the K button in KDE or Applications in Gnome. However, you can bring up a similar type of menu by rightclicking anywhere on the desktop. This menu contains submenus for different program categories, and you can drag it around your desktop by clicking on the bar at the top. To get rid of the menu completely, just right-click on the menu's top bar.
Fluxbox automatically generates its Applications menu from the programs stored on your system.
Now let's turn our attention to the panel at the bottom of the screen, known as the Toolbar. It's very thin compared with the KDE panel and stretches across only two-thirds of the screen's width. On the left, you'll see the word 'one': this displays the current virtual desktop, so click the arrows to the right of the word to switch desktops.
Take me to task
After this, you'll see a task bar implementation. It's much the same as in Gnome, KDE and Xfce: programs are displayed along with their icons, and you can right-click on a program's entry to 'sticky' the window (that is, make it visible on all virtual desktops) and perform other operations.
To the right of the task bar area you'll see another pair of arrows, which enable you to cycle through currently running programs. Lastly, there's a clock. You can configure the behaviour of the toolbar by right-clicking in a nontask bar area. This brings up a menu which sets the toolbar's position, width (left-click to shrink it and right-click to grow it) and whether it should auto-hide.
To configure Fluxbox, right-click on the desktop and go to Configuration. Some of the options you'll see are:
Focus Model This changes whether you select windows by clicking them, or by hovering over them with the mouse.
Tabs Options By unchecking the Tabs In Titlebar option, each window will have a small tab above its title bar, making it easy to group windows together.
Opaque Window Moving By default, Fluxbox draws only the outline of a window when you move it. Ticking this option displays the contents when moving, but causes a small loss in performance.
Many window managers rely on config file editing - not Fluxbox, though, which is tweakable via its system of menus.
Under Applications > Tools you'll see Fluxconf and Fluxkeys, two extra configuration tools. The former has many overlaps with the Configuration submenu, but if there's something you want to change about the desktop, look here. The latter is handy for redefining the keybindings for closing windows, switching desktops and so on.
Now you're well prepared to give Fluxbox a serious go. It may take you a few hours to get comfortable with it, so we recommend giving it a couple of days to let the simplicity and speed boosts soak in. Oh, and if you get bored with the default theme, see Styles in the desktop menu for more.
- Eliminate the mouse and save screen space
- Install on Ubuntu sudo apt-get install ratpoison
The mouse is a pretty clumsy input device. Sure, it's served us fairly well over the years, but it's a common source of RSI problems, and you have to keep reaching over to grab it when you're typing.
For web browsing and graphics editing tasks, the mouse isn't a hindrance - chances are you keep one hand on the keyboard and the other on the mouse. But what about when you're editing documents or programming? Just to hit a menu entry (if you don't know the keyboard shortcut) you have to reach over and grasp that increasingly annoying rodent.
Ratpoison, as the name suggests, is designed to terminate the mouse's job in window management. You won't find title bars for dragging windows, resize handles or any of the other bits you'd expect in a traditional window manager here.
Ratpoison is the complete antithesis of Compiz Fusion - it only wants to display what really matters: your programs.
The goal is that every window management operation you'd expect to perform in a normal setting should be achievable using the keyboard alone, so that if you're working on documents and/or programming, your hands never have to leave the keyboard as you're working.
There's another side to Ratpoison too, called tiling. With our regular window managers, we spend a lot of time juggling windows, making them maximised to use the whole screen or trying to align them with minimal overlap so that we can see two programs at once. Even with snap-to-edge placement, it's a scrappy and time-consuming job.
Ratpoison ignores all of this with its tiling system. This automatically places and resizes windows on the screen with no overlap, making sure as much screen space as possible is used.
This is a bit hard to describe purely textually, so fire up the window manager and we'll guide you through. (Note: Ubuntu doesn't present a Ratpoison option in the Select Session menu at the login screen. To run it, choose Failsafe Terminal and enter ratpoison when the prompt appears.)
When Ratpoison starts, you'll see either a blank screen or a terminal window that's the full size of the screen. With no title bars, panels, menus nor anything else to tempt your clicking fingers, it looks completely impossible to use.
If you've just got a blank screen, hit Ctrl+T then C to open a new terminal window. This will occupy the whole screen. In that window, run your favourite text editor (for example, Gedit or Mousepad), and that program will then occupy the entirety of your screen's real estate.
OK, fair enough - but open a few more apps and each of those takes up the screen as well, so how do we navigate between them? First, hit Ctrl+T then W to show a list of windows in the top-right of the screen. You'll see that each window has a number, starting from zero, so to switch to one of them, hit Ctrl+T followed by the number of the window you want. It'll pop into view, using up the whole screen again.
Flex your fingers
Now let's look at tiling. We can split up the screen horizontally or vertically based on the last two windows selected. Using Ctrl+T and the number keys, select one window and then another. Then hit Ctrl+T then S to split the screen horizontally, or Ctrl+T then Shift+S to split it vertically.
You can then switch between windows in the split using Ctrl+T followed by a number as above, and select two windows to do yet another split. Take the screenshot, above, for instance. To get that setup, we did this:
- Logged in to Failsafe Terminal and ran ratpoison, which displayed the terminal full-screen.
- Hit Ctrl+T then C to open another terminal window.
- Ran 'gedit &' in the new terminal window (to keep the shell process going).
- Hit Ctrl+T then 1 to switch back to the second window.
- Hit Ctrl+T then Shift+S to split the screen horizontally.
- Used Ctrl+T then the number to select the first terminal and then the second.
- Hit Ctrl+T then S to split those terminals vertically.
That looks like a lot of work, but after some practice you'll be quickly knocking out key combos to get your desktop just the way you want it.
Ratpoison won't give you a huge productivity boost if you spend most of your time in graphics p rograms, but if you're a coder or writer, you absolutely have to try it out.
Quick key combos
Ratpoison works best when you're able to remember a few of the most important keyboard shortcuts. Here are the ones we'd recommend you commit to memory:
- Ctrl+T then C - Start a new terminal
- Ctrl+T then W - Show list of windows
- Ctrl+T then number - Switch to a window
- Ctrl+T then S/Shift+S - Split last two selected windows vertically/horizontally
- Ctrl+T then Shift+Q - Show current window full-screen
- Ctrl+T then N/P - Switch to next/previous window
- Ctrl+T then Ctrl+T - Toggle windows (like Alt+Tab on other WMs/desktops)
- Ctrl+T then K - Close current window
- Eye candy and power-user functionality
- Install on Ubuntu sudo apt-get install e16 e16keyedit e16menuedit2 eterm
Any mention of Enlightenment (colloquially 'E') brings two things to mind: bling and a ridiculously protracted development process. Despite having been in the works since 1996, this WM has only managed to reach a 0.16 version number (commonly referred to as E16).
But let's be clear: the 0.16 release could realistically be called 1.0. It's stable, loaded with features and many long-time Linux/Unixers run it as their full-time WM. Indeed, a lot of hardcore E users find it hard to get excited about Compiz Fusion - E had transparent windows and drop shadows back when a 233MHz CPU was seen as pretty decent kit.
Drop shadows and translucent menus can be enabled in E, and these work on hardware that Compiz doesn't support.
At the login screen, after choosing Select Session, you may be given three options for starting E: one with Gnome, one with KDE, and one that's just 'E16'. E is flexible enough to replace Metacity in Gnome or KWin in KDE, but just choose the 'E16' option for now.
Pretty as a picture
Enlightenment's visual pizzazz is apparent right from the start. After a loading progress bar, you'll see the screen unfurl like a scroll. The desktop looks quite bare at first glance, although it's bustling compared with Ratpoison.
As in Fluxbox, you start programs by clicking on the desktop. However, you need to middle-click to bring up the main menu. In Ubuntu this includes a submenu called Debian Menus, which contains your installed applications. If you right-click instead, you'll see the Enlightenment Settings menu, and leaving the mouse pointer static summons a help bubble.
So, launch a program by middle-clicking and going into the App menu. When you have a window, look at the pair of boxes at the bottom-left of the desktop. These are the virtual desktop pagers: by default you have two desktops, each containing two workspaces - and, best of all, the window icons are thumbnail representations of the full window.
If you minimise a window, you'll see that it goes into the bottom-right box on the desktop: the icon box. This gives you thumbnail version of your programs; right-click and choose Settings to enlarge the icons, or you can set up the list vertically if you prefer - E is highly customisable.
Sifting through settings
In fact, the many Settings dialogs can be overwhelming, so let's explore a few. Right-click on the desktop and choose Composite Settings to enable some effects. Check the Enable Composite box, Enable Fading box and Shadows Blurred radio button then hit Apply to give windows drop shadows. Next, go to Move & Resize Settings and choose Translucent in the Move Methods list. Moving windows are now semi-transparent.
You can also make menus roll out by going to Menu Settings and selecting the Animated option. And if the Sloppy Focus setting annoys you (focusing the window beneath the mouse pointer) choose Focus Settings and 'Focus follows mouse clicks'.
E's extreme customisabiity may even have the edge over the venerable FVWM and AfterStep window managers.
Now that you have the basics sorted out, have fun exploring. Reverting to the stock E setup is easy, just log into a different WM, remove the .e16 directory from your home directory and then restart E.
First published in Linux Format magazine