XBanner: Making XDM More Attractive

XBanner turns your boring, staid XDM login screen into one of those cool things you'll want to show all your friends (nonchalantly, of course).
Why Write XBanner?

After working with X on Linux for a while, I realized I always start X, and I usually do it shortly after logging in. Therefore, I decided to run XDM, which gives me a login box already in X. XDM installed and ran out-of-the-box with no problems, no hassle.

After just a few days, I found I hated the way it looked. XDM's default is a dull, boring gray screen with a simple text box and nothing else. Compared with some commercial versions of Unix, it was definitely lacking. Since I wanted Linux to look cool, too, I decided to write XBanner.

Tested Platforms

XBanner was written primarily for Linux, but it is not Linux-specific. It can be compiled and run in any environment supporting X11 release 4 and up. I have tested XBanner on Linux, Ultrix, Digital Unix, Solaris, SGI IRIX, AIX and even VMS.

I have had a report that XBanner does not work with X Inside's Accelerated X server. I tried to contact X Inside about this issue, twice. I have been completely ignored—pity.

Getting XBanner

The XBanner home page, sponsored by the Physics department of California State University, Fullerton can be found at:

http://physics.fullerton.edu/XBanner/

And the FTP locations are:

ftp://physics.fullerton.edu/pub/Linux/XBanner/<\n> ftp://sunsite.unc.edu/pub/Linux/X11/xutils/ftp://vvtp.tn.tudelft.nl/pub/XBanner/

I expect new mirrors will become available by publication time. At the time of writing, the latest version is in XBanner1.3.tar.gz.

Getting and Setting Up XDM

Most Linux distributions (Debian, Slackware, et al.) include a package that sets up XDM and its configuration files. In case your distribution doesn't include XDM, it can be found at sunsite.unc.edu, the “home” of Linux software on the Internet—ftp://sunsite.unc.edu/pub/Linux/X11/xutils/xdm.tar.gz.

Compilation and installation is easy. XDM comes with an Imakefile. If your system has X11 installed properly, type xmkmf -a in the directory of the XDM source, then type make. If you have problems, consult the FAQs. Setting up the X11 environment and using imake are beyond the scope of this article.

After the installation is complete, create a directory /usr/lib/X11/xdm/ and copy the files from the config/ directory in the XDM source tree into it. Note that /usr/lib/X11/ should be synonymous to /usr/X11R6/lib/ on Linux.

How XDM Works

XDM reads the file /usr/lib/X11/xdm/xdm-config (see Listing 1 for the default contents), and extracts from it the location of the rest of the configuration files. Nearly all XDM configuration files are defined in xdm-config.

Listing 1. xdm-config Notice the files with the _0 suffix refer to :0--the local display. XDM runs Xsetup_0 to initialize the display, then pops up its login box and asks the user for a username and password. When the user has finished typing this information, XDM checks the password database. If the user is authenticated, XDM runs a few things including the Xsession script that sets up the user's environment and loads the window-manager.

These two files, Xsession and Xsetup_0 are the files to which lines are added in order to run XBanner and Freetemp. This is discussed more completely later in this article.

Compiling and Installing XBanner

After downloading the XBanner source archive, unpack it using:

gzip -dc XBanner1.3.tar.gz | tar xvf-

Change directories to XBanner1.3/ and enter make. On Linux systems, this should proceed with no problems at all. After compilation is done you will have four executables:

  • xbanner - the main XBanner program

  • freetemp - utility to free X11 resources taken by XBanner

  • xb_check - checks resource files for validity

  • random_effect - executes the xbanner binary with a random resource file

Typing make install will install the executables to the directory /usr/local/bin/X11/ (not including the random_effect utility), and set proper permissions. You can change the destination directory by editing the Makefile.

If your system does not have the XPM library, the compiler might complain that it cannot find libXpm.a or -lXpm. In this case, edit the Makefile; it contains instructions on disabling XPM support.

Now, to set up a good default resources file, go to the XBanner1.3/ directory and issue the command:

cp samples/XBanner.ad \
/usr/lib/X11/app-defaults/XBanner
______________________

White Paper
Linux Management with Red Hat Satellite: Measuring Business Impact and ROI

Linux has become a key foundation for supporting today's rapidly growing IT environments. Linux is being used to deploy business applications and databases, trading on its reputation as a low-cost operating environment. For many IT organizations, Linux is a mainstay for deploying Web servers and has evolved from handling basic file, print, and utility workloads to running mission-critical applications and databases, physically, virtually, and in the cloud. As Linux grows in importance in terms of value to the business, managing Linux environments to high standards of service quality — availability, security, and performance — becomes an essential requirement for business success.

Learn More

Sponsored by Red Hat

White Paper
Private PaaS for the Agile Enterprise

If you already use virtualized infrastructure, you are well on your way to leveraging the power of the cloud. Virtualization offers the promise of limitless resources, but how do you manage that scalability when your DevOps team doesn’t scale? In today’s hypercompetitive markets, fast results can make a difference between leading the pack vs. obsolescence. Organizations need more benefits from cloud computing than just raw resources. They need agility, flexibility, convenience, ROI, and control.

Stackato private Platform-as-a-Service technology from ActiveState extends your private cloud infrastructure by creating a private PaaS to provide on-demand availability, flexibility, control, and ultimately, faster time-to-market for your enterprise.

Learn More

Sponsored by ActiveState