«3 CHAPTER IN THIS CHAPTER. The GNOME Desktop Working with GNOME Environment. AIGLX—Eye Candy for the Masses Imagine a world of black screens with ...»
CHAPTER IN THIS CHAPTER
. The GNOME Desktop
Working with GNOME Environment
. AIGLX—Eye Candy for the
Imagine a world of black screens with white text, or for. Basic X Concepts
those of you who remember, green screens with green text.. Using X
That used to be the primary interface for users accessing
. Starting X
computers. Computing has moved on significantly since. KDE—The Other Environment then and has adopted the graphical user interface, or GUI, as standard on most desktop and workstation platforms.. XFce Fedora is no different and its primary window manager is. Reference called GNOME (the Gnu Network Object Model Environment). Based upon the ethos of simplicity by design, GNOME offers a rich and full interface that you can use easily to be productive. The principle design objectives include an intuitive system, meaning that it should be easy to pick up and use, as well as good localization/internation- alization support and accessibility.
GNOME is founded upon the X Window System, the graphical networking interface found on many Linux distri- butions, which provides the basis for a wide range of graphical tools and window managers. More commonly known as just X, it can also be referred to as X11R7 and X11 (such as that found on Mac OS X). Coming from the world-renowned Massachusetts Institute of Technology, X has gone through several versions, each of which has extended and enhanced the technology. The open source implementation is managed by the X.Org foundation, the board of which is made up of several key figures from the open source world.
The best way to think about how X works is to see it as a client/server system. The X server provides services to programs that have been developed to make the most of the graphical and networking capabilities that are available under the server and in the supported libraries. X.Org provides versions for many different platforms, including Linux and Mac OS X. Originally implemented as XFree86, 54 CHAPTER 3 Working with GNOME X.Org was forked when a disagreement broke out over certain restrictions that were going to be included in the XFree86 license. Taking a snapshot of code that was licensed under the previous version of the license, X.Org drove forward with its own implementation based on the code. Almost in unison, most Linux distributions turned their back on XFree86 and switched their development and efforts to X.Org.
In this chapter you will learn how to work with GNOME and also the version of X that is included with Fedora. We look at the fundamentals of X, as well as how to get X to work with any upgrades that might affect it, such as a new graphics card or that new flat panel display you just bought. We also take a look at some of the other Window Managers that are included with Fedora, including KDE and Xfce.
The Red Hat and Fedora Desktop If you have used prior versions of Fedora and indeed Red Hat Linux, you will be more than aware of Bluecurve and perhaps also Clearlooks. Fedora has now settled on a consistent style throughout the whole distribution and has finally done away with the slightly older-looking Bluecurve icon set in favor of the Echo theme. Based on the Clearlooks theme, Fedora now looks better than ever, giving users a beautiful desktop to work with. KDE, another window manager you’ll learn about later, has also received some polish, and the two window managers have a consistent look and feel.
The GNOME Desktop Environment A desktop environment for X provides one or more window managers and a suite of clients that conform to a standard graphical interface, based on a common set of software libraries. When they are used to develop associated clients, these libraries provide graphical consistency for the client windows, menus, buttons, and other onscreen components, along with some common keyboard controls and client dialogs. The following sections discuss the primary desktop environment that is included with Fedora: GNOME.
The GNOME project, which was started in 1997, is the brainchild of programmer whiz Miguel de Icaza. GNOME provides a complete set of software libraries and clients.
GNOME depends on a window manager that is GNOME-aware. This means that to provide a graphical desktop with GNOME elements, the window manager must be written to recognize and use GNOME. Some compliant window managers that are GNOME-aware include Havoc Pennington’s metacity (the default GNOME window manager), Enlightenment, Compiz, Window Maker, IceWM, and beryl.
Fedora uses GNOME’s user-friendly suite of clients to provide a consistent and userfriendly desktop. GNOME is a staple feature of Red Hat Enterprise Linux distribution and Fedora because Red Hat actively supports its development. GNOME clients are found under the /usr/bin directory, and GNOME configuration files are stored under the /etc/GNOME and /usr/share/GNOME directories, with user settings stored in the home directory under.GNOME and GNOME2.
The GNOME Desktop Environment 55 A representative GNOME desktop, running the removable media preferences tool used for setting actions to events, is shown in Figure 3.1.
You can configure your desktop in various ways and by using different menu items under the Preferences menu, which can be found as part of the main Desktop menu. The myriad of configuration options allows you to tailor every aspect of your system’s look and feel. In Figure 3.2 you can see a selection of the preferences options available to you.
FIGURE 3.2 You can customize your Fedora desktop by using the Preference settings that are available in the System, Preferences menu.
56 CHAPTER 3 Working with GNOME AIGLX—Eye Candy for the Masses Recent development work carried out on X has allowed the introduction of a number of hardware-accelerated effects within Fedora and its window managers. No longer do you have to drool at your Mac OS X–using colleagues when they work; now Fedora has a whole load of “wow” effects designed to add that professional touch to Linux.
Up until recently, enabling these desktop effects has required a lot of work, including downloading specific packages and using the console to configure some of them.
However, with Fedora 7 this has been largely done away with and there is very little that you need to do to get access to the effects.
If you want the flashy effects then Fedora relies upon the alternate Compiz window manager, which to most end users does not appear any differently than Metacity, the standard window manager in use by Fedora. You need to make sure you have the latest version of drivers for your graphics card/chipset; we cover this in Chapter 9, “Games.” NOTE You may wonder why installation of graphics drivers is placed alongside information on games. For the most part 3D acceleration is not a necessity if you are using Fedora for productivity only. However, if you are intending to work off a bit of aggression by blowing away some opponents in Unreal Tournament, then you are going to need 3D acceleration enabled, and you need the specific graphics drivers for that.
After you have verified your graphic driver situation, you will find a menu option under System, Preferences, Look and Feel, called Desktop Effects (see Figure 3.3). Open it and select the option to Enable Desktop Effects. After a couple of seconds you may see your window decorations (title bar, minimize and maximize buttons) disappear and then reappear. It may seem that nothing has happened, but check the box to activate Wobbly Windows and then grab hold of the window title bar and move it around. If everything has gone according to plan then it should wobble! Click Keep Settings to save the settings, and welcome to a world of fancy effects.
FIGURE 3.3 Use the Desktop Effects tool to set the scene for some snazzy 3D effects.
and press either the left or right cursor button, then your desktop should move as if it is part of a cube, taking you from one virtual desktop to another.
This technology is still very much in its infancy, so expect great things in future versions!
Basic X Concepts The underlying engine of X11 is the X protocol, which provides a system of managing displays on local and remote desktops. The protocol uses a client/server model that allows an abstraction of the drawing of client windows and other decorations locally and over a network. An X server draws client windows, dialog boxes, and buttons that are specific to
NOTE We couldn’t think of a better way to demonstrate the capability of X to handle remote clients than by using its capabilities to produce this chapter. Although the OpenOffice.org file for this chapter resided on a Mac mini (running Fedora), the display and keyboard used were actually part of an Acer Ferrari notebook running Ubuntu 6.06 LTS, via an ethernet connection. Revisions were done with the Logitech keyboard and mouse of a desktop machine running Fedora 6, again connected to the Mac mini via X, but this time using a wireless connection.
Because X offers users a form of distributed processing, this means that Fedora can be used as a very cheap desktop platform for clients that connect to a powerful X server. The more powerful the X server, the larger the number of X-based clients that can be accommodated. This functionality can breathe new life into older hardware, pushing most of the graphical processing on to the server. A fast network is a must if you intend to run many X clients because X can become bandwidth-hungry.
X is hugely popular in the Unix and Linux world for a variety of reasons. It supports nearly every hardware graphics system, and strong multiplatform programming standards give it a solid foundation of developers committed to X. Another key benefit of X is its networking capability, which plays a central point in administration of many desktops and can also assist in the deployment of a thin-client computing environment. The capability to launch applications on remote desktops and also standardize installations highlight the versatility of this powerful application.
More recent versions of X have also included support for shaped windows (that is, nonrectangular), graphical login managers (also known as display managers), and compressed fonts. Each release of X brings more features designed to enhance the user experience, including being able to customize how X client applications appear, right down to buttons and windows. Most office and home environments run Linux and X on their local machines. The more-enlightened companies and users harness the power of the
58 CHAPTER 3 Working with GNOMEnetworking features of X, enabling thin-client environments and allowing the use of customized desktops designed specifically for that company. Having applications launch from a single location makes the lives of system administrators a lot easier because they have to work on only one machine, rather than several.
Using X X.Org 7.2 is the X server that is used with Fedora. The base Xorg distribution consists of 30 RPM packages (almost 120MB), which contain the server, along with support and development libraries, fonts, various clients, and documentation. An additional 1,000 or more X clients, fonts, and documentation are also included with Fedora.
NOTE A full installation of X and related X.Org 7.2 files can consume more—usually much more—than 170MB of hard drive space. This happens because additional clients, configuration files, and graphics (such as icons) are under the /usr/bin and /usr/share directory trees. You can pare excessive disk requirements by judiciously choosing which X-related packages (such as games) to install on workstations.
However, with the increased capacity of most desktop PC hard drives today, the size requirements are rarely a problem, except in configuring thin-client desktops or embedded systems.
The /usr directory and its subdirectories contain the majority of Xorg’s software. Some important subdirectories are. /usr/bin—This is the location of the X server and various X clients. (Note that not all X clients require active X sessions.). /usr/include—This is the path to the files necessary for developing X clients and graphics such as icons.
. /usr/lib—This directory contains required software libraries to support the X server and clients.
. /usr/lib/X11—This directory contains fonts, default client resources, system resources, documentation, and other files that are used during X sessions and for various X clients. You can also find a symbolic link to this directory, named X11, under the /usr/lib directory.
. /usr/lib/modules—This path to drivers and the X server modules used by the X server enables use of various graphics cards.
including overlapping and tiling windows, command buttons, title bars, and other onscreen decorations and features.
Elements of the xorg.conf File The most important file for Xorg is the xorg.conf configuration file, which can be located in the /etc/X11 directory. This file contains configuration information that is vital for X to function correctly, and is usually created during the installation of Fedora. Should you need to change anything post-install, you should use the system-config-display application, which is covered later in this chapter. Information relating to hardware, monitors, graphics cards, and input devices is stored in the xorg.conf file, so be careful if you
3decide to tinker with it in a text editor!
Of course, we would not send you in blindly to edit such an important file. Let us take a look at the contents of the file so that you can get an idea of what X is looking for. The components, or sections, of the xorg.conf file specify the X session or server layout, along with pathnames for files that are used by the server, any options relating directly to the server, any optional support modules needed, information relating to the mouse and keyboard attached to the system, the graphics card installed, the monitor in use, and of course the resolution and color depth that Fedora uses. Of the 12 sections of the file,
these are the essential components:
. ServerLayout—Defines the display, defines one or more screen layouts, and names input devices.
. Files—Defines the location of colors, fonts, or port number of the font server.