AfterStep FAQ

Andrew Sullivan (asullivan@sprint.ca)

v.00, 22 November 1998
This is the AfterStep Window Manager FAQ (mostly with answers) file. Copyright © 1996-1998, Frank Fejes, Jonathan B. Leffert, Kragen Sittler, Diego Zamboni, Guylhem Aznar & Andrew Sullivan. Freely redistributable under the terms of LDP license, Version 2, January 1998.

1. General information

1.1 What is X, and what is a window manager?

"X" is common shorthand for The X Window System. It is the basis for building some graphical user interfaces (GUIs). These are most often found on UNIX-type systems, although there are implementations for other platforms. Notice that X is not the interface itself. For more information, please see The X Window System.

A window manager (briefly) is a program which controls the way various windows interact during an X session. AfterStep is one such window manager.

1.2 What is AfterStep?

AfterStep is a Window Manager for X which started by emulating the NEXTSTEP look and feel, but which has been significantly altered according to the requests of various users. Many adepts will tell you that NEXTSTEP is not only the most visually pleasant interface, but also one of the most functional and intuitive out there. AfterStep aims to incorporate the advantages of the NEXTSTEP interface, and add additional useful features.

The developers of AfterStep have also worked very hard to ensure stability and a small program footprint. Without giving up too many features, AfterStep still works nicely in environments where memory is at a premium.

1.3 What is its history?

What follows is drawn from the AfterStep man page:

AfterStep originated as a continuation of the BowMan window manager, originally developed by Bo Yang. BowMan was based on fvwm, which was written by Robert Nation. In turn, fvwm was based on twm. And so on. Open Source / Free (please pick your preferred term, without prejudice) software works exactly because of these sorts of traditions. Yay!

The changes which led to AfterStep were originally part of BowMan development. As the desire for simple emulation was superseded by a desire to improve, the designers decided to change the name, and the AfterStep project was born.

Many of the earlier developers of AfterStep subsequently decided to move to the Window Maker (originally WindowMaker) project, under the leadership of Alfredo Kojima (kojima@windowmaker.org). Window Maker (which, as of this writing, may yet receive another name change: gswm for "GNUstep Window Manager") is committed to emulating closely the NEXTSTEP(tm) look and feel.

As a result of all that, Guylhem Aznar (ciguylhem@barberouge.linux.lmm.com) took over development of AfterStep. Though he had help from several able developers (check the "TEAM" file for a list of the wonderful programmers responsible for AfterStep), and obviously built on the previous efforts of other excellent programmers, new and current users of AfterStep owe a special debt to Mr Aznar. Without his work, AfterStep would never have approached its current stability, flexibility, or functionality.

1.4 What are AfterStep's main features?

  1. NEXTSTEP-similar title bar, title buttons, borders and corners.
  2. The AfterStep Wharf, which is a much worked-out version of GoodStuff. To avoid copyright complications it is not called a `dock'.
  3. NEXTSTEP style menus. The menus are not, however, controlled by applications; they are more like pop-up service lists on the root window.
  4. NEXTSTEP style icons. The default icons are consistent with those in the NEXTSTEP interface, but they are configurable.
  5. Pixmapped Pager with desktop pixmapping.
  6. Easy-to-use look files, which allow you to share you desktop appearance with your friends.
  7. Start menu entries in a hierarchy of directories.
  8. WinList, a tasklist which can be horizontal or vertical.
  9. Many modules & as-apps to make your X window station look great.

The flexibility of fvwm has not been traded off. Initiation files recognize most of the fvwm 1.24r commands. Virtual screens and the pager are still intact. Modules for fvwm-1.x should work just fine.

1.5 Is it compatible with fvwm-2?

Compatibility with fvwm-2 & Enlightenment modules is planned for an upcoming version, but support is not yet available. Some Enlightenment-based items will work well with AfterStep, however. In particular, support for Eterm is now available.

1.6 Is it available for Microsoft Windows-based machines?

Not really, unless the Windows machine has an X server installed. If you want to take that approach, look at Running AfterStep under Win32!. But there is an AfterStep-alike program called LiteSTEP, which gives Windows machines an AfterStep-ish appearance. As of this writing, LiteSTEP development versions are available at http://dev.litestep.net, while some screen shots are available at http://litestep.computerheaven.net/. Keep in mind, however, that these programs are not versions of AfterStep. Please do not send questions about LiteSTEP to the AfterStep mail list.

If you want to make AfterStep work under any version of Windows, you are welcome to try following the instructions at the Web sites listed above, and every last bit of associated documentation. Please do not contact Andrew Sullivan for help, however, as he cannot help you: he does not use AfterStep with Windows.

1.7 Where can I get this FAQ?

The latest version is always available at http://lowrent.org/asfaq/. That is the official home page of the AfterStep FAQ, and offers links to several mirror sites as well.

The latest version is also usually available from ftp://ftp.afterstep.org/pub/. The AfterStep FTP site has found a new home courtesy of Red Hat; please see the section on the FTP site for details. One can also always find the latest version of the FAQ through the AfterStep web site. What's more, there are sites whose sysadmins have been generous in offering mirrors of the FAQ. Here are the mirrors:

http://the-site.dyn.ml.org/Linux/AfterStep/FAQ/, hosted by David Mihm.

http://www.davidv.net/~ajsulliv/, hosted by David Vondrasek.

http://optera.net/~contramac/, hosted by Nathan Widmyer.

http://www.ticnet.com/azenomei/as/start.html, hosted by Peter Booth.

Ce document est aussi disponible en français, à http://amberlab.net/rone/afterstep/.

Please note that the version numbering system of the FAQ has changed. The FAQ version number used to follow roughly the same protocol as the version numbering of AfterStep. This led to confusion, because the number of the FAQ and the number of AfterStep tended to get out of synch. The FAQ version number is now the date of its release, according to the ISO data format: {Arabic numeral of year}-{Arabic numeral of month number}-{Arabic numeral of day of month}. For example, a FAQ released on 31 October 1998 would be called "as-faq.1998-10-31", with the appropriate extension for the file format.

1.8 Who contributes to this FAQ?

The initial version of the FAQ was written by Frank Fejes (frank@ssax.com) and Jonathan B. Leffert (j-leffert@uchicago.edu). Major additions were made by Kragen Sittler (kragen@tcsi.com). Diego Zamboni (zamboni@cs.purdue.edu) maintained the file until Guylhem Aznar (ciguylhem@barberouge.linux.lmm.com) took over with the release of AS 1.4. The file is now maintained by Andrew Sullivan (asullivan@sprint.ca), with contributions from Tomas Duewiger (td@music-satellite.de). Naturally, the FAQ is prepared in co-operation with the program developers; but any errors or omissions are now Andrew Sullivan's responsibility, so you should contact him to complain. Most of the questions and answers have been provided by the people participating in the AfterStep mailing lists. If you have a suggestion about this file or, better yet, an answer to an unanswered question in this file, please send an e-mail to Mr Sullivan, or to the main AfterStep list; see the next question for more information on the list.

1.9 What is the AfterStep-related mailing list?

This question used to read, "What are the AfterStep-related mailing lists?" Due to some changes in hosting, things have changed:

AfterStep-Announce

This list is no longer functioning.

AfterStep

The purpose of this list is to provide a forum in which users of the AfterStep X11 window manager can discuss issues related to to using AfterStep. Appropriate topics include, but are not limited to, the installation and configuration of AfterStep and related modules and applications. Developers should also subscribe to, and work through, this list, as no other list is active as of this writing.

AfterStep-Digest

This list contains the same messages as the AfterStep mailing list. The messages are saved up (not transmitted individually) and sent out as a bundle. This decreases the number of separate messages received from the list, but makes it more difficult to reply to a specific message.

AfterStep-Dev

This list is no longer functioning.

AfterStep-Dev-Digest

This list is no longer functioning.

For information on subscribing to any of these lists, or more information, please see http://www.calderasystems.com/linuxcenter/forums/afterstep.html. A re-instated searchable archive of the list is planned by Ed Orcutt; Mr Orcutt is also the owner of the AfterStep lists. His employer, Caldera, has been generous in donating server and web space for the mailing lists.

2. Getting and installing AfterStep

2.1 Where do I get AfterStep?

The main AfterStep resources on the net are below.

2.2 What is the latest version of AfterStep?

The latest official version is 1.4.5, released in April 1998. A development release, 1.4.5.55N6, was widely considered to be a true stable release; it has, in fact, fewer bugs than 1.4.5.

Version 1.5.0 should be available by the time you read this. If you are contemplating installing a version of AfterStep, it is worth either waiting for the release of version 1.5.0, or installing the latest beta version of 1.5. Any version of the 1.5 series is a significant improvement over any 1.4.x release.

There is also a current development effort around the old version of AfterStep (v. 1.0). This effort is called AfterStepClassic. It is primarily directed towards fixing bugs in the old 1.0 release of AfterStep, and is not always compatible with new developments in AfterStep. It uses only the .steprc-style configuration, so if you are looking for information on how to configure AfterStepClassic, you should assume that the information about versions < 1.2 apply to you. The lead developer for AfterStepClassic is Stephen Ma (stephen_ma@mindlink.bc.ca).

2.3 What do I need to install AfterStep?

AfterStep is an X window manager. So, you need to have an X workstation. It will apparently compile against, and work with, X11R5, but for optimal performance, it is preferable that you use X11R6. In order to compile AfterStep from the source, you need (apart from a C compiler, like gcc) the X developers' libraries on your system. The most common problem that people have in compiling AfterStep is as a result of not having the required libraries on their system. In particular, XFree86 lists the necessary libraries as an "optional" package. As a result, many people do not install them, and so cannot compile AfterStep. You should be able to get the libraries wherever you got your distribution of XFree86.

AfterStep is known to run on Linux, FreeBSD (not all modules work), HP-UX, and Solaris. For the latter two, you should read the relevant READMEs before trying to compile.

X, and hence AfterStep, is really designed with an eye to the assumptions of multiuser systems like UNIX or VMS. If you are using X on some other platform, and particularly, if you are trying to run X atop any version of Windows, you will have to do much of the porting work yourself. There is a link above offering advice on getting AfterStep to work under Windows; but this practice is not encouraged. You are likely to get greater ease of use by using LiteSTEP.

2.4 I receive the message: Cannot open display. What should I do?

AfterStep is an X window manager and cannot be run from the terminal. It must be run through X. The easiest way to do that is to create (or edit) your own .xinitrc file (which contains a list of the programs you wish to load upon startup) and to add the line exec afterstep to the end. This last exec'd line is significant in that it says to shut down X when that program is terminated. Now that you have that file, simply startup X in your customary manner (most likely by issuing "startx" or "xinit"). Now you're off and running. Good luck!

If you are using xdm, you will need to put the call to afterstep in your .xsessions file.

2.5 How can I install AfterStep without being root?

This is fairly easy, but you must be sensitive to the version you are using.

You will have to install all the files under your home directory. The usual recommendation is to use the same directories as suggested in the installation procedure, but replacing /usr/share, usr/local, or whatever you like by your home directory. For example, if you home directory is /home/blah you would use directories like /home/blah/bin, /home/blah/etc, /home/blah/lib, and the like.

Compile AfterStep following the standard installation procedure (i.e the one described in the README) until the install step. Then, do the following (make sure to create the destination directories first if they don't exist. All the source paths are relative to the AfterStep source directory):

  1. Copy afterstep/afterstep to $HOME/bin/.
  2. Copy modules/*/(binaries) to $HOME/bin/.
  3. Copy apps/*/(binaries) to $HOME/bin/.
  4. Copy GNUstep/ to $HOME/.
  5. Edit $HOME/GNUstep/Library/AfterStep/base.* to reflect the above paths in the lines starting with ModulePath and PixmapPath.
  6. Put $HOME/bin in your path.

You should be set. Feel free to modify this procedure according to your particular needs or the particular setup of your machine/account.

You should note that, during the 1.4.5.x series, the source paths changed. If the changes are not transparent to you, you should probably move to the 1.5 series anyway. The 1.5 series includes an install script that allows you to set the install directories to whatever you want. Even though the instructions say you should have root access, you can install AS under your home directory. The trick here is to specify only directories to which you have write permissions. Importantly, you must specify the full path on most systems. Otherwise, there is a good chance that something will not read correctly; this will affect your installation of AfterStep. On some systems, you may also have to add the new subdirectories to your ".profile", ".cshrc", ".xsessions", or other such file. If you don't know what this means, you should either contact your system administrator, or read a good book about your operating system or X windowing system.

2.6 Why do I keep getting compile errors?

The most common reason for problems compiling is that you do not have all the necessary libraries and headers available on your system. This often happens to people who have recently upgraded their distribution of XFree86. The necessary libraries are included in an "optional" file which matches the version of XFree86 in question; the most recent of these is X332prog.tgz (for XFree86 3.3.2). You should be able to find the file you need wherever you obtained your distribution of X.

2.7 Why do I keep getting an error referring to sgmltools?

This FAQ file is maintained in SGML according to the Linuxdoc DTD; some version of the FAQ is included with every AfterStep distribution. In order to make it easily readable, a program called sgml2html (part of sgmltools) converts the file to HTML. A script, afterstepdoc (by default, the first button on the Wharf), should open a browser and allow you to read the FAQ. Unfortunately, not everyone has sgmltools; and even if they are installed, they are not detected correctly at install time. As a result, the HTML version of the FAQ is now shipped with the latest versions of AfterStep. The SGML source is still included with the AfterStep source, however, so if you want other versions of this FAQ -- dvi, PostScript, or even plain text -- just use the sgmltools package to convert the SGML source to whatever format you like.

2.8 Why can't I get AfterStep to compile on SGI or SCO?

The problem here was tracked down and reported by Benjamin J. Tracy (tracy@wsicorp.com) and (independently) John Koch (JKOCH1@Tandy.com). The ordering of the libraries in the link command is wrong. Just make sure that the afterstep library appears before the -lX11 argument on the link command line (in the Makefile). Everything should work after that.

2.9 Will AfterStep compile correctly on FreeBSD?

AfterStep itself works fine on FreeBSD, but some as-apps will not work. In particular, there are some that depend upon a Linux-type /proc filesystem. That filesystem is very different on BSD-type system.

3. Problems After Installation

3.1 I just upgraded to version 1.5, but I don't see any difference. Why?

By default, version 1.5 installs in different directories than versions < 1.5. The binary names are the same, unfortunately, so if the earlier binaries are "earlier" in your path than the new binaries, you will not get the new binaries.

One trick is to use the new, version 1.5 install script to place the new binaries wherever the old binaries are. Another possibility is to track down the old binaries, and remove them from the system. By default, AfterStep used to install in /usr/X11R6/bin. Version 1.5 installs, by default, in /usr/local/bin.

3.2 I don't want so many desktops in version 1.4.x or later; I want to change feature xyz in version 1.4.x or later.

Just edit the relevant file under ~/GNUstep/Library/AfterStep. See the section on configuration for details.

3.3 The desktop is bigger than my pager indicates.

This is/was a known bug. The problem is that the pager is at least three screens in at least one dimension. There have been reports of getting the pager to work correctly if the desktop size is set to 3X3 or 3X2. (For more information on how to configure the Pager, see the section on Modules, below.)

Albert Dorofeev (albert@mail.dma.be) reports that the following changes to src/functions.c will fix the problem in AfterStep 1.4; I do not know whether these will work for other versions. In src/functions.c, change the lines



if (newx > Scr.VxMax)
        newx = Scr.VxMax;
    if (newy > Scr.VyMax)
        newy = Scr.VyMax;

to



if (newx >= (Scr.VxMax - Scr.MyDisplayWidth) )
        newx = Scr.VxMax - Scr.MyDisplayWidth;
    if (newy >= (Scr.VyMax - Scr.MyDisplayHeight) )
        newy = Scr.VyMax - Scr.MyDisplayHeight;

This change apparently leaves a bug whereby the mouse pointer "jumps" on the right-hand border; but at least your pager will correspond to the desktop.

The bug is fixed as of AfterStep 1.4.5.x, so if it really annoys you, please upgrade. In the 1.4.5 and later series, the virtual desktop is set up in the base.{yourbppnumber}bpp file, and not the pager configuration file. Please edit the correct file according to your configuration.

3.4 I'm running Solaris, and have had problems with the alphasort() function.

There are ever-fewer problems with AfterStep and Solaris; this one has been patched in version 1.4.4 and later. You should upgrade to the latest version. You should also check the information in the README.Solaris file, and see the following site: http://www.primate.wisc.edu/software/imake-stuff/.

3.5 I reduced the number of buttons in my titlebars, and now AS crashes.

Depending on which version you are using, you may need to edit your feel file, as well. Look at the section on looks and feels.

4. AfterStep Configuration

4.1 What's a .steprc, and why do I need it anyway?

In versions of AfterStep prior to version 1.2 (including current versions of AfterStepClassic), all configuration is handled in a single file. This is the .steprc file; it should be in your home directory if you're running any of these versions. These files are generally well-commented, and can be edited easily to change the defaults. The default file from version 1.0 included several major sections:

New versions of AfterStep don't use this file, preferring the GNUstep/Library standard instead. The settings for looks and feels, for instance, have been broken out into separate files, and the configurations of Wharf, Pager, and other modules and applications have been placed in their own files. See below.

4.2 I'm using AfterStep 1.2 or later, and I can't find the .steprc. Why?

AfterStep now uses a directory structure to handle desktop customization.

4.3 OK, so how do I customize non-.steprc versions?

This depends on the version you have.

Versions through 1.4.4 need a full set of directories in each user's home directory. In other words, you need to copy everything in

{AfterStepPath}/GNUstep/Library/AfterStep/

to

~/GNUstep/Library/AfterStep/

There were several changes to this directory structure between version 1.4.0 and 1.4.4. A full outline of these changes is beyond the scope of this document, but there are some general remarks on particularly common problems below. For more help configuring 1.4.4, see http://www.via.ayuda.com/~smw/afterstep/configs/index.html or http://www.music-satellite.de/spearhead/.

In particular, you should note that the ~/G/L/A/ directories are not compatible between versions 1.4.0 and 1.4.4. You must copy the full {AS install}/G/L/A/ directory (including all sub-directories) into your home directory, even if you are only upgrading from 1.4.0 to 1.4.4.

The ~/GNUstep/Library/AfterStep arrangement is, admittedly, somewhat inefficient, because there are always at least two copies of everything on any system running AfterStep. As of versions post-1.4.5, it is possible to add only those files which you have changed to the directory structure in your home directory; everything else will use the default installation in /usr/share/afterstep or /usr/local/share/afterstep (this location varies among versions; the latter is the default in version 1.5). Nevertheless, there are some subtle differences among the configuration files of each version. If you have upgraded, and you suddenly have problems, your first impulse should be to try renaming your ~/G/L/A/ directory, and starting AfterStep. If the problem disappears, you can reasonably presume that it has something to do with your configuration files. That doesn't mean that the answer will be obvious, but it does mean that you'll know where to start looking.

4.4 I just upgraded versions, and now nothing works.

First, determine whether you have upgraded from a ".steprc version" to a "non-.steprc version". Versions after 1.2 do not (by default) use the .steprc file, so your old customization will not be invoked by default if you have moved from, say, 1.0 to 1.4.5.

If you have changed from 1.4.0 to a later version, you need to remove your old version of the ~/GNUstep/Library/AfterStep directory structure. Version 1.4.4 introduced the "configurable" and "non-configurable" distinction, and so several items have moved. See the previous question.

Subtle changes have been introduced between versions; this is even true between, say, 1.4.4 and 1.4.5.3. In particular, several modules have had their configuration files changed to be in keeping with Wharf style. The practical effect of this is apparently inexplicable problems which develop after an upgrade. If you suddenly have problems after an upgrade, and especially if some modules suddenly do not work, try replacing your configuration with the default configuration. If that works, you can edit the new configuration to reflect your previous customization.

It is also important to note that the syntax for looks and feels changed again in version 1.5. Several of these changes have been as a result of requested features or (more often) improvements in the efficiency or ease of use of the overall program. These changes, of course, entail some frustration; but before you ask, "What happened?" you should always try renaming your ~/GNUstep/Library/AfterStep directory, and re-starting. If this solves the problem, you should try customizing the new version, using your old customization as a model. You are likely to be able to re-use most of your old configuration files as they are.

4.5 How do I change my startmenu?

In versions before 1.2, edit the appropriate section of the .steprc. In later versions, you need to adjust the necessary parts of the ~/GNUstep/Library/AfterStep/start directory structure. The start directory includes sub-directories for every sub-menu. It also has a file corresponding to every entry on a menu. Each file should contain a single line to invoke the desired program. So, if you wanted an entry in your main startmenu which said

xiterm (pixmap)

your ~/G/L/A/start directory would contain a file:

xiterm\ (pixmap)

That file would contain a single line:

xiterm -pixmap [path_to_pixmap.xpm] & 

(you would, of course, adjust the command-line options to reflect your intentions).

By default, the sort order of the start menu is determined at compile time. It is usually sorted alphabetically or chronologically (according to the creation date of the file). This has the disadvantage of forcing a sort order which one might not like. As a result, version 1.5 offers a new (completely-worked-out) way to sort menu items.

In version 1.5, the startmenu can be sorted numerically. Suppose you have three files you want to sort in your startmenu, named "a", "b", and "c". You could sort these in reverse alphabetical order in your startmenu by naming them "0_c", "1_b", and "2_c".

You can specify a startmenu name which is different from the filename, by including that startmenu name in quotes in the file which is associated with the startmenu name. For instance, a file named 8_xitermtransparent would be the 8th file in the startmenu. If the contents of the file were as follows, then it would be named "X terminal ~transparent":

 
Exec "X terminal ~transparent" exec xiterm -pixmap
~/GNUstep/Library/AfterStep/non-configurable/0_background -sl 500 -vb &
MiniPixmap "mini-app.xpm"

(Note that this command should all be on one line in the actual file!) In this case, the xiterm window comes up with the current background of the first desktop in AfterStep; this simulates a "transparent" xterm. For more on "transparent" xterms, please see the section on as-apps.

The sorting of items in the startmenu always puts directories (which are equivalent to sub-menus) first. Directories, however, are themselves sorted according to the same scheme as are files, except that there is no mechanism for naming a sub-menu something other than the directory name.

From version 1.4.5, you also have to read the new startmenu into your configuration. On the startmenu, under "Desktop" (1.5 or later) or "Quit" (< 1.5), is an option, "update startmenu". Choose this item, and your new startmenu will appear.

People who have Red Hat Linux 5.1 have had another problem with the startmenu updating: all changes are lost after exiting. This is because of the way that Red Hat has modified the startup of AfterStep. The version of AfterStep included in Red Hat 5.1 includes an m4 preprocessing routine which, among other things, re-writes the ~/GNUstep/Library/AfterStep/start directory every time AfterStep starts. As a bit of editorial, I (Andrew) might point out that I don't know what this does, nor why Red Hat used it. I also don't intend to learn. If you can't get Red Hat to explain to you what they did, my suggestion is to remove the RPM, and compile and install the official version. David Mihm (davemann@ionet.net), however, suggests that you can get around the m4 preprocessing this way:


echo "exec afterstep" >~/.xinitrc
echo "exec afterstep" >~/.xsessions
chmod 700 ~/.xsessions

It has been suggested (by Ian Hay, ian.hay@sympatico.ca) that the m4 preprocessing was an attempt on Red Hat's part to make the use of AfterStep more friendly to new users: this preprocessing apparently ensures that new apps get added to the start menu after they've been installed. Matteo Lunardi (matteo.lunardi@usa.net) has offered a work-around, at least in some versions. In the xinit-1.4.2.noarch.rpm, he edited the file /etc/X11/xinit/Xclients, this way:


if [ -f $HOME/.wm_style ] ; then
    WMSTYLE=Cat $HOME/.wm_style         case "$WMSTYLE" in 
        Afterstep*|AfterStep*)
            # we have to start up afterstep
            if [ -x /usr/X11R6/bin/afterstep -a -f
/usr/share/afterstep/wmconfig.conf ] ; then
#               if [ ! -d $HOME/GNUstep/Library/AfterStep ]; then
                     mkdir -p $HOME/GNUstep/Library/AfterStep
                     wmconfig --output=afterstep --directories \
                        /usr/share/afterstep/wmconfig.conf 2>/dev/null
#               fi
                env > "$HOME"/Xrootenv.0
                # if this works, we stop here
                eval "exec /usr/X11R6/bin/afterstep" >
"$HOME"/.AfterStep-errors 2>&1
            fi

In this case, the change was to add comment marks ("#") to the "if" lines (not the one where it says, "if this works, we stop here"). Apparently, however, it also works to add the comment marks to the "mkdir" and "wmconfig" lines.

As an alternative, Kai Puolamaki (Kai.Puolamaki@iki.fi) suggests that you configure your wmconfig utility to make things work better. This is likely the best way to make these adjustments. Red Hat's wmconfig utility relies on a system-wide directory, /etc/X11/wmconfig, but is adjustable by users through an individual directory, ~/.wmconfig. So, if you wanted a menu item, "Mail", containing both mutt and elm, you would add two files:


~/.wmconfig/mutt
~/.wmconfig/elm

The file "mutt" would contain the following:


mutt name "Mutt"
mutt description "Mutt email client"
mutt group Mail
mutt exec "xterm -e mutt &"

The file "elm" would be similar:


elm name "Elm"
elm description "Elm email client"
elm group Mail
elm exec "xterm -e elm &"

More information is available from the wmconfig manpage. Note that there is an additional advantage to this syntax: it ensures that your menu changes are also available if you change window managers.

4.6 Where did the "Decorations" item go in version 1.5?

The "Decorations" menu has been re-named to "Desktop".

4.7 What are "look", "feel", "desktop", etc. files?

In versions that do not use a .steprc, the various elements of the desktop have been separated out, in order that they can each be customized independently. Look files and feel files allow you to customize the desktop in almost an infinite number of ways. Note that any functional changes you make in a look file (like adjusting the number of buttons that appear on a window titlebar) may need to be reflected in a corresponding feel file: the "feel" handles how you interact with windows, while the "look" controls their appearance. This is handy if you want your windows always to respond in more or less the same way, but want them to look differently depending on the task you're performing, the machine you're on, or whatever.

4.8 Can I have differently-sized buttons on the titlebar?

Yes, but not in every version. It is reported that version 1.5 handles differently-sized titlebar buttons with no difficulty. If you want this functionality, please move to version 1.5.

4.9 Fine, but how do I reduce the number of buttons on the titlebar?

This depends upon what version you are using. Version 1.5 allows you simply to change the look file to reflect the buttons you want. Any version before 1.5 requires a change both to the look and to the feel. The trick here is to understand the difference between a look and a feel. A look file simply determines how elements of the screen will appear. It does not determine how the elements will interact: that's what a feel file does. So, if you want to reduce the number of buttons on a titlebar, you need to adjust both the look and feel files. The look file must define the appearance of exactly the number of buttons for which there are functions in the feel file; and each button defined in the feel file must have a reference in the look file.

To see how this works, consider a look file with the following definitions:


# TitleButtons : [1] [3] [5] [7] [9] (title) [0] [8] [6] [4] [2]
#
TitleButton 1 b1.xpm b1-pressed.xpm
TitleButton 2 b2.xpm b2-pressed.xpm
TitleButton 3 b3.xpm b3-pressed.xpm
TitleButton 4 b4.xpm b4-pressed.xpm
TitleButton 6 b6.xpm b6-pressed.xpm

Now, this defines the appearance of two buttons on the left of each titlebar (TitleButton 1 and TitleButton3), and three buttons on the right of each titlebar (TitleButton 2, TitleButton 4, and TitleButton 6). For each definition, the first XPM mentioned defines the appearance of the button when it is not pressed; the second XPM defines the way the button looks when it is pressed. The numbering of these buttons is hard-coded, so you cannot just number your buttons in any order at all. Follow the "boilerplate" numbering scheme (above the TitleButton pixmap definitions in our example).

In order to make this look function correctly, each titlebar button needs to have its function defined in the feel file. So, the feel file might include something which looks like this (this one is taken from the feel.DEFAULT file in 1.4.5.55N6):


Mouse 1         1       A       ChangeWindowUp
Mouse 2         1       A       GetHelp
Mouse 3         1       A       ChangeWindowDown
Mouse 1         2       A       Delete
Mouse 2         2       A       Destroy
Mouse 3         2       A       Destroy
Mouse 1         3       A       PopUp "Window"
Mouse 2         3       A       WindowList 2
Mouse 3         3       A       WindowList 2
Mouse 1         4       A       Shade
Mouse 2         4       A       Stick
Mouse 3         4       A       Stick
Mouse 1         6       A       Iconify
Mouse 2         6       A       Maximize
Mouse 3         6       A       Maximize 

The first column defines what action causes the desired behaviour; so, "Mouse 1" means "mouse button one is pressed". The second column defines where the behaviour is to have its desired effect: in our list, we have definitions for all five (TitleButton 1, TitleButton 2, TitleButton 3, TitleButton 4, and TitleButton 6) of the buttons defined in the look file. Notice that each button gets a definition for every mouse button, so there is never an undefined action on any TitleButton. The third column specifies the context for the action. In this case, the context is "Any" (actually any context except in the TitleBar); you can also specify modifications (e.g. by adding "C" for "Control"). The final column specifies the behaviour which attaches to the action. So, in the last row, we define that clicking the third mouse button on the innermost TitleButton on the right-hand side of a window will Maximize that window.

Other functions get defined in the same list in every feel file, so you will have to look carefully to ensure you define everything correctly.

4.10 Why does some key not work as I expect?

There are two possibilities here. One is that you are having problems with your "delete" or "backspace" key. This is a generic X problem, and you should investigate it by reading the relevant documentation for xmodmap. Try issuing "man xmodmap" at the command prompt.

The second possibility is that you have a set of keypresses which work in another X window manager, but which do not work under your recent installation of AfterStep. In that case, you need to edit the "feel" file. Before you go on, go back and read the previous question about mouse bindings. Done that? Good. Now, keybindings work just the same. So, in your feel file, you might have the following keybinding:


Key Left        A       C       Scroll -100 0

This says that if you press "Control" (3d column) and the left cursor key (1st column) while anywhere on the screen, AfterStep will scroll one page to the left. If you want to get the functionality of "Ctrl-left" back, in order to use it in some other X application, then you'll need to remove this keybinding from your feel file.

You can avoid having any keybinding defined by AfterStep by using one of the included feels: feel.ICCCM. Just select it from the Desktop/Feels (v. 1.5) or Decorations/Feels (v. < 1.5) menu under your startmenu.

4.11 Why can't I have my .steprc in version 1.4.x or later?

You can. Use the -f switch to force AfterStep to read from a file. Please notice that not everything will work with your old .steprc file "right out of the box"; but if you like the old version that much, why upgrade anyway?

That said, version 1.5 has worked out almost all the incompatibility issues.

4.12 I'm using Red Hat, and I can't find the configuration files you've mentioned.

Red Hat apparently used to include a look-alike to AfterStep which is actually a hack of fvwm-2. It is not AfterStep, although some Red Hat distributions also contain the real AfterStep. Red Hat has changed the name of their "hacked" version, in order to reduce confusion.

A "real" version of AfterStep is included in Red Hat Linux 5.1. It uses m4 preprocessing for configuration, however, so not all configuration remarks in this document will be useful to Red Hat users. If you want to configure the AfterStep included in Red Hat, you should ask Red Hat how to do it, or read the documentation for m4, or both. There is some discussion of the Red Hat preprocessing under the startmenu section, above.

4.13 What is the database file?

The database file allows you to adjust certain features of the desktop. It allows you to define icons for minimized programs, allows you to force certain programs (like Pager or Wharf, for instance) to stay on top, and other such options. Have a look at the default database file, back it up, and play with some of the settings; it's pretty self-explanatory, but it takes a little fooling to make it work as you want.

Items in the database file follow the "Style" conventions from fvwm and AfterStep. So, each item is listed this way:


Style   "WM_CLASS"      {comma-separated list of options}

You can learn the value of "WM_CLASS" by using the Ident module included with AfterStep. Ethan Fischer (allanon@crystaltokyo.com) offers the following account of what the various options do:


In general, these options have both an "on" and an "off" keyword (like 
"Title" and "NoTitle", for instance).  This allows a general style (like 
the "*" style), to be overridden by a later style.  For example:

        Style "*" NoButton 1, BorderWidth 2
        Style "xterm" Button 1, NoHandles

will hide the leftmost button on the titlebar for any window except xterm
windows.  It will turn off resize handles for xterm windows.  It will also
give a 2-pixel border to xterm windows - note that BorderWidth only affects
windows with NoHandles (this is in the manpage), so all other windows will
receive the normal 1-pixel border.

Here's a list of options, along with what they do.  For each group, the 
default is listed first.

Icon {icon.xpm}
NoIcon
  Specifies the icon pixmap, if the app doesn't supply its own.  NoIcon 
  turns this off.

Title
NoTitle
  Give the window a titlebar.  NoTitle removes the window titlebar.

IconTitle
NoIconTitle
  Display the icon name along with the icon.  NoIconTitle turns this off.

Handles
NoHandles
  Give the window resize handles, also called the "lowbar".  NoHandles 
  turns this off.

Button {button}
NoButton
  Allow a titlebar button to be shown.  It will still not be shown if it 
  is disallowed by Motif WM hints, or there is no pixmap specified for it
  in the look file.  NoButton disallows a button.

WindowListHit
WindowListSkip
  List the window in the window list.  WindowListSkip removes the window
  from the window list.

CirculateHit
CirculateSkip
  Circulating (also called warping or alt-tabbing) will stop at this    
  window.  CirculateSkip prevents circulating to this window.

StartNormal
StartIconic
  Start as a normal window.  StartIconic starts the window as an icon.

StaysPut
StaysOnTop
StaysOnBack
  Don't put a window anywhere special in the stacking order.  StaysOnTop
  windows are placed above all other windows except menus.  StaysOnBack 
  windows are placed behind all other windows.

StartsAnywhere
StartsOnDesk {desk}
  Start the window on the current desk.  StartsOnDesk will force the
  window to start on a specific desk.

Color {forecolor} {backcolor}
ForeColor {color}
BackColor {color}
  Change both the foreground (text) color, and the background color for
  this window.  ForeColor changes only the foreground color.  BackColor
  changes only the background color.

NoFocus
  This window will refuse to take the input focus.

Slippery, Sticky
  This window will remain on whatever desk it started on, unless the user
  moves it.  Sticky will cause the window to move to whatever desk is
  currently shown.

BorderWidth {width}
  If NoHandles was also specified, set the border width of this window.
  Note that the border is an X border and not special to AS (unlike the
  titlebar or lowbar).

HandleWidth {width}
  Set the width of the resize handles on the lowbar.

4.14 What is the base.{yourbpp}bpp file?

The "base" files define the path to pixmaps and the like for each bits-per-pixel X ColorDepth setting. The number of colors your X session can use at any one time is limited by the number of bits per pixel that are allowed by your video hardware, and by your X configuration. The file, base.{yourbpp}.bpp, is automatically selected by AfterStep upon startup, according to what your X configuration allows. For more information about ColorDepth, read your X documentation, as well as the section on colormap issues, below.

The base files also define the size and scale of your desktop(s).

4.15 How do I get apps to minimize to a different place?

When an application minimizes, the icon shows up in a predictable place on the desktop. This is the icon box. In versions that use a .steprc, this is defined in the .steprc. In later versions, the icon box is found in the look file. (Naturally, this means that if you change looks, the icon box may move!) You can specify any location you like for the icon box, using standard X geometry.

4.16 I keep losing my icons, or I can't stand having them follow me.

Even though these are opposites, they amount to the same question. Icon behaviour in this case is controlled in the feel. StickyIcons ensures that the icon will follow you from one desktop to another. StubbornIcons iconifies an application to its original place. You can back up your feel, and play with it to see what you can do.

4.17 Suddenly, some windows stay always on top. Why?

With the default, double-clicking (latest versions) or triple-clicking (earlier versions) on a window titlebar toggles a window's always-on-top state. Double/Triple-click again to remove it. If you want to remove this feature, locate the lines in your feel file that look like this (there are several of them):

PutOnTop        "TripleClick"

and comment them out.

It is also possible that you have inadvertently changed your feel. Predictably enough, different feel files define functions differently. So, for instance, one of them may automatically move a window to the top as soon as your pointer is atop that window, while another may require that you click on the titlebar in order to bring a window to the top. You might like to read through the various feel files on your system, in order to get an idea of how they can be customized.

4.18 Can I make or install a "theme" for AfterStep?

There is a new set of scripts available to work through themes. It is still in the early stages of development, but several people have already reported success. The scripts come from Doug Alcorn (alcornd@earthlink.net), and are available from his page, http://home.earthlink.net/~alcornd/ as well as from the AfterStep FTP site, under /themes.

4.19 I want to do xyz with {some application under X}. How do I do it?

Yes, this is a generic question, because the generic answer is always the same: please read the relevant man pages and README files. That said, there are several applications which are included with AfterStep. Some (not all!) of these are discussed in another section (below, after the Modules section). If you're really perplexed, and you're having a problem peculiar to AfterStep, and you have read every relevant thing (that really means everything!), a question to the regular list would not be out of place.

5. Icons, graphics and pixmaps

5.1 Icons staying put

In old versions of AfterStep, an icon to be used in Wharf must contain at least one transparent pixel; otherwise the symptoms you've mentioned will turn up. Simply add a transparent pixel and everything should work flawlessly.

Newer versions of AfterStep fix this problem, allowing you to use icons without transparent pixels in the Wharf. You should really upgrade to the latest version.

5.2 Colormap issues

Yes, I (Andrew) know that "colour" is spelled incorrectly here. I can't help it that those who set up X and Linux spell incorrectly.

When I run AfterStep some of the icons on the button bar don't show up. If I load them at the top they show up, but then the other ones don't. Also, when I use Netscape, the colors get wacky. What's wrong?

Odds are you are using a 256 color (8bit) display. A quick explanation is that you can only have 256 colors on the screen at the same time, and the more colors you use in Wharf (the button bar), the fewer you can use for other applications and icons. I would suggest upgrading your video hardware or using more conservative (less colorful) icons. For netscape, an option is to run it with the 'netscape -install' command. This will ensure that netscape gets a good deal of the color that it wants. It will, however, also result in the colors flashing whenever you move the mouse in or out the Netscape window. You decide whether you can live with that.

One trick, it seems, is to run AfterStep without a Wharf. That reduces the number of colors used at any one time.

You might want to use low-color icons, as well; you can find a good collection of low-color icons (all of them together use only 21 colors) at http://the-labs.com/AfterStep/.

If you are using asclock, you can configure it to use fewer colors. See below.

After version 1.4, AfterStep uses config. files ending with "8bpp" for 8 bit displays, and low-color icons from icon/8bpp. You can modify these files to use fewer colors.

I am having trouble under AS while using xscreensaver with its own colormap.

So far, no solution has surfaced to this problem. It appears that AfterStep is not handing over control of the display. There seem to be other related problems of this nature, mostly on Suns. Any additional information would be appreciated: Gerhard den Hollander (gerhard@jason.nl) is working on this problem.

5.3 Icons disappear from Wharf. What's wrong?

You are most likely running out of colors. Either upgrade your hardware, switch to a higher color depth (i.e. 16 bpp or higher), or use icons that contain fewer colors.

5.4 How do I create an icon with a transparent pixel?

You don't really need to do this any more: the preferred method here is to upgrade your AS version. Still, if you don't want to download, you can fix your problem easily. An xpm is a simple text file. Therefore, the only image manipulation software you will need is vi (or some other text editor). If you edit your xpm, you will become aware of its beauty and simplicity. At the bottom you will notice a character representation of your image. At the top there is a color listing corresponding to each pixel of the character representation.

You have two options to create a transparent pixel:

  1. Change an existing pixel color to transparent: Simply find the pixel character(s) you wish to become transparent, then go back up top and find that character in the listing. Change the color code (number beginning with a #) to None. Save, and you're all tootin'.
  2. Create a new transparent pixel: Edit the line near the top corresponding to the height/width/number of colors/chars per pixel. Increment the number of colors (third value) by one. Then in the list of pixels and color values add the line:
                   c None
    
    Where `c' should be a character that is not being used by any other color. From there save and take off.

If you're the slightest bit unsure, take a look at one of the xpm files in the AfterStep distribution's icons directory.

The `correct' size for a Wharf icon is 48x48 pixels. However, if you use bigger icons, they will display correctly, up to 64x64, which is the default size for the Wharf buttons.

5.5 How do I make my own XPMs?

See the previous question. Or, if you're trying to convert a compressed file to an xpm, try using an image-manipulation tool like xv or the GIMP.

5.6 Where can I find some cool pixmaps for the Wharf or desktop?

There are dozens of sites scattered around the Internet which will provide you with useful graphics. Some good links to start with can be found on the official AfterStep home page.

5.7 Why doesn't program `xyz' work in 16bpp?

Several 8bpp programs don't work on displays without a PseudoColor visual available. Several PC X servers don't support PseudoColor visuals on displays running in TrueColor mode. You should buy an SGI. Or run two simultaneous X servers, if you're on Linux.

Note for SGI users willing to play with their bpp :

One has to tweak the arguments to X in /usr/lib/X11/xdm/Xservers. The following worked for Tim Buller (buller@math.ukans.edu)

:0 secure /usr/bin/X11/X -bs -c -nobitscale -visid 0x34

Where Visual ID 0x34 (reported by xdpyinfo) is:

  visual:    visual id:    0x34
    class:    TrueColor
    depth:    24 planes
    available colormap entries:    256 per subfield
    red, green, blue masks:    0xff, 0xff00, 0xff0000
    significant bits in color specification:    8 bits

5.8 Why doesn't xv do xyz in 16bpp?

xv doesn't cope well with 16bpp in three ways. First, it can't grab pieces of the screen. Second, if you grab pieces of the screen with xwd and try to display them with xv, it doesn't work well. xwud works. Third, if you display a 24bpp picture, it doesn't bother to dither it down to 16bpp, resulting in bad pictures. You might want to consider using the GIMP, or xli.

5.9 Why don't icon names change when the application changes it?

Sorry, but icon names change since AfterStep 1.1. Upgrade.

5.10 Why does application xyz not have an icon?

You need to define an icon for your program in your database file. It's a good idea to define a default icon for all "unknown" programs. In the latest versions of AfterStep, you do this in the database file:

Style   "*"             Icon Unknown.xpm

5.11 Why do I get bad behaviour with backgrounds?

In earlier versions of AfterStep, background loading was handled at start-up by invoking another program in the .steprc. While version 1.4 allowed the use of XPMs only, 1.4.4 restored the ability to load jpegs (or whatever) with another program. The catch is that the auxiliary program is defined in configure.h at compile time. Edit the configuration to reflect the accurate path to your favourite image viewing program, and then re-compile AfterStep.

The default program to use is xli. Many people don't have this on their system, and prefer to use xv instead. This choice is still a compile-time option. Moreover, the Pager code is broken in some distributions, so that the jpeg handling doesn't always work.

The loading of backgrounds is handled by the Pager module. If you're not using the Pager, then the backgrounds won't get loaded. In that case, you can make the call to the background-loading program in your autoexec file.

As of this writing, the Pager module is being re-coded to include (native) support for background jpegs. This new pager is included in a patch to version 1.5 beta 4. Version 1.5 will include native support for jpegs.

Note that jpegs don't take any less memory while loaded; they only take less disk space!

6. Modules

6.1 How do I get multiple Wharfs/Pagers on the screen?

It's pretty easy. You just have to have the Wharf exist under several different names, and then configure each of them using its name. For example, if you make a link to Wharf called MyWharf (type "man ln" at a command prompt if you don't know how to make links), you would add extra lines to the Wharf configuration file (or new section in a .steprc) for the new binary name: ~/GNUstep/Library/AfterStep/mywharf. The file would then include lines like this:

       *MyWharfAnimate
       *MyWharf "label" Icon.xpm Exec "something" something

Same for the Pager. Note that the default pager file includes several additional lines already, for *WPager, *XPager, *YPager, and *Zpager. Use links with those names to use the defaults (and remove the comment marks from the relevant lines).

In the newest versions, you'll also need to edit the database file: mirror the Wharf appearance with the new name.

Note: Apparently, due to the way the Wharf configuration file parser works, links with names like Wharf2 (i.e. the same original name with characters appended to it) will not work: the parser will think you are referring to the original module and will get confused. You have to give each link a distinctive name. Try, for instance, MyWharf.

In the latest versions of AfterStep, there is also a different version of GoodStuff included with AfterStep; this is called Zharf. It allows variable-sized buttons, and it includes names for the icons. You can start it up with the default configuration from your startmenu (look under "Modules"). Configuration is basically the same as for Wharf.

6.2 How can I get asclock to appear properly in Wharf?

First, you need AfterStep 0.98 beta 4 or later. These version have the MaxSwallow option. Then, add a command such as this to the wharf file or line (depending on whether you use .steprc):

         *Wharf asclock nil MaxSwallow "asclock" asclock -12 -shape &

You must replace the `-12' with '-24' to display 24 hour time.

6.3 How do I configure asclock to use fewer colors?

When installing, after executing configure, asclock configure should be launched by default. Otherwise, go to the modules/asclock directory and do the following:

  1. Execute sh configure
  2. Several menus will appear, asking for the default language for dates (yes, you can change it!) and the number of colors used. There is one option to use 2-bit color, resulting in an asclock that uses only 4 colors, but still looks pretty good.
  3. Done. Now go and compile asclock as usual.

6.4 Why does asclock show the wrong time?

This happens most often on Red Hat Linux installations. There's a broken link; this is a fairly well-known problem. Just make a link between /usr/lib/zoneinfo and /usr/share/zoneinfo. If you don't know about links, try typing 'man ln' at a command prompt.

6.5 Why does my latest version of MaxSwallow do odd stuff?

In the newest versions of AfterStep (i.e. starting with the 1.4.5 series of patches), the Wharf underwent some re-working, in order to allow the use of some newer programs (designed for Window Maker). As a result, different patches turned up for the Wharf.

The final result of this work can be seen in version 1.5. The old "MaxSwallow" has been removed, and replaced with "Swallow". The older "Swallow", with its size limitation, is gone. The "MaxSwallow" keyword now re-sizes the button to fit the app being swallowed. There is also a "Size" keyword, to resize the buttons, and ignore any other size determination.

6.6 What's wrong with WharfAnimate?

There are really two questions here.

First, in 1.4.4, WharfAnimate was broken. This was fixed in 1.4.5.0.

Second, some people complain that Animate is too slow. This is defined at compile time. You should adjust the three animate lines in configure.h to a lower number; that will speed up the animation. Version 1.5 includes three new configuration options: WharfAnimateSteps, WharfAnimateStepsMain, WharfAnimateDelay. These are defined in the wharf configuration file, and control the animation of Wharf. The old compile-time configuration is also still available, but these new options will hopefully make things easier.

6.7 Can you add xyz to the Wharf?

You know, it would be really nice if the Wharf supported text titles/cascading menus/tabs on the side/plug-in modules/swallowing running applications in folders/scrollbars on folders/starting applications only if they're not already running. Why doesn't someone do it?

This is a holy war. You will be crucified at dawn. Unless you implement it yourself and post a patch.

No, seriously, there has been a lot of discussion about these topics.

Many people believed that AfterStep should be kept as close as possible to the original NEXTSTEP interface, while others thought it should be extended and be made as configurable as possible.

Now Window Maker is following the original NEXTSTEP interface, while AfterStep is going its own way. Extensive configurability is one of these "own ways".

So please send a message to one of the relevant lists saying exactly what you'd like to be implemented; or, even better, do it yourself and send a patch.

6.8 Can I have swallowed apps under a folder?

You can have this only if you have version 1.4.5.55N2 or later.

6.9 Can I have a folder within a folder?

Yes. In version 1.5, folders can be nested. Just nest the sub-folder specification within the main folder specification.

In versions prior to 1.5, you could not nest folders. Thadeu Penna (tjppenna@aol.com) cleverly worked around this limitation by creating a folder which calls another Wharf:

 
My dirty solution was: one of the Wharf's buttons is a call
to Pier (a secondary Wharf). In this way, I got one additional level. The
main disadvantage is for each button in the Pier, you have to write a small
script that calls the program and after to kill the Pier. The geometry was
quite easy to evaluate. I have used, for the first button of the Pier, the
same icon as in the Wharf, therefore it seems as a Folder with an additional
level. It is a little slower than Wharf itself.

6.10 Can I have two columns in my Wharf?

Yes, in version 1.5. Use WharfColumns. WharfColumns was broken, but it's fixed now.

6.11 Why can't I find the man page for Wharf?

Spell it "Wharf" and not "wharf".

6.12 What's wrong with the mouse buttons in the pager?

In 1.4.5.55, the left and middle mouse button bindings were reversed, because of a request from Red Hat. Several users have expressed dissatisfaction with this arrangement, however, so it will not be maintained. Version 1.5 is back to the old style.

6.13 How can I have more/fewer/larger desktops?

The Pager module in the latest AfterStep versions is highly flexible. It can be configured to show several desktops, each with several screens, and it can be placed just about anywhere you like it.

To change the size of the desktop, edit the base.{your bitdepth}bpp file to reflect the size of the desktop that you want. "2x2" means "two panes wide by two panes high".

To change the number of desktops, you need to do two things. First, you need to change the call to pager in your autoexec file. The syntax for starting Pager is "Pager {1st desktop} {last desktop}", where the first desktop is always 0. So, if you wanted to have two desktops, you would add the following line to your autoexec file:


Module  "I"     Pager 0 1

You should also then comment out or remove the definitions for the extra desktops in your pager configuration file.

The Pager can be placed anywhere on the desktop, by editing the value of "*PagerGeometry". This uses the standard X geometry values.

Pager can also be displayed vertically and horizontally. Just adjust the values of "*PagerRows" and "*PagerColumns".

Notice, also, that the pager configuration file has changed in version 1.5, in order to allow the new functionality. Do not recycle your old pager configuration, but use the new default as the basis for new customization.

6.14 Fine, but how do I get the pager off the desk entirely?

You can get rid of the pager by removing it from the autoexec file.

Pager can be swallowed in the Wharf. In version 1.5, it is also possible to do this under a Wharf folder. Use "MaxSwallowModule".

6.15 How do I enable sound in AfterStep?

First, make sure you have the necessary hardware, and have a kernel compiled with sound support. You can check that your sound actually works by trying the following at a command prompt:

cat [some au file] > /dev/audio

Then, edit the ~/GNUstep/Library/AfterStep/audio file. You should see lines like these (if you don't, add them):

         *AudioPlayCmd /usr/bin/showaudio
         *AudioDir /usr/local/share/afterstep/desktop/sounds
         *AudioDelay 1

Again, if these aren't there, add them. Verify that the AudioPlayCmd is a valid program and that the sounds you want to play are in /usr/local/share/afterstep/desktop/sounds/ (or set it to the appropriate directory).

Below that section, you should see many lines like this:

         #*Audio startup gong.au

Simply remove the comment (#) from the beginning of the line and if you wish, set the startup event to some other au file. The format is:

       *Audio [event] [sound]

Do that for the rest of the Audio events, and as one AfterStepper put it, you'll literally add new bells and whistles to AfterStep.

In some versions of AfterStep, sound is disabled by default. You can get the audio module to work in two ways. The first is to open the "Start" menu, click on "Modules", and then click on "Audio". The other is to start the Audio module in your autoexec file. Just add the line

        Module  "I"     Audio

to your autoexec file.

The Audio module was apparently broken in some versions, but nobody seems to know why. You should make sure you have the latest version of AfterStep before asking why your Audio module does not work: all current versions seem to be functioning correctly. If you are still having trouble, and you've read this and followed the instructions carefully, you might want to ask questions on the mailing list.

You should also be aware that the configuration of the Audio module has undergone some changes. So, if you've changed your version of AfterStep, and Audio is suddenly not working for you, check that you removed your old configuration before asking what is wrong.

Finally, if you are getting errors complaining about an incorrect path, check your base.{yourbppnumber}bpp file. The AudioPath used to be set in the base file, but it is now set in the configuration file for the Audio module. This change affects versions since 1.4.5.0; but 1.4.5.0 was accidentally released with the AudioPath configured in the base file. Fix the definition, and the problem will go away.

7. AfterStep Application ("as-apps") configuration.

7.1 What's the difference between as-apps and modules?

Modules are part of AfterStep, and need to be called by AfterStep. They cannot be run alone. As-apps, on the other hand, can be used by other window managers as well.

7.2 I want to add a pixmap to the background of xiterm

The first thing you must ensure is that you compiled xiterm to allow this. The default configuration of xiterm does not permit the addition of pixmaps. You need to edit xiterm.h (you'll find it in xiterm/src/) before compiling in order enable the feature: change the line


/*#define XPM_BACKGROUND*/

to


#define XPM_BACKGROUND

Once you're sure you've compiled and installed xiterm correctly, simply add the switch "-pixmap {path-to-pixmap}".

7.3 I want xiterm to start as the login shell.

In order for this to work correctly, you need to adjust the compile-time settings for UTMP_SUPPORT. The relevant section is near the end of xiterm.h. The exact changes you need to make vary from system to system; just read the comments carefully, and make the correct adjustments.

7.4 How do I get that cool transparent xiterm?

You can't. There is no such thing. The "transparent" effect you are looking for is actually just a *term program (xiterm, rxvt, whatever) with a background pixmap identical to the desktop. The user carefully lined up the *term so that the pixmaps appeared to be the same ones.

Apparently, the newest version of Eterm has a "transparency" option. If you decide to use it, I hope you have a couple of million extra CPU cycles lying around! The transparent Eterm actually just reads the current background, than then tries to keep the Eterm background lined up correctly. In order to make this work, you will need to use esetroot, or use the new pager introduced with the 1.5 series. The new pager offers support for Eterm. You will still need to get all the necessary libraries for Eterm, however.

There is also a program called roottail, which allows you to tail messages onto the root window. This is useful, for instance, if you want to view /var/log/messages without having an extra xterm open all the time.

7.5 I am having trouble with asmix or asmixer and Wharf

This appeared in AS 1.4.4. That release included only asmix, and not asmixer. You can either get asmixer and install it, or use asmix. If you use asmix, make sure you are invoking in correctly in the Wharf. In particular, you must be consistent in your invocation: it is labelled "asMix" in the Wharf file, even though the name of the file is "asmix".

The latest version fixed this, so you can use "asmix" in the Wharf file. The class name, however, is still "asMix", so you have to use "asMix" in the database file, if you have any options you want to configure particularly for asmix.

7.6 I upgraded AfterStep, and now my as-apps look funny in the Wharf.

This is because of some changes to the "Swallow" and "MaxSwallow" keywords in the Wharf configuration. Have a look at the section on Wharf, above.

7.7 How do I use asmail?

Asmail checks for your mail. You configure it using the asmail configuration file, which can be found with the rest of your AfterStep configuration files. (On version 1.5, this is /usr/local/share/afterstep.) The configuration is pretty self-explanatory.

Note that asmail checks for mail on the local system. If you are connected to another system, and are using NFS, you can check your mail on that system. If you are connected across a PPP or SLIP link, you may want to use a program such as fetchmail to retrieve your mail. Then, asmail will report when you have received mail.

7.8 What is ascp?

Ascp stands for `AfterStep Control Panel', and is a program that allows you to configure AfterStep while imitating the NEXTSTEP control panel look and feel. It makes it really easy to configure AfterStep without manually fiddling with the configuration file(s). There is more information about how to get it below. Make sure you read it carefully.

Versions of ascp before version 0.9 used Tcl/Tk and TkStep, and would write .only to a steprc file. Starting with version 0.9, ascp has abandoned the Tcl-based approach. The new ascp is based entirely upon GTK+. The very latest version is dependent upon having (at least) version 1.1.1 of GTK+, and glib version 1.1.2.

WARNING: AfterStep doesn't use .steprc since version 1.2, so if you use the older Tcl-based ascp , you will have to run AfterStep in 'compatibility' mode:

 afterstep -f {yeoldsteprc}

7.9 I tried to install TkStep, but it doesn't work with TkStep and Tcl7.6

There is a version of TkStep which is supposed to work with Tk 7.6, but it does not seem to work for everyone. The best approach is probably to upgrade: the latest version of TkStep works with Tk8.0; see below for more information about TkStep.

7.10 Why doesn't ascp run on my system?

This depends on which version of ascp you are talking about. The old ascp needed TkStep. TkStep is a version of Tk implemented by Alfredo Kojima (kojima@inf.ufrgs.br), and now maintained by Oliver Graf (ograf@fga.de) and Steve Murray (stevem@eng.uts.edu.au); it gives Tk the NEXTSTEP look-and-feel, and implements a few new widgets, like font and color choosers. You can download it from http://www.fga.de/~ograf/TkStep.shtml or http://touchwood.ee.uts.edu.au/TkSTEP/TkSTEP.html. These versions of ascp do not work with the new configurations anyway (i.e. post 1.2), so you might not need to worry about this. To use the Tcl/Tk based ascp versions with the latest version of TkStep, you need a patch. You can get the patch from Steve Murray's site: http://touchwood.ee.uts.edu.au/TkSTEP/fixes.html. These patches only work for versions 0.8 and 0.8-SE, but not for 0.8.4. You must patch ascp before using it with Tk 8.0, or your .steprc file will be corrupted.

A new version of ascp which does not depend on TkStep is now available. This is ascp 0.9, also known as gtk+-ascp. The new version only supports the new-style (non-.steprc) configuration. The latest version of this depends upon GTK+. You can get this version from http://hubble.colorado.edu/~nwanua/htmldir/ascp.html. Both the program and the site are maintained by Nwanua Elumeze (nwanua@colorado.edu). The ascp home page also tells you what version of GTK+ you will need for the current version of ascp, and provides a link for you to find it.

7.11 Can I use Window Maker applets in AfterStep?

Yes. It was always more or less possible, except that WM apps tended not to display correctly in the Wharf. The changes to the Swallow and MaxSwallow functions in Wharf have made it possible to use any Window Maker applet in Wharf.

8. General usage, features and bugs

8.1 Why does XFree86 crash as I'm starting?

There are many reasons why this might happen, but one bug in particular has surfaced which might be important. Apparently, XFree86 has some bugs in the shaped windows handling code. The effect of these bugs is that, if you are using an as-app, and another window overlaps that as-app's window while the app is starting, X will crash. This usually happens at startup time in AfterStep, during the time when Wharf is starting.

The best way to avoid this, it seems, is to add a "Wait" line in the autoexec file for every Wharf, like this:


Module  "I"     Wharf
Wait    "I"     Wharf

Also, avoid putting a menu in the upper left corner when starting up.

8.2 Why does AfterStep get slower and slower until I restart it?

Apparently there was a bug in versions up to 1.0pre3 (probably a memory leak) that caused this behaviour. We know that setting your TextureMaxColors to something small, like `16 16 16 16' or `32 32 32 32', will stop this problem. It also seems to happen only with XFree86 in 32-bpp mode (or 16? Please give me confirmation), and if you're in 8-bpp or a different X server, it doesn't seem to cause a problem.

This problem was solved in 1.0pre4, as far as we know. Upgrade!

Unfortunately, some new memory leaks appeared during the 1.4.x series. The most serious of these appear to have been fixed in the 1.5 series.

8.3 Click-to-focus dies

Sometimes, after I've been running AfterStep for a while in click-to-focus mode, I can't shift the focus from one window to another by clicking. I have to iconify and deiconify the window to shift focus, or pick it from the popup list. Why?

This is a strange bug, that is (sometimes at least) caused by having the NumLock key activated. It is present up to 1.0pre4, so check your NumLock key.

This problem is solved in 1.0pre5, so you should upgrade if you're still having this problem.

Some people have recently reported that this bug has re-surfaced. If the problem appears on your system, please send a message to the list to report it.

8.4 What is this `Shade' thing?

Shade is a window function that is often seen on the Macintosh system. In theory, it makes a window disappear except for the title bar. For example, an Xterm normally looks like this:


         |------------------------------|
         |             Xterm            |
         |------------------------------|
         |                              |
         |                              |
         |                              |
         |                              |
         |                              |
         |------------------------------|

When shade takes effect, the Xterm looks like this:


         |------------------------------|
         |             Xterm            |
         |------------------------------|

This is nice for saving desktop space and for window management purposes. Some prefer it to iconifying the windows.

Up to 1.0pre3, Shade didn't work correctly, because it worked by resizing the window to a height of 0 pixels, which some applications didn't like.

In 1.0pre4 and later versions, shade works by making the application think that it is being iconified, so it works with all applications again. It has the problem, though, that shaded windows become `sticky' and appear in all the pages in the virtual desktop. Unlike sticky icons, this is not behaviour that can be changed. This is a bug.

The "sticky-shade" bug has been fixed in the 1.5 series.

8.5 When I restart AfterStep, it kills X. What gives?

This was a bug that occurred in AfterStep betas. If you experience this bug, you are running an old release of AfterStep. Upgrade to v1.0pre4 or later to fix this. This is, incidentally, something you should probably do anyway, considering the wealth of features you are missing.

8.6 What is swallow-exec?

It's a feature introduced in the distribution in 1.0pre4 (it previously existed as a separate patch) that allows you to associate an action to an entry in the Wharf corresponding to a swallowed application. So for example you can have asmail in the Wharf, and have it configured so that when you click on it, it warps to your email reading window. If your email reader is exmh, the required lines would be:

       *Wharf "asmail" nil Swallow     "asmail" asmail &
       *Wharf "asmail" nil Warp        "-" exmh

Note how both lines have the same label `asmail', which tells Wharf that those two go together. You can use any AfterStep function instead of `Warp'. For example, if you want the xload icon to fire a top window when clicked, you can have something like this:

       *Wharf "xload" nil Swallow      "xload" xload -geometry 48x48-1-1 &
       *Wharf "xload" nil Exec "Top" xterm +sb -T Top -n Top -e top &

By the way, this feature is responsible for a strange bug. See the next question.

Also note that this feature does not appear always to work in later versions. Many asapps, however, will automatically start another program when clicked, if given the correct arguments. For instance, asmail allows you to specify the program to start when the asmail button is left-clicked; this is determined in the asmail configuration file. Similarly, asload accepts a command line option, "-exe", which allows you to specify a program to start upon a left-click.

8.7 I upgraded to 1.0pre4 or later, and now the Wharf doesn't work. What happens?

This is not a bug, it's a feature :-). No, really, this behaviour was introduced due to the introduction of the `Swallow-exec' capability in 1.0pre4. To fix it, do the following:

  1. In your .steprc, locate the lines that start with
           *Wharf "" ...
    
  2. This could also be nil, or any other label that is the same for all the Wharf entries. These repeated labels are the ones causing the trouble. You have to give each Wharf entry a unique label there, like `xload', `asmail', `Pager', etc.
  3. Restart and it should be fixed.

Of course, the better answer is to upgrade to 1.4.x or later, and re-configure your Wharf.

8.8 Why doesn't my workspace save when I exit?

In early 1.4.x versions, there was a file called .workspace_state which was automatically written when you exited. This saved your desktop when you exited, so that it looked the same way when you came back. This behaviour was enabled by default in those versions.

In version 1.4.5.55N6, this behaviour is disabled by default. You can change configure.h to restore this feature before compiling if you want to.

You can also manually create the .workspace_state in your ~/GNUstep/Library/AfterStep/ directory. It is just a plain-text file which invokes the program you want to appear on start-up, including the geometry (with positioning) of the window. This file will be read at start-up if it exists, but it will only be re-written if you selected the relevant flag at compile time.

The .workspace_state behaviour is one of the options at compile time for version 1.5.x.

8.9 My start menu no longer updates upon restarting. Why?

You should select "Desktop/Update startmenu" (version 1.5) or "Quit/Update" (< 1.5) on your startmenu. That will fix your problem.

9. Miscellany

9.1 How do I use Microsoft Windows (tm) True Type fonts ?

Information from David Mihm (davemann@ionet.net), posted in the AfterStep mailing list:

You are looking for a server for True Type fonts. A blurb about one of the few programs to provide this server to any WM:

Xfstt means "X11 Font Server for TT fonts" TT fonts are generally regarded to be the best scalable fonts for low resolution devices like screens.

This server can be obtained from sunsite: ftp://sunsite.unc.edu/pub/Linux/X11/fonts/

You might want to check freshmeat to see if there are newer versions.

According to F. Nicolaas Benders (benders@slackworks.com), there may be difficulties with the server:

I've been running the 0.97 version and it works well with one major problem.
Whenever I start it, it automatically slams my CPU and won't let go until it's
killed.  I refuse to believe that a font server should need more than 50% of my
processor time constantly, has anyone else had any experience with this?

Naturally, if anyone has had such experiences, we would be glad to hear of it!

9.2 What is this Window Maker I keep hearing about?

WindowMaker -- now Window Maker -- is a new NeXT-like window manager that is being developed by Alfredo Kojima (kojima@inf.ufrgs.br) with the support of a lot of other people. It will support many OpenStep/GNUStep-ish features, and there is talk that it may be the "next-generation _asnl", and even the window manager of choice for GNUstep. You can download it from http://www.windowmaker.org

However, be advised that WindowMaker is still in an early stage of development. It is advancing very fast, though, so you may also want to take a good look at it.

10. Other AfterStep-unrelated applications

10.1 I have a problem with program xyz.

Please, please, don't post questions unrelated to AfterStep to the mailing lists. If you have a problem with some application not running, and you think AfterStep is the culprit, first try the following:

  1. Read the documentation (man pages, etc.) for the program.
  2. Find out about its configuration parameters (not only command line, but also options in .Xdefaults, config files, etc.).
  3. Ask other people who know about that specific program. Find a mailing list about that program and ask there.
  4. Try running the program under some other window manager. If it doesn't work there either, it is not an AfterStep problem.

If you are very confident that it is an AfterStep problem, then send it to the mailing list, but try to give as much information as possible. Questions like `Why doesn't blig-graphics work on my system?' do not contain any useful information that may help others in diagnosing your problem; you run the risk of getting a nasty answer if you send such a message to the list. Some data you may have to include is:

  1. AfterStep version you are using.
  2. Operating system version, machine architecture.
  3. System configuration (color depth, memory, anything you think may help).
  4. Problematic program.
  5. Environment information (other programs running at the same time, etc.)
  6. A detailed description of the problem. What happens (error messages, etc.), how replicable it is, how to replicate it, etc.

The more information you provide, the easier it will be for others to find a solution.

A good reason to suppose that the problem lies in AfterStep is to test the same program with an AS-compatible window manager. This means that a failure of a program which works perfectly on Enlightenment is not a failure in AS terms; but a failure of an fvwm-1 program is something of concern for AfterSteppers.