AfterStep FAQ: Modules

## 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.