User: Password:
Subscribe / Log in / New account

Leading items

A look at Xfce 4.2

December 1, 2004

This article was contributed by Joe 'Zonker' Brockmeier.

As a rule, the Linux desktop discussion is dominated by the two heavyweight desktop environments -- KDE and GNOME. The term "heavyweight" applies to the respective "market share" of those desktops as well as the resources required to run either desktop. Linux users who wish to utilize a slightly slimmer desktop environment, without compromising features, may find the Xfce desktop environment an attractive alternative. With the release of the Xfce 4.2 release candidate, we decided to take a look at Xfce and provide a rundown of some of its more interesting features.

As the Xfce website states, Xfce is "a lightweight desktop environment for unix-like operating systems." Xfce started out as a Common Desktop Environment (CDE) clone, but has evolved into a unique desktop environment that's much more interesting (at least to this writer) than CDE.

The site os-cillation has GUI installers for Xfce 4.2RC1. To the best of this writer's knowledge, Xfce is the first desktop with its own GUI installer. There are four installers available; The base Xfce installer, the Gtk+ engine for Xfce installer, the Xfce Goodies installer and an installer for the Terminal term emulator from os-cillation. We chose to go the "kitchen sink" route, and installed everything available. However, only the base package should be required to use Xfce.

Installing Xfce with the GUI installers is a breeze, at least as long as the target system has all of the requisite software that Xfce requires to build. We built Xfce on two systems, a SUSE 9.2 system and a Ubuntu Linux system. The SUSE build went off without a hitch after installing the packages mentioned on the installer page.

The Ubuntu build failed a few times due to missing dependencies. This was easily fixed, though it was a minor annoyance having to apt-get the required libraries and re-start the install only to have it fail a few minutes later at a different point. At start time, the GUI installer identifies a few major components that are required to proceed, but doesn't display a comprehensive list of dependencies. [Xfce]

After the installation, it was time to exit the session in progress and log into Xfce. The first thing one will notice about Xfce is that it's much faster to load than KDE or GNOME. For users with systems with processors faster than 2 GHz and an abundance of RAM, this won't be a huge incentive to use Xfce. However, Xfce is a bit snappier than GNOME or KDE, and a great choice for older systems with less horsepower.

Many Linux users have probably run across GNOME and KDE applications that are written in such a way that they require services from their native desktop environments to function. For users that depend on applications that require GNOME or KDE services, Xfce can be configured to run GNOME or KDE services when it starts. This will slow down Xfce start time, but it's a handy feature for anyone who needs specific applications that won't otherwise cooperate with Xfce. Xfce's session settings, by default, do not allow Xfce to manage remote X applications.

The Xfce panel is highly configurable. By default, it includes launchers for the Xfce help system, Xfce configuration settings, Mozilla browser, Mozilla mail, XMMS, the Xfce "fast file manager" (Xffm), a graphical pager, terminal launcher and buttons to log out or lock your X session. Users can add launchers, remove launchers, change the orientation of the panel from horizontal to vertical and so on. The pager also allows the user to move windows from one desktop to another simply by dragging the window's outline in the pager to a different desktop. The Xfce Goodies package includes several useful plugins for the panel, including CPU and network monitors, a "show desktop" plugin and several others.

Xfce's file manager, Xffm is interesting, with quite a few handy features. Xffm includes a SMB network browser, a "Book" tree to allow users to bookmark frequently-visited directories, an fstab browser and a fairly useful find utility (Xfglob4). The Xffm components can also be invoked by themselves, so a user can call just the SMB browser by running xfsamba4 or browse only the bookmarked directories files with xfbook4. Xffm also makes it easy to rename files, create symlinks and even "scramble" files. The Xffm interface seems a bit clunky, but this writer doesn't often use file managers anyway.

Xfce is modular, meaning that the user can choose to drop components from the desktop if they are unwanted. Don't want to run the Xfce panel? No problem. Want to skip the GTK Theme Engine? That's an option as well. Users may also run various Xfce components under other window managers / desktop environments, if they prefer.

Does the world need yet another terminal emulator? This writer prefers to just use the venerable xterm, but others want a little more from their terminal emulator. The version of Terminal available from os-cillation for Xfce is only at version 0.1.10, but it seems stable enough for everyday use. Terminal has a few features not available in xterm, such as tabs for multiple terminal instances and transparency or a user-defined background image. Xfce also includes an xterm-like terminal called xfterm4, which is the default Xfce terminal.

Some of Xfce's features are not immediately visible. For example, Xfce supports Window Manager hints, XDND (drag and drop protocol) and several others. Xfce can also be configured in "kiosk mode" where Xfce can be locked down to prevent users making changes to the configuration of Xfce.

Another feature that this writer is particularly fond of is the ability to switch desktops by using the mouse scrollwheel. Simply hover the mouse over an "empty" space on the desktop and scroll. This feature is available in KDE as well, but it seems to have appeared in Xfce first.

In short, Xfce 4.2 seems to be ready for prime time. We used the release candidate for several days with no problems to speak of. It's an excellent desktop environment for users who want a clean, fast and attractive desktop.

Comments (30 posted)

The Grumpy Editor's Guide to PDF Viewers

This article is part of the LWN Grumpy Editor series.
Your editor spends a lot of time dealing with PDF files. The proliferation of "profit through litigation" business models has not helped in this regard, but, even without the legal profession's contributions, much text of interest comes in the PDF format. As a result, a great deal of your editor's time is spent working in PDF viewers. PDF viewing hassles can rival the holiday season in their ability to make an editor grumpy. There is little to be done about the latter, so it seems like a good time to review the state of the art in free PDF viewers. Maybe, in that realm, something better can be found.

In theory, PDF viewers require little in the way of features. They should present the contents of a file in a quick and readable manner, allow navigation through the file, support printing of (parts of) a PDF file, etc. So it should not be that hard to get things right. One would think. In practice, your editor has found that the quality of the available PDF viewers varies significantly, both in terms of the interface they provide and how well they simply work.

There are two base platforms upon which PDF viewers are built. Some are front ends to the ghostscript utility. Ghostscript is a large, complex, and not entirely bug-free utility (it is also a crucial part of many Linux systems); its strengths and shortcomings will be reflected in any PDF viewers built on it. Most other viewers are built on xpdf. We'll start with the ghostscript-based viewers.

GNOME Ghostview (ggv)

The GNOME PDF viewer of long standing is ggv. Interestingly, this utility seems to lack a web site, though there is an online manual available which is only slightly out of date. The most [ggv] recent ggv release was in September of 2004, as part of the GNOME 2.8 package. It is a ghostscript-based viewer.

The ggv screen includes a left-hand side bar which allows instant access to any page in the document. Pages can also be marked, either directly with a mouse click or with buttons which mark all pages, or just the even or odd ones.

There is an option which can be used to print only the pages which have been marked. The "print" button in the menu bar, however, just dumps the entire file into the print subsystem without providing any opportunity for the user to redirect the job or cancel the operation entirely. Your editor, who prefers to fire up his monster duplexing laser printer for the rare large print job, gets grumpy indeed at utilities which throw output at the little inkjet printer without even asking. One should not be able to dump hundreds of pages onto a printer with a single click.

ggv does not take a whole lot of clues from the document regarding its orientation; a file which looks to be in portrait mode, but which has pages that are wider than they are tall, can be presented (and printed!) in the wrong orientation. The window size is always whatever the user used the last time around, and does not react to the orientation of the document. It is possible to ask ggv to zoom the document to fit within the window it has (a nice feature), but doing so disables the manual zoom operations (which is not). The scrollwheel may be used to move within a single page, but it will not scroll between pages, making it mostly useless.

Every now and then your editor encounters a document which ggv is unable to render. With such documents, the usual result is a blank window, which is not particularly edifying.

The visual quality of ggv's output is good; it runs ghostscript in a high-quality, antialiased mode. There is a reasonable set of configuration options for a number of aspects of ggv's operation, including how it uses ghostscript. If it were not for occasional reliability problems and a number of user interface issues, it would be a contender for this editor's favor.


The KDE contribution in the PDF viewer arena is kghostview, shipped as part of the kdegraphics package. Like ggv, kghostview uses [kghostview] ghostscript as a back end; as a result, it tends to fail on the same PDF files that confuse ggv. In many ways, kghostview comes across like ggv with a KDE look; it provides many of the same features. There are some differences, however.

Like ggv, kghostview provides a navigation bar on the left side; it also allows for the marking of articles. The kghostview version is different, however, in that it includes thumbnail images of each page. These thumbnails take space, making it more likely that the user will have to scroll the navigation bar. They are, however, very nice to have when one is looking for a specific page - the beginning of a section, say, or the end of an interminable table of contents. The thumbnails, alone, make kghostview a nicer tool to use than ggv.

kghostview has a friendlier interface for printing, allowing just about any behavior to be configured. Among other things, kghostview can do 2-up or 4-up printing, which can be useful for many documents. Printing can be restricted to marked pages. And, crucially, nothing is actually sent to the printer until the user has confirmed the operation.

Scrolling through the document with the scrollwheel is supported. If the user scrolls several pages, the application does the right thing - it does not take the time to render the pages in the middle. A single keystroke will fit the rendered document into the current window without disabling the regular zoom operations. If you are currently only viewing part of a page, you can drag a box around in a special thumbnail image to move to any part of that page.

In general, the interface provided by kghostview is as nice as any PDF viewer your editor has been able to find. It is clearly a tool which has received some serious thought - and use - by its developers.


xpdf differs from the viewers we have seen thus far in that it is not based on ghostscript; instead, it contains its own PDF interpreter and rendering engine. A couple of the immediate consequences of that difference are (1) xpdf is rather faster than the [xpdf] ghostscript-based viewers, and (2) xpdf can often display documents which are not viewable with the other tools. In other words, xpdf is an important tool for those of us who end up working with PDF files often.

It is worth noting that, unlike the ghostscript-based viewers, xpdf (and others built on it) cannot handle PostScript files. That is a fundamental limitation, but, perhaps, also the source of xpdf's speed and robustness.

Compared to the GNOME and KDE viewers, xpdf is a minimalist tool. There are no menu bars, no fancy configuration widgets, and no navigation side bars. A small set of buttons at the bottom of the screen allows for movement through the file, including the ability to go to an absolute page number. A small menu gives a set of zoom options, including a couple of "fit to page" modes. Your editor notes that, when "fit to page" is enabled, the application responds poorly when its window is resized; it fails to skip intervening X resize events, and thus has to render the page numerous times. If you drag the corner of an xpdf window around for a few seconds, you can end up waiting for some time before it catches up.

The apparent simplicity of the xpdf interface hides a couple of vastly useful features. One of those is a "find in text" button, cleverly disguised as a pair of binoculars. If you have ever tried to find a particular string in a PDF file, this capability is priceless. Equally useful, if you are one of those strange people who writes articles about things found in PDF files, is the ability to cut and paste text from those files. Both of these functions silently fail if the file's text is in an image format - as is the case with many scanned legal documents. But, when they work, they are highly useful.

According to its web site, xpdf has the ability to work with encrypted PDF documents. Your editor, not having any such documents sitting around, was not able to try out that capability.

Navigation through PDF files is quick and straightforward, though it would be nice to have a side bar for going directly to pages. xpdf maintains a navigation history which can be useful for bouncing back and forth between specific pages. The scrollwheel works as one would expect. Printing support is minimal, but it has the features one really needs: the ability to print a (contiguous) subset of the file, and to specify which printer is to be used.


gpdf is a GNOME-based PDF viewer built upon xpdf. As such, it shares the robustness and speed of xpdf. The gpdf developers, however, have added some new [gpdf] features of their own - and left others out.

gpdf provides a rather confusing toolbar at the top of the page. It is far from clear, for example, how the buttons marked "next" and "previous" differ from those marked "forward" and "back". There are two downward-pointing arrows; experimentation shows that one brings up a file history menu, while the other contains anything which doesn't fit in the toolbar at the current window width. There is a side bar in gpdf. It looks as if, someday, it is meant to contain page thumbnails, but, with gpdf 2.8.0, it renders pages as blank white rectangles with drop shadows. For whatever reason, it uses a two-column format, requiring the user to make the side bar very wide, or to do a bunch of horizontal scrolling.

gpdf uses the GNOME printing widget, so it provides a higher degree of control over printing than xpdf. It can put multiple PDF file pages onto each printed page. Better printing support is a definite improvement over xpdf.

On the other hand, gpdf lacks xpdf's scrollwheel support. It does not provide the "find in text" and "cut and paste" capabilities, which, it seems, are unique to xpdf. It is not clear why those features are missing; one might guess that gpdf forked the xpdf code base before they were added.


The first impression one gets of kpdf is that it looks much like kghostview. It has essentially the same icon layout, and a very similar [kpdf] side bar with page thumbnails. kpdf, however, is an entirely different application, built on xpdf. Like gpdf, it seems to have left out many of the unique xpdf features.

kpdf is a relatively immature work. Its rendering is poor, by far the worst of any of the PDF viewers reviewed. Somehow, kpdf does not appear to understand font information well, leading to strange spacing between letters on both Fedora and Debian platforms. kpdf is speedy, however, and many of the important features are there.

It does appear that further work is being done with kpdf, at least if one goes by some screenshots linked to by KDE.News. The images suggest that the current development version supports multiple-page displays, string searches, and more. A future kpdf could well be be best PDF viewer of them all; the current version is too unfinished to be usable, however.

Concluding notes

This review has concerned itself with free PDF viewers. No review of this application space can really get away with ignoring Adobe Reader (acroread), however. This tool is certainly not free software, but there is a free-beer version available for x86 Linux systems. It is an old version; Adobe Reader 6 is not available for Linux. Even the older version, however, has its value. Occasionally a PDF file will come along that is so strange that no free viewer can cope with it. Acroread can be counted upon to work in such situations. It is, thus, one of exactly two proprietary programs on your editor's system.

Happily, free PDF viewers have come far enough along that having to fall back to acroread is a rare event.

The free PDF viewer state of the art has advanced in recent years, which is a good thing. This is an area where, for quite some time, the free alternatives lagged far behind. Now we have a wealth of viable programs to choose from. Too many, perhaps. Your editor might like it better if the development community would come together on, say, two viewers, and cooperate on making those two the best they can be. The history of these projects suggests that will not happen, however. There are two rendering engines (ghostscript and xpdf), multiplied by two desktop systems. Crossing those lines can be hard. We are likely to have a large set of actively-developed PDF viewers for some time yet.

Comments (70 posted)

Debian and the hot babe problem

This Intent To Package posting was guaranteed to raise a bit of a fuss. The program involved is hot-babe, a graphical CPU utilization monitor. It works by displaying a typical Bruno Bellamy drawing of a minimally-clad, maximally-endowed woman. As the CPU gets busier ("hotter"), the woman undresses to compensate. Your editor, whose journalistic ethics required that he investigate this utility, found it to be an amusing addition to the desktop - for about five minutes, or until the children walk in, whichever comes first.

The Debian developers raised the obvious, predictable objection to the inclusion of this utility: the associated images were covered by a non-free license.

Once that little issue was cleared up (the artist made the drawings available under the Artistic License), the way was cleared for the other predictable argument: should a utility seen by some as pornographic be part of the Debian distribution? On the face of it, there would appear to be little basis for keeping it out. The Debian standards for software require that it be free; there is nothing in the software guidelines or social contract about not being offensive to anybody.

There is no doubt that inclusion of hot-babe into Debian is asking for certain kinds of trouble. The imagery involved is no worse than that found on many European billboards, but it will go against many American "community standards" and is completely out of line by the standards of many other parts of the world. Including hot-babe in Debian will render the distribution unsafe for work environments in many places, will complicate the work of those trying to deploy it in libraries and schools, and will simply offend a certain number of the distribution's users.

Then again, the same could be said of fortunes-off, the King James Bible, or the Anarchist FAQ, all of which are already part of Debian. Some people are probably offended by fsck, Doom, or the emacs Zippy quotes file. Your editor, offended by illegible text, immediately and violently disables "color ls" on every system he installs. Creating an offense-free distribution can be a hard task even for companies which adopt that goal explicitly; it's pretty much impossible for a distribution which values freedom, and which has dedicated itself to becoming the biggest collection of free software around.

Unless the Debian Project changes its social contract to allow the exclusion of packages on moral grounds, tools like hot-babe will find a home there. Debian is, increasingly, the master repository for a family of distributions; it should probably be as inclusive as possible. Most of the distributions built on top of Debian, such as Linspire, Xandros, Skolelinux, LinEx, or Ubuntu, apply some discretion in the packages they select. They are unlikely to include tools like hot-babe, and, thus, may be considered safer versions to use in situations where somebody may get offended.

Well, OK, perhaps we can't be too sure with Ubuntu.

Linux developers and distributors clearly must be sensitive to the needs and feelings of their users. The needs that come first and foremost for Debian users are freedom and quality. Applying any other sort of filter to Debian would change that distribution in a fundamental way. The nice thing about Linux is that distributions can be made for a wide variety of audiences. A safe-for-schools version of Debian can be distributed without imposing additional standards on Debian itself. Linux can be configured to meet the tastes, morals, and standards of almost any group of users, without inflicting those standards on others. That is freedom at its best, and how it should be.

Except that your editor really would like to see color ls abolished everywhere.

Comments (55 posted)

Page editor: Jonathan Corbet
Next page: Security>>

Copyright © 2004, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds