The Stealth Desktop: Managing Users, Fonts, and Printers

By Eduardo Sánchez | Posted at 10:00 PM
In the third installment of the Stealth Desktop series, Eduardo Sánchez builds upon the previous steps of Part I and Part II. Continuing where those parts left off, he introduces the subjects of user, font and printer management in Slackware.

If you ask any person more or less knowledgeable in distributions about the most distinctive feature of Slackware, they will most likely reply "the lack of GUI tools". They are right in the sense that there aren't any Slackware-specific GUI tools, but you do have graphical administration tools at your fingertips that might be very useful in the task of administering a system. Let's see a few of them.

Add and manage users

The standard way of managing user and groups in Slackware involves the use of the commands useradd, groupadd, passwd and related tools. Additionally, Slackware has a friendlier version of useradd, called adduser. You can get an adequate overview of user management using these tools at the canonical source. However, that's not the complete picture; at least, it isn't if you have KDE installed. In that case you have an excellent GUI tool at your disposal to manage users in a simple and convenient way.

You can manage your user accounts with kuser, the KDE User Manager, which is shown in the screenshot of Figure 6.

KUser is part of the kdeadmin package (of the kde diskset) and is a very good tool which provides you with an user manager comparable to the GUI tools of other distributions. You should have no problems using it to manage user accounts and groups. To start the KDE user manager, simply type kuser on the command line (ALT+F2 in KDE) or, in the K menu, go to System > Kuser. The program is largely self-explanating and you have almost complete control over all aspects of user and groups management.

When you're finished adding users and groups, remember to save the changes.

Screenshot of the KDE User Manager
Figure 6
Screenshot of KUser showing the user details window. (647x602, 122K)

Add and manage fonts

The stock Slackware system installs some good fonts, which are in the xfree86-fonts-scale (x11-fonts-scale in Slackware 10), gnu-gs-fonts, and ttf-bitstream-vera packages. These fonts are good enough for desktop usage, and they are configured out of the box. Sometimes, however, you might need to install more fonts to the system. But how? Should you go to the command line, trying to make X, Ghostscript and OpenOffice recognize each font, one by one? Should you go and try the old and proven paths as shown in the LDP Font HOWTO?

The answer to that question is, "No, unless you really want to." You have an excellent GUI tool to install your fonts in the KDE Font Installer, shown in Figure 7. The font installer is a KDE Control Center module, available under KDE Control Center > System Administration > Font Installer. It is a powerful tool offering features that even the gold standard in GNU/Linux font installers --Mandrake's drakfont-- doesn't have.

The KDE Font Installer in KDE 3.1
Figure 7
The KDE font installer in KDE 3.1. (800x576, 70K)
KDE Font Installer showing the settings tab
Figure 8
The Settings tab in the KDE 3.1 font installer. (800x576, 59K)

The KDE Font Installer of KDE 3.1 is different from the one present in KDE 3.2. The Font Installer of KDE 3.1 is shown in Figure 7. From this screen (in both KDE 3.1 and 3.2) you can install, delete, enable or disable individual fonts (not whole folders like some other font installers would), and you are able to choose between different sets of complexity; in most cases, the Basic mode is more than enough for your needs. You can fine-tune the parameters in the Settings tab, shown in Figure 8, which is very similar to Mandrake's font installer. Even though I had the opportunity to change those parameters, the defaults worked flawlessly in my Slackware setup.

The font installer went through a complete overhaul in KDE 3.2. Right now the font installer, shown in Figure 9, is way simpler to operate. The Font Installer is now a frontend for the fonts:/ KIO Slave (a KIO-Slave is a KDE virtual filesystem). The fact that you have now the fonts:/ kioslave means that you can add fonts by simply dropping them in the fonts:/ folder in Konqueror, or just by right-clicking with your mouse. Additionally, now it is easier for individual users to have their own fonts:/ folders. The price for this ease-of-use seems to be the configurability: The Settings tab is gone now, and there is no apparent way of changing the default parameters (short of editing a config file, perhaps). Maybe because the defaults worked every time...

The KDE Font Installer in KDE 3.2
Figure 9
The KDE 3.2 font installer. (859x603, 168K)
The font preview dialog
Figure 10
The font installer's file dialog showing the preview of a font not yet installed. (785x633, 153K)

A great feature that as far as I can tell never was offered by Mandrake (besides KDE's ability to control individual fonts) is font preview. That's right, you can actually see how each font looks like before commiting it to installation! It is simple: When you are installing fonts, make the file selector dialog offer a preview, and that's it. The font installer file selector dialog, showing a preview of a font not yet installed, is shown in Figure 10.

I can't stress enough how important this little control panel applet is for Slackware. Without it, (and provided that other comparable solutions are absent from other ahem... comparable desktop environments) one would have been forced to use a complex sequence of difficult commands to install the fonts. But now, you can have your fonts in Slackware just by clicking a few buttons. In fact, and given that a lot of my work is related to text editing and simple desktop publishing, this feature combined with the easy printer support were the ones that sold me out to Slack.

Editor's Note: Comparable functionality is, in fact, provided by the GNOME 2 desktop environment. The fonts virtual file system (accessible in Nautilus in the same way the KIO-Slave is accessed in Konqueror) can be used to install and remove fonts. Fonts can also be previewed in Nautilus just like images and other files supported by the Nautilus thumbnail tool.

Not everything is perfect, however. A well-known problem with the GNU/Linux font installation in all distributions is the notorious inability to accurately sort fonts of the same family, with the practical result that you would have one font named, for example, Simple Bold, another one, treated as if they were completely different, named Simple Oblique, and so on. Sometimes the problem is the reverse, i.e., fonts meant to be apart one from another are lumped in the same family. This has the effect of making the font selection dialogs inaccurate, and gives you a poor job of font control. Let's hope this will be fixed with time.

Printer setup

Despite popular misconceptions, setting up a printer in Slackware was not hard, even without using KDE's admin tools. Patrick Volkerding's mail to root had a nice tip about setting up your printer using Slackware's default print server (LPRng) and a nifty utility called apsfilter, which proved to be useful and easy to use (there goes the myth of Slackware being "difficult to use"). KDE would recognize the settings and integrate them into its printing system without trouble. I can't say that for other desktop environments, however, simply because I don't know. You can set up your printer that way, and it will work as advertised, with no flaws at all.

Now, the best way to achieve a successful printer setup in our KGX Slackware box is to use the KDE Printing System together with CUPS (the Common Unix Printing System) as a print server. This is a departure from the Slackware standard practice of using LPRng as its printing server, but we'll do it that way because KDE recommends CUPS as the print server. Even more, I've been told that if you're interested in sharing your printer with the Windows boxes of your network peers, CUPS offers some advantages for doing it.

You must keep in mind what we said above: at install time you must install CUPS only, avoiding the installation of LPRng. If you in fact did install LPRng, then the default print server will be LPRng due to the way Slackware handles symlinks. If you installed LPRng only or CUPS with LPRng, then read Patrick's mail to root to get instructions on how to solve the problem.

Detecting the parallel port

At boot time, the system should detect the printer, thus giving you information useful for our setup. Try dmesg | parport if your printer is a parallel one:

# dmesg | grep parport
parport0: PC-style at 0x378 [PCSPP,EPP]
parport0: Printer, HEWLETT-PACKARD DESKJET 840C
parport_pc: Via 686A parallel port: io=0x378
lp0: using parport0 (polling).
# 

That's right; I have a HP DeskJet 840C plugged to my parallel port, and thankfully the parallel link is working. Now we are going to make that printer available to our system.

Note to Slackware 10.0 users

For some reason, parallel port support was not compiled in the kernels supplied with Slackware 10.0. I am able to confirm this with the kernels bare.i and scsi.s of the 2.4x series. You will not be able to use a parallel printer until you load an appropriate kernel module using the modprobe command or by editing the appropriate sections in /etc/rc.d/rc.modules. See Part II of this series for more information.

Slackware systems of versions up to and including 9.1 are not affected by this issue.

Initial printer configuration

The printer configuration and setup is done through the KDE Print System configuration screen, available as a KDE Control Panel as Control Panel > Peripherals > Printers (Figure 11). An easier way to access the Print System is typing print:/manager from the KDE command line or the Konqueror location bar. Notice that in Figure 11 there is already one printer installed; this is just because the screenshot was taken at the end of my printer config.

The config screen of the KDE print system
Figure 11
Screenshot of the KDE Printing System control module. Note that the printer appears to be
already on the system, simply because I took the picture after finishing my own printer config.
(800x576, 70K)

You add printers using the "Add Printers..." button (New printer button). This button will start the KDE Printer Wizard, which helps you set up your printer in an easy way. The wizard steps are self-explanatory, and some screenshots are posted in Figures 12, 13 and 14.

Screenshots of the KDE Printer Wizard
Step 1 of the wizard: Backend selection
Figure 12
The backend selection. This is where you select the printer type. Note how you can configure easily both local and remote printers.
KDE Printer Wizard: Printer Selection
Figure 13
Printer selection. Almost every printer is represented here.
KDE Printer Wizard: Summary and results
Figure 14
The summary window, showing the results of your configuration.

Once you are done with the printer setup, the wizard asks you if you would like to print a test page. If you were able to do it, then your printer is all corretly set up and configured, and ready for use by all of your users. The default KDE Print dialog used by all KDE applications is shown in Figure 15.

You should keep in mind that KPrinter is an extremely powerful feature of KDE. You can set up special pseudo printers, such as faxes, PDF engines and practically anything else able to receive UNIX standard output. You can set up a special pseudo printer by pressing the Set Up Pseudo Printer button (New Pseudo Printer button) on the toolbar.

The KPrinter dialog box
Figure 15
The standard print dialog of KDE.

Although the KDE Printing System can be used with good results with any UNIX printing server, the one recommended for this job is CUPS, as we said. One special advantage of having KDE as the frontend for CUPS is that you can configure CUPS very easily, using the Configure Server (KDE Print Server config button) button. This invokes the CUPS configuration dialog which is shown in Figure 16.

The CUPS config dialog
Figure 16
The CUPS config dialog.

Using the printer in applications

Once we have our printer properly set up and configured, it is available to all KDE applications. But what about all non-KDE applications one would like to use? Perhaps your users might like to use another desktop environment (like GNOME, or XFce), or a non-KDE app, such as xpdf, gaim, gnumeric, or OpenOffice.org. So, how would you print from these apps?

The answer is that you can print easily using the KDE Printer System from almost any application; in fact, provided that you're running the X Window System, you can use KDE Printing even from the command line! When the application asks you for the print command, simply enter kprinter and you're done.

Perhaps the most relevant of these apps is OpenOffice.org. On the OpenOffice.org menu, go to Printer Administration. Once there, make sure the "Generic Printer" is the only one in the list of installed printers. Then hit the "Properties..." button. On the text box below the "Select Command" area, type kprinter and you're done. The two dialog boxes are depicted in Figure 17 showing how to use KPrinter with OpenOffice.org.

Screenshot of the OO.o printer administrator
Figure 17
How to use KPrinter with OpenOffice.org (800x600, 102K)

You can also see Figures 18 and 19 to see KPrinter as the printing system in Netscape/Mozilla and XPDF.

How to use KPrinter in Netscape/Mozilla
Figure 18
Using KPrinter in Netscape/Mozilla.
Using Kprinter in xpdf
Figure 19
Using KPrinter in xpdf.

So, there goes the notion of Slackware as being "unfriendly"! It turned out that you can get a system that is both lean and fast and friendly. Happy Slacking!.

What's next?

In our next installment we'll see how to set up the CD-ROM, floppy and other removable drives, and how KDE makes great use of them. Stay tuned!


Eduardo Sánchez is a Contributing Editor of Open for Business. He is married to Gloria, and lives with his wife in Asunción, Paraguay (South America), where he works as pastoral assistant of Villa Morra Baptist Church. You can reach him at esanchez@ofb.biz.