13.2.1. Choosing a Display Manager
The graphical interface only provides display space. Running the X server by itself only leads to an empty screen, which is why most installations use a display manager to display a user authentication screen and start the graphical desktop once the user has authenticated. The three most popular display managers in current use are gdm3 (GNOME Display Manager), kdm (KDE Display Manager) and xdm (X Display Manager). Since the Falcot Corp administrators have opted to use the GNOME desktop environment, they logically picked gdm3
as a display manager too. The /etc/gdm3/daemon.conf
configuration file has many options (the list can be found in the /usr/share/gdm/gdm.schemas
schema file) to control its behaviour while /etc/gdm3/greeter.gsettings
contains settings for the greeter “session” (more than just a login window, it's a limited desktop with power management and accessibility related tools). Note that some of the most useful settings for end-users can be tweaked with GNOME's control center.
13.2.2. Choosing a Window Manager
Since each graphical desktop provides its own window manager, choosing the former usually implies software selections from the latter. GNOME uses the mutter
window manager (or metacity
when run in GNOME Classic mode), KDE uses kwin
, and Xfce (which we present later) has xfwm
. The Unix philosophy always allows using one's window manager of choice, but following the recommendations allows an administrator to best take advantage of the integration efforts led by each project.
Older computers may, however, have a hard time running heavyweight graphical desktop environments. In these cases, a lighter configuration should be used. “Light” (or small footprint) window managers include WindowMaker (in the wmaker package), Afterstep, fvwm, icewm, blackbox, fluxbox, or openbox. In these cases, the system should be configured so that the appropriate window manager gets precedence; the standard way is to change the x-window-manager
alternative with the update-alternatives --config x-window-manager
command.
Modern desktop environments and many window managers provide menus listing the available applications for the user. In order to keep menus up-to-date in relation to the actual set of available applications, Debian created a centralized database registering all installed applications. A newly installed package registers itself in that database, and tells the system to update the menus accordingly. This infrastructure is handled in the menu package.
When a package provides an application that should appear in the menu system, it stores a file in the
/usr/share/menu/
directory. That file describes some of the application features (including whether it's a graphical application or not), and the best location for it in the menu hierarchy. The post-installation script for this package then runs the
update-menus
command, which in turn updates all the required files. This command cannot know all the menu types used by installed applications. As a consequence, packages able to display a menu must provide an executable script that will be invoked with all the required information from the menu file; the script should then turn this information into elements that the application with the menu can use. These filter scripts are installed in the
/etc/menu-methods/
directory.
The administrator can also have a say in the process and in the resulting generated menus. First, they can delete a menu element even when the matching application is installed, by simply storing in /etc/menu/
an empty file named according to the package providing the entries to be disabled. Second, the menu can be reorganized and sections renamed or grouped. The /etc/menu-methods/translate_menus
file is where this reorganization is defined and contains commented examples. Finally, new elements can be added to the menu, for example to start programs installed outside the packaging system, or to run a particular command such as starting a web browser on a particular page. These extra elements are specified in /etc/menu/local.element
files, which have the same format as other menu files available under /usr/share/menu/
.