<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
 <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.7">
 <TITLE>AfterStep FAQ: Modules</TITLE>
 <LINK HREF="AfterStep-FAQ-7.html" REL=next>
 <LINK HREF="AfterStep-FAQ-5.html" REL=previous>
 <LINK HREF="AfterStep-FAQ.html#toc6" REL=contents>
</HEAD>
<BODY>
<A HREF="AfterStep-FAQ-7.html"><IMG SRC="next.gif" ALT="Next"></A>
<A HREF="AfterStep-FAQ-5.html"><IMG SRC="prev.gif" ALT="Previous"></A>
<A HREF="AfterStep-FAQ.html#toc6"><IMG SRC="toc.gif" ALT="Contents"></A>
<HR>
<H2><A NAME="s6">6. Modules</A></H2>

<P>
<H2><A NAME="ss6.1">6.1 How do I get multiple Wharfs/Pagers on the screen?</A>
</H2>

<P> 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:
<P>
<BLOCKQUOTE><CODE>
<PRE>
       *MyWharfAnimate
       *MyWharf "label" Icon.xpm Exec "something" something
</PRE>
</CODE></BLOCKQUOTE>
<P>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).
<P>In the newest versions, you'll also need to edit the database file: mirror
the Wharf appearance with the new name.
<P>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.
<P>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.
<P>
<H2><A NAME="ss6.2">6.2 How can I get asclock to appear properly in Wharf?</A>
</H2>

<P>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):
<P>
<BLOCKQUOTE><CODE>
<PRE>
         *Wharf asclock nil MaxSwallow "asclock" asclock -12 -shape &amp;
</PRE>
</CODE></BLOCKQUOTE>
<P>You must replace the `-12' with '-24' to display 24 hour time.
<P>
<H2><A NAME="ss6.3">6.3 How do I configure asclock to use fewer colors? </A>
</H2>

<P>When installing, after executing configure, asclock configure should be launched
by default.  Otherwise, go to the  modules/asclock directory and do the
following:
<OL>
<LI> Execute sh configure</LI>
<LI> 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.</LI>
<LI> Done. Now go and compile asclock as usual.</LI>
</OL>
<P>
<H2><A NAME="ss6.4">6.4 Why does asclock show the wrong time?</A>
</H2>

<P>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.
<P>
<H2><A NAME="ss6.5">6.5 Why does my latest version of MaxSwallow do odd stuff?</A>
</H2>

<P> 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.
<P>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.
<P>
<H2><A NAME="ss6.6">6.6 What's wrong with WharfAnimate?</A>
</H2>

<P> There are really two questions here.  
<P>First, in 1.4.4, WharfAnimate was broken.  This was fixed in 1.4.5.0.  
<P>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.
<P>
<H2><A NAME="ss6.7">6.7 Can you add xyz to the Wharf?</A>
</H2>

<P>
<P>
<BLOCKQUOTE><CODE>
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?
</CODE></BLOCKQUOTE>
<P>This is a holy war.  You will be crucified at dawn.  Unless you implement it
yourself and post a patch.
<P>No, seriously, there has been a lot of discussion about these topics.
<P>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.
<P>Now Window Maker is following the original NEXTSTEP interface, while AfterStep
is going its own way.  Extensive configurability is one of these "own ways".
<P>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.
<P>
<H2><A NAME="ss6.8">6.8 Can I have swallowed apps under a folder?</A>
</H2>

<P>You can have this only if you have version 1.4.5.55N2 or later.
<P>
<H2><A NAME="ss6.9">6.9 Can I have a folder within a folder?</A>
</H2>

<P>Yes.  In version 1.5, folders can be nested.  Just nest the sub-folder
specification within the main folder specification. 
<P>In versions prior to 1.5, you could not nest folders.  Thadeu Penna
(<CODE>tjppenna@aol.com</CODE>) cleverly worked around this limitation by creating a
folder which calls another Wharf:
<P>
<BLOCKQUOTE><CODE>
<PRE>
 
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.
</PRE>
</CODE></BLOCKQUOTE>
<P>
<H2><A NAME="ss6.10">6.10 Can I have two columns in my Wharf?</A>
</H2>

<P>Yes, in version 1.5.  Use WharfColumns.  WharfColumns was broken, but it's
fixed now.
<P>
<H2><A NAME="ss6.11">6.11 Why can't I find the man page for Wharf?</A>
</H2>

<P>Spell it "Wharf" and not "wharf".
<P>
<H2><A NAME="ss6.12">6.12 What's wrong with the mouse buttons in the pager?</A>
</H2>

<P>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.
<P>
<H2><A NAME="ss6.13">6.13 How can I have more/fewer/larger desktops?</A>
</H2>

<P>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.
<P>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".
<P>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:
<P>
<BLOCKQUOTE><CODE>
<HR>
<PRE>
Module  "I"     Pager 0 1
</PRE>
<HR>
</CODE></BLOCKQUOTE>
<P>You should also then comment out or remove the definitions for the extra
desktops in your pager configuration file.
<P>The Pager can be placed anywhere on the desktop, by editing the value of
"*PagerGeometry".  This uses the standard X geometry values.
<P>Pager can also be displayed vertically and horizontally.  Just adjust the
values of "*PagerRows" and "*PagerColumns".
<P>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.
<P>
<H2><A NAME="ss6.14">6.14 Fine, but how do I get the pager off the desk entirely?</A>
</H2>

<P>You can get rid of the pager by removing it from the autoexec file.
<P>Pager can be swallowed in the Wharf.  In version 1.5, it is also possible
to do this under a Wharf folder.  Use "MaxSwallowModule".
<P>
<H2><A NAME="ss6.15">6.15 How do I enable sound in AfterStep?</A>
</H2>

<P> 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:
<P>
<BLOCKQUOTE><CODE>
<PRE>
cat [some au file] &gt; /dev/audio
</PRE>
</CODE></BLOCKQUOTE>
<P>Then, edit the ~/GNUstep/Library/AfterStep/audio file. You should see
lines like these (if you don't, add them):
<P>
<BLOCKQUOTE><CODE>
<PRE>
         *AudioPlayCmd /usr/bin/showaudio
         *AudioDir /usr/local/share/afterstep/desktop/sounds
         *AudioDelay 1
</PRE>
</CODE></BLOCKQUOTE>
<P>
<P>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).
<P>Below that section, you should see many lines like this:
<P>
<BLOCKQUOTE><CODE>
<PRE>
         #*Audio startup gong.au
</PRE>
</CODE></BLOCKQUOTE>
<P>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:
<P>
<BLOCKQUOTE><CODE>
<PRE>
       *Audio [event] [sound]
</PRE>
</CODE></BLOCKQUOTE>
<P>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.
<P>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
<P>
<BLOCKQUOTE><CODE>
<PRE>
        Module  "I"     Audio
</PRE>
</CODE></BLOCKQUOTE>
<P>to your autoexec file.
<P>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, <EM>and
you've read this and followed the instructions carefully</EM>, you might
want to ask questions on the mailing list.
<P>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.
<P>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.
<P>
<HR>
<A HREF="AfterStep-FAQ-7.html"><IMG SRC="next.gif" ALT="Next"></A>
<A HREF="AfterStep-FAQ-5.html"><IMG SRC="prev.gif" ALT="Previous"></A>
<A HREF="AfterStep-FAQ.html#toc6"><IMG SRC="toc.gif" ALT="Contents"></A>
</BODY>
</HTML>
