LJ Archive

Catching up with KDE

Robert Flemming

Issue #87, July 2001

Currently supporting 34 languages, KDE is poised to answer many of the questions surrounding Linux' viability on the desktop.

  • Manufacturer: The KDE Project

  • E-mail: kde-user-request@lists.netcentral.net (users' mailing list subscription)

  • URL: http://www.kde.org/

  • Price: Free Download

  • Reviewer: Robert Flemming

KDE developers may be one step closer to “konquering” the desktop with the most recent 2.1.1 release of the K Desktop Environment (http://www.kde.org/). The development cycle has intensified since the 1.0 series, bringing new features and stability improvements to users at an ever-increasing rate. In fact, as of this writing, the first alpha version of KDE 2.2 has been released for testing. End users and developers alike will benefit from the newest offering. Currently supporting 34 languages, KDE is poised to answer many of the questions surrounding Linux' viability on the desktop.

In addition to stability enhancements, the latest release includes a large number of cosmetic improvements that create a more unified and polished interface. Kicker, the 2.0 replacement of KPanel, received a number of new features as well as the return of an old one. For all of those WindowMaker users who just can't bare to part with their beloved dock applets, yearn no more. Kicker is now able to swallow your favorite applets into a new dock application bar (see Figure 1). Support has also been added for child panels, and the external taskbar noticeably absent from version 2.0 has returned, along with theme manager. Despite the re-inclusion of the theme manager, a lack of integration between the various theme-able elements of the desktop is still present. Widget styles, icons, colors, backgrounds and KWin decorations each need to be managed from their own individual Control Center modules. The work of the KDE artists team is not be overlooked, however. A number of icons were added and improved, and the new splash screens serve to unify desktop applications (see Figure 2).

Figure 1. The New Dock Application Bar

Figure 2. Desktop Splash Screens

Perhaps one of the most significant advances in the latest version is anti-aliased font support. In order to enable anti-aliased fonts, KDE must be built upon QT 2.3, in combination with XFree86's Xft extension. Linux has been somewhat plagued by issues regarding true-type fonts and anti-aliasing; while these advances greatly improve that, setting up anti-aliased fonts can be a bit of a challenge. Instructions can be found at trolls.troll.no/~lars/fonts/qt-fonts-HOWTO.html. If you installed KDE via packages, it may not have been built using the necessary libraries. If this is the case, you should check for newer package versions prior to trying to configure anti-aliased fonts. Figure 3 shows an enlarged comparison view of a web page as viewed from within Konquerer with anti-aliased font support and Netscape without anti-aliased font support.

Figure 3. Fonts with and without Anti-Alias Font Support

Without a doubt, the gem of the whole project is Konquerer, KDE's next-generation web browser, file manager and document viewer. Konquerer's modular architecture allows for easy extendibility to support current and emerging internet technologies, such as HTML 4.0, Java, JavaScript, XML, Cascading Style Sheets (CSS-1 and CSS-2) and SSL. In addition to built-in components, Konquerer is able to utilize existing Netscape plugins to provide support for Flash, RealAudio/Video and other multimedia programs. Taking a page from Eazel's Nautilus, Konquerer added support for text preview, a feature that creates a thumbnail of the first few lines of a text document within the icon. When used in combination with the experimental alpha blending support you are able to get a semitransparent representation of the MIME-type icon under the text. In addition to text and image preview, Konquerer is also capable of generating thumbnails of HTML documents (see Figure 4). HTML files are read and thumbnailed in the background after loading the directory view, allowing for a smooth browsing experience.

Figure 4. HTML-file Thumbnails

The mechanisms by which Konquerer becomes more of an application framework than a file manager or web browser are called IO Slaves. IO Slaves are small bits of code based on the KIO library that know how to send and receive data using a specific protocol. From its inception KDE has focused on network transparency, and the KIO architecture has allowed for the creation of a variety of special purpose plugins that enhance the capabilities of Konquerer. Seamless support exists for browsing the Linux filesystem, NFS shares, MS Windows shares, web pages, FTP sites and LDAP directories, to name only a few. With a minimal amount of code, developers can make available new protocols and conduits to all KDE applications. Some of the other IO Slaves developed or being developed include digital camera support via Gphoto2, which allows for drag-and-drop access to images stored on your digital camera, and enhancements to the existing audiocd plugin that allow for drag-and-drop CD ripping and MP3/Ogg Vorbis encoding. Many of Konquerer's IO Slaves exist without much fanfair, yet are quite useful. For example, entering man:/df" or "#df into Konquerer will produce the man page for df (or other command of your choosing). For those preferring the GNU Info documentation browser, give info:/df a try. For quick access to your floppy drive, enter floppy:/ into the location bar. Another little-known addition to Konquerer is the new shell command function. For example, while browsing a directory via Konquerer, pressing Ctrl-e and entering a shell command like du will present the user with a dialog box displaying the output of the command in the currently viewed directory. A list of currently installed IO Slaves is available via the information section of the control center.

One particular IO Slave recently introduced pertains to LAN browsing. Those coming from a Windows background will most likely compare this to the Network Neighborhood. At the heart of this new feature is LISa, or the LAN information server. Unlike the Windows' Network Neighborhood, LISa only relies upon the TCP/IP stack and no other protocols such as SMB or NetBIOS. In short, once you configure LISa with information about the network to which you are attached, it will probe devices found on the network for commonly available services, such as FTP, SMB, NFS and HTTP (see Figure 5). By entering lan:/ into Konquerer, you will be presented with a list of all discovered servers and their associated services. While it may sound like LISa would create a lot of unnecessary network traffic, that is not the case. In fact, the more clients you have on your network running LISa, the more efficient it should become. LISa itself is a dæmon that runs on the client. Upon startup, that dæmon sends out a broadcast in an attempt to discover already existing LISa servers on the network. In the event that one is found, the network servers list is transferred to the new client without unnecessary network probing. At any given point in time, there should be only a single LISa node on the network doing the actual probing. LISa needs to be run as root and can be configured via the Network/LAN browsing control center module. LISa is a component of the kdenetwork package.

Figure 5. LISa Searching for Services

For the developer, KDE provides a rich set of tools for application development. Among these technologies are the desktop communication protocol (DCOP), a component object model (KParts), an XML-based GUI class and the previously mentioned I/O libraries (KIO). Tying all of these various [development] tools back into the desktop is the coordinated release of KDE's advanced IDE/RAD, KDevelop 1.4. Multimedia components are handled via an architecture built upon the network-transparent analog real-time synthesizer (aRts).

DCOP is the much talked about client-to-client communication protocol that replaced CORBA early on in the 2.0 development cycle. DCOP is built upon the standard X11 ICE library and presents a faster and more lightweight interface than what was previously being developed with CORBA. KParts, KDE's component object model, is what allows applications to share components and embed themselves within one another. The most extensive use of this technology can be seen in KOffice and Konquerer. Utilizing XML as a method of creating GUI elements dynamically, developers are able to provide a more customizable and standardized desktop interface. To aid desktop constancy, KDE has worked at establishing coding standards and a GUI styleguide. Since GUI elements are generated dynamically, updates to the styleguide are reflected immediately across GUI elements without recompilation or modification. aRts utilizes a CORBA-like network design enabling remote applications to output sound to the local workstation, providing a multimedia compliment to the network-transparent features provided by XFree86 and KIO. For more information on KDevelop or KDE application development, see the KDevelop 1.4 review on page xx. A wealth of developer-related information, including tutorials, FAQs and standards guides, can be found at http://developer.kde.org/.

It's astonishing to think of the strides Linux has made as a desktop operating system over the past few years, and the latest offering from the KDE camp is indeed a testament to this progress. With the emergence of new companies, as well as older, more established ones, focusing on improving and providing applications for the Linux desktop, greater acceptance is likely not far behind. The Kompany (http://www.thekompany.com/) has been turning out an amazing number of much-needed Linux applications. IBM has been working with Trolltech on integration of their ViaVoice software into QT to provide speech recognition to Linux users. KDE development as a whole is moving at a rate faster than ever before. Each release brings Linux one step closer to coming out of the data-center and onto the desktop.

The Good/The Bad

Robert Flemming is a network administrator at VA Linux Systems, and you'll have to pry Konquerer out of his cold, dead hands. Questions and comments may be sent to flemming@valinux.com.

LJ Archive