afterstep(1.8)                                     afterstep(1.8)



NAME

       afterstep - X11 window manager



SYNOPSIS

       afterstep [-d displayname] [--debug] [-f steprc_file] [-s]
       [-v | --version] [-c | --config]



DESCRIPTION

       afterstep is an X11 window manager with  a  NEXTSTEP  look
       and  feel  but which attempts to go beyond this to provide
       new features and flexiblilty.



OPTIONS

       -d [host]:display[.screen]
              Manage the display [host]:display[.screen]  instead
              of  the name obtained from the environment variable
              $DISPLAY. $DISPLAY may be  unix:0.0,  :0.0  or  :0,
              which doesn't work too well when passed through rsh
              to another machine, so $HOSTDISPLAY  will  also  be
              set,  and  will  use a network-ready description of
              the display.  Unfortunately, $HOSTDISPLAY will  use
              the  TCP/IP  transport  protocol,  even for a local
              connection, so $DISPLAY should be  used  for  local
              connections,  as  it  may  use unix-domain sockets,
              which are faster.


       --debug
              Puts X transactions in synchronous mode, which dra­
              matically  slows  things  down, but guarantees that
              afterstep's internal error messages are correct.


       -f streprc_file
              Causes afterstep to use the old streprc_file format
              instead  of  the default /usr/local/share/afterstep
              or user specific ~/GNUstep/Library/AfterStep direc­
              tory,  where the window manager configuration files
              are located. afterstep will set both  the  $DISPLAY
              and  $HOSTDISPLAY  environment variables which will
              be inherited by all of its children; refer  to  the
              -d host:display.screen to override these.


       -s     This  will  run  afterstep  on  only  the specified
              screen of a multi-screen display.  Normally, after­
              step will attempt to manage all screens of a multi-
              screen display and treat each screen independantly.
              The  "specified  screen" is the one provided by the
              $DISPLAY environment variable, or provided  through
              the  -d  displayname  option.   Restarts as well as



afterstep                   Feb 7 2000                          1





afterstep(1.8)                                     afterstep(1.8)


              Quits of afterstep need to be performed  separately
              on  each  screen.   The  use  of  EdgeScroll 0 0 is
              strongly recommended for multi-screen displays.


       -v | --version
              Prints out the version number of afterstep.


       -c | --config
              Prints out the directory configuration specified to
              afterstep at compile time.



INITIALIZATION

       During  initialization, afterstep will search for the con­
       figuration files which define the look,  feel,  and  func­
       tionality.   The  system  default  configuration files are
       located under /usr/local/share/afterstep;  but  if  copied
       (and    edited    to    suit    a    user's    needs)   to
       ~/GNUstep/Library/AfterStep,  these  will   override   the
       global  share files.  If the basic "working" configuration
       files are  not  found  in  either  /usr/local/share/after­
       step/non-configurable  or ~/GNUstep/Library/AfterStep/non-
       configurable, afterstep will  exit.   If  these  "working"
       configuration files have been corrupted or are from a pre­
       vious incompatible  version,  afterstep  will  exit.  Also
       realize  that  a system administrator or software packager
       might have these installed in alternate locations, finding
       them should not be hard.



INVOCATION

       afterstep  is  typically invoked from users' ~/.xinitrc as
       "exec afterstep", located as the last line in  this  file.
       xdm or asdm et al use the ~/.xsession file.



ANATOMY OF THE DESKTOP

       The  default  AfterStep  starts with the module WinList(1)
       running as a dark grey bar originating from the upper left
       corner  of  the  screen.   This is to function in a manner
       similar to the Windows(R) StartBar, where  windows  appear
       when  opened  and  can  be Maximized from. The Pager(1) is
       also started in the upper right hand corner.  This  module
       controls  which  desktop and or view is visable as well as
       handles the graphics picked for the root background. Along
       the  lower  right hand of the screen and moving upwards is
       the module Wharf(1); this acts as a button bar in or  from
       which applications can be started. A default startmenu was
       also provided which was created from  the  default  start/
       directory  structure.  Clicking with the left mouse button
       on the root background will bring this menu up, from which
       applications can be launched. afterstep itself creates the



afterstep                   Feb 7 2000                          2





afterstep(1.8)                                     afterstep(1.8)


       decorations for windows. The top decoration is called  the
       TitleBar;  it  contains  various window action controlling
       buttons along with the window's title. The  lower  decora­
       tion  is  called the Handles (or low bar or BottomBar); it
       contains the window resizing handles.



MODULES

       A Module is a separate program, which runs as  a  separate
       unix process, but transmits commands for afterstep to exe­
       cute.  These Modules get many kinds of window  information
       from  afterstep, but typically use their own configuration
       files. Users can write their own modules to do  any  weird
       or  bizarre manipulations, without affecting the integrity
       of afterstep itself.

       Modules are documented in their own man pages.



ENVIRONMENT VARIABLES

       $SCREEN_GAMMA
              Value of this env variable is used to gamma-correct
              PNG  and JPEG images, when loading them from files.
              Default value of 1.0 is used if  this  variable  is
              not defined - which means no correction at all. Try
              using 2.2 for some older monitors to  get  brighter
              images.



CONFIGURATION DIRECTORIES

       There  are several files within numerous directories which
       control and or provide configurations for afterstep.

       The backgrounds/ directory is where  afterstep  looks  for
       root  background  images  for  insertion into the menu, so
       that picking one of these images causes Pager(1)  to  load
       the  image  into the root background. The Pager(1) must be
       running to utilize the menu Pictures entry.  Valid  images
       are  currently XPM, JPEG, and PNG; provided the associated
       development libraries  were  located  during  compile  and
       libraries are available during runtime.

       The  desktop/ directory contains the buttons/, icons/, and
       sounds/ directories.

       The desktop/buttons/ directory is the  location  afterstep
       looks for the bitmaps or pixmaps to be used for the Title­
       Buttons.  These are the "icons" which control options  for
       a  window, e.g. shaded, iconified, and quit to name a few.
       Pixmaps for the buttons are defined in the look.name  file
       and the actions taken are described in the feel.name file.

       The desktop/icons/  directory  contains  the  icons  which
       afterstep  and  its  modules use. It is divided into three



afterstep                   Feb 7 2000                          3





afterstep(1.8)                                     afterstep(1.8)


       subdirectories,  8bpp/,  16bpp/,  and  common/.  With  the
       default  configuration,  8bpp/  is used only when in 8bpp,
       16bpp/ is used only when in 15bpp or better,  and  common/
       is always used.

       The  desktop/sounds/ directory contains the sounds used by
       afterstep and its modules. See the Audio(1) man  page  for
       more details on sound in AfterStep.

       The  feels/ directory contains configuration files used to
       customize the feel of AfterStep. Any  feel  files  created
       should  be placed within this directory, and upon the next
       rebuild of the startmenu, they  will  appear  under  Desk­
       Top->Feels  in  the  menu. See the feel.name section below
       for more details.

       The looks/ directory contains configuration files used  to
       customize  the  look of AfterStep.  Any look files created
       should be placed within this directory, and upon the  next
       rebuild  of  the  startmenu,  they will appear under Desk­
       Top->Looks in the menu.  See the look.name  section  below
       for more details.

       The  non-configurable/ directory contains "working" copies
       of your configuration  files;  these  are  the  Pager(1)'s
       image  files,  the current feel.name, look.name and start­
       menu files. Editing these files is a futile attempt unless
       you  know  that these files get overwritten; ergo the name
       "non-configurable".

       The start/ directory contains  the  start  menu  directory
       tree,  which  is  used  to  build  the  popup desktop menu
       (startmenu). See the  startmenu  section  below  for  more
       details.

       Also  refer  to the FILES section near the end of this man
       page.



CONFIGURATION OPTIONS - autoexec

       This is the file that initializes various Modules or  pro­
       grams  when afterstep is either started or restared.  Each
       set is handled within Function stanzas.  During the  invo­
       cation of afterstep:
            Function "InitFunction"

       or during a restart called via the menu or other button:
            Function "RestartFunction"
       Refer to the BUILT-IN COMMANDS/FUNCTIONS and EXAMPLES sec­
       tions below.



CONFIGURATION OPTIONS - base.#bpp

       There should exist one base.#bpp  configuration  file  for



afterstep                   Feb 7 2000                          4





afterstep(1.8)                                     afterstep(1.8)


       each  colordepth.   The # can be any of 8, 15, 16, 24, and
       32; which are the colordepths available by most  Xservers.


       ModulePath path[:path]
              Specifies the paths to locate the Modules in.


       IconPath path[:path]
              Specifies the paths to locate the bitmaps in, typi­
              cally used only if XPM, JPEG, or PNG images  aren't
              available. Valid bitmaps are standard X11 XBM's.


       PixmapPath path[:path]
              Specifies  the  paths  to  locate  the  pixmaps in.
              Valid pixmaps are currently XPM, JPEG, and PNG.


       *ScriptPath path[:path]
              Specifies the paths to locate the scripts  for  use
              with the Script Module.

              Refer  to  the Pager(1) man page for the other set­
              tings.



CONFIGURATION OPTIONS - compatibility

       This file is only used with the -f steprc_file option.  It
       defines  a few needed configuration options which were not
       in the old .steprc files.


       PixmapPath path[:path]
              Specifies the  paths  to  locate  the  pixmaps  in.
              Valid pixmaps are currently XPM, JPEG, and PNG.


       TitleButton button unclicked_image clicked_image
              button defines the button location number from 1 to
              10 in the following layout: [1]  [3]  [5]  [7]  [9]
              (title) [10] [8] [6] [4] [2].

              unclicked_image  is the bitmap or pixmap to be used
              during the static state  of  the  associated  buton
              location.

              clicked_image  is  the  bitmap or pixmap to be used
              during a clicked state  of  the  associated  button
              location.


       DrawMenuBorders 0|1|2
              Specifies  the  look  of  the (start)menu.  Using 0



afterstep                   Feb 7 2000                          5





afterstep(1.8)                                     afterstep(1.8)


              will draw the menu with no  border  on  either  the
              menu  label  or  menu  item portions.  Using 1 will
              draw a border around each menu label and around the
              menu  item.  Using 2 will drawn a border around the
              menu label and the entire menu item list.  The bor­
              der  colors are calculated from the BackColor under
              MyStyle menu_item of the look.name.  The  "hilight"
              (top  &  left)  color  is one half lighter than the
              BackColor color and the "shadow" (bottom  &  right)
              is  one  half  darker than the BackColor color.  If
              the BackColor color is black,  the  color  grey  is
              used.



CONFIGURATION OPTIONS - database

       This  file contains window properties for application win­
       dows which controls their "behavior" within afterstep.


       Style "WM_NAME" option[s]
              The "WM_NAME"  can  the  window's  name,  class  or
              resource  string.   It  can  also contain wildcards
              such as "*" or "?", which are matched in the  usual
              UNIX   filename  manner.  Using  the  standard  X11
              xprop(1) command at a command prompt or the  Window
              Properties menu item entry under Desktop menu entry
              will return this (and other) property.
              The option[s] is a comma separated list  containing
              all  or  some  of  the following keywords.  If con­
              flicting style options are specified, the last  one
              will be used:


              FocusStyle [style]
                     Specifies a MyStyle to be used for this win­
                     dow when it  has  the  keyboard  focus.   If
                     style  is  unspecified,  the  default  focus
                     style will be  used  instead  (see  FWindow­
                     Style, below).


              StickyStyle style
                     Specifies a MyStyle to be used for this win­
                     dow when  it  does  not  have  the  keyboard
                     focus,  and is sticky.  If style is unspeci­
                     fied, the default sticky style will be  used
                     instead (see SWindowStyle, below).


              UnfocusStyle style
                     Specifies a MyStyle to be used for this win­
                     dow when  it  does  not  have  the  keyboard
                     focus,  and  is  not  sticky.   If  style is
                     unspecified, the default unfocus style  will



afterstep                   Feb 7 2000                          6





afterstep(1.8)                                     afterstep(1.8)


                     be used instead (see UWindowStyle, below).


              AvoidCover | AllowCover
                     Specifies  that  other windows should not be
                     allowed to cover the app  window.   Prevents
                     other  windows  from  moving in front of (or
                     behind) the app window.   If  SmartPlacement
                     is  specified in the feel file, windows will
                     not be allowed to automatically place  them­
                     selves  over  the  app  window, if possible.
                     AllowCover turns off AvoidCover. The default
                     is AllowCover.


              BorderWidth width
                     Specifying  this  in conjunction with NoHan­
                     dles, sets the border width of a  window  to
                     be width. A width of 0 causes no border.
                      This  option has no affect if not used with
                     NoHandles.  The default is 1 implicitly  for
                     all windows.



              NoFocus | Focus
                     This will set the window to refuse any input
                     focus.  The default is Focus implicitly  for
                     all windows.


              Icon [/path/]name.[xpm|jpg|png] | NoIcon
                     Specifies  the [/path/]name.[xpm|jpg|png] to
                     use when iconified, overriding any icon  the
                     app itself might provide.  NoIcon turns this
                     off for the specified app and the icon  will
                     simply  disappear when the app is iconified.
                     Refer to the EXAMPLES below for a method  to
                     make  all icons disappear. The default is to
                     use the app's  supplied  icon  or  the  icon
                     specified  with  the WM_NAME of "Unknown" or
                     "*".


              NoTitle | Title
                     Specifies that afterstep should  not  put  a
                     title   bar  decoration  on  the  app.   The
                     default is Title implicitly for all windows.


              NoHandles | Handles
                     Specifies  that the app window will not dis­
                     play the "low bar"  decoration.   This  also
                     removes  the  ability to resize windows with



afterstep                   Feb 7 2000                          7





afterstep(1.8)                                     afterstep(1.8)


                     the resize handles on the  "low  bar"  ends.
                     The  default  is  Handles implicitly for all
                     windows.


              WindowListSkip | WindowListHit
                     Specifies that the app name will be  omitted
                     from  both the internal Window List (default
                     click of mouse buttons 2 &  3  on  the  root
                     window), and the WinList(1) module bar.  The
                     default is WindowListHit implicitly for  all
                     windows.


              CirculateSkip | CirculateHit
                     Causes  windows  to be skipped over when the
                     ChangeWindowUp,  ChangeWindowDown  or   Warp
                     (also   called  alt-tabbing)  functions  are
                     invoked.   The   default   is   CirculateHit
                     implicitly for all windows.


              StaysOnTop | StaysPut | StaysOnBack
                     StaysOnTop  causes  the window to always try
                     to stay above all other  open  windows.   If
                     the  window  was explicitly lowered, it will
                     loose this  charateristic  until  explicitly
                     told  to  stay  on  top again by calling the
                     Buit-in   Function   PutOnTop.   StaysOnBack
                     causes  a  window  to  always  try to remain
                     behind all  open  windows.  The  default  is
                     StaysPut  implicitly  for all windows, which
                     doesn't specify any specific stacking  order
                     of open windows.

                     NOTE: deprecated, use Layer instead.


              Layer layer
                     Specifies  what  layer this window should be
                     in.  layer may  be  any  integer  (positive,
                     negative,  or  zero).   Windows  are grouped
                     according to their layer,  and  may  not  be
                     moved out of their layer.  Windows in higher
                     layers will be above windows in  lower  lay­
                     ers.   By  default,  windows  are  placed in
                     layer 0.  StaysOnBack corresponds  to  Layer
                     -1, and StaysOnTop corresponds to Layer 1.


              Sticky | Slippery
                     Causes the app window to stick to it's loca­
                     tion for each desktop that becomes  current,
                     allowing   the   window  to  "follow"  while



afterstep                   Feb 7 2000                          8





afterstep(1.8)                                     afterstep(1.8)


                     changings  desks/  views.   The  default  is
                     Slippery implicitly for all windows.


              StartIconic | StartNormal
                     Causes  the  app  to  start  and immediately
                     iconify itself to the IconBox.  The  default
                     is StartNormal implicitly for all windows.


              StartsOnDesk number | StartsAnyWhere
                     Causes the app window to start on the speci­
                     fied desk number. If SmartPlacement is  used
                     in  the  feel.name  file,  the  window  will
                     appear on the  specified  desk  number,  but
                     will require interaction to place it; unless
                     it was called with geometry  settings.  Spe­
                     cific  Viewports  are also allowed, refer to
                     them below.  The default  is  StartsAnyWhere
                     implicitly for all windows.


              VerticalTitle | HorizontalTitle
                     Causes the window titlebar to be placed ver­
                     tically along the left side of  the  window,
                     instead of horizontally across the top.


              ViewportX number
                     Specifies  the  coordinate  along the x-axis
                     that afterstep should place a window.   This
                     allows opening a window on a particular desk
                     and view.  number is measured in pixels  and
                     the  screen  resolution  is the outline of a
                     desk's particular boundaries; where it  will
                     then  place  it  upon  another desk or view.
                     Combined with ViewportY,  a  window  can  be
                     given geometry by afterstep and be placed in
                     the desired desktop and view.


              ViewportY number
                     Specifies the coordinate  along  the  y-axis
                     that  afterstep should place a window.  This
                     allows opening a window on a particular desk
                     and  view.  number is measured in pixels and
                     the screen resolution is the  outline  of  a
                     desk's  particular boundaries; where it will
                     then place it upon  another  desk  or  view.
                     Combined  with  ViewportX,  a  window can be
                     given geometry by afterstep and be placed in
                     the desired desktop and view.





afterstep                   Feb 7 2000                          9





afterstep(1.8)                                     afterstep(1.8)


              NoButton number | Button number
                     Specifing  a  number to each use of NoButton
                     will cause that buttons  number  to  not  be
                     displayed in the title bar. See TitleButtons
                     above for the number and their  location  on
                     the  title  bar.   The default is to display
                     all buttons defined in the look.name file if
                     the following conditions are met: there is a
                     valid bitmap or  pixmap  specified  for  the
                     button in the look.name file; and the button
                     has not been forced not to  display  by  the
                     use  of Motif WM hints specified (set on) in
                     the feel.name file. The  default  is  Button
                     number implicitly for all windows.


              SuppressIcons
                     Specifies  that  no icon should be shown for
                     any  window  being  iconified,  similar   to
                     NoIcon.



CONFIGURATION OPTIONS - feel.name

       AutoReverse 0|1|2
              Specifies  the window Warping (also called alt-tab­
              bing) style. 0 (the default) causes switching among
              windows  in  one direction.  1 causes a closed loop
              switching - #1->#2->#3->#4 then  #4->#3->#2->#1.  2
              causes an open loop switching - #1->#2->#3->#4 then
              #4->#1->#2->#3 etc.


       AutoTabThroughDesks
              In conjunction with  AutoReverse,  this  will  Warp
              (alt-tab) through windows on all desks.


       AutoRaise delay
              Specifies the delay in milliseconds of focus a win­
              dow must attain before being raised.


       MWMFunctionHints
              Adds support  for  Motif  window  manager  function
              hints.


       MWMDecorHints
              Adds  support  for  Motif window manager decoration
              hints.


       MWMHintOverride
              Allows Motif window manager function  hints  to  be



afterstep                   Feb 7 2000                         10





afterstep(1.8)                                     afterstep(1.8)


              overridden by afterstep window styles.


       Xzap number
              Specifies  the horizontal offset of the cursor when
              warping. This offset is relative to the  upper-left
              corner of the window being warped to.


       Yzap number
              Specifies  the  vertical  offset of the cursor when
              warping. This offset is relative to the  upper-left
              corner of the window being warped to.


       KeepIconWindows
              Specifies  that  applications  should be allowed to
              specify their own icon windows.


       Titlebarnopush
              Specifying this will disable the illusion that  the
              title  bars  are  being  pressed when clicked upon.
              Without this option, clicking the  title  bar  will
              cause  it to invert its colors, making it appear to
              be a 3D button being pressed in.


       ClickToFocus
              Specifies that the keyboard input (aka focus) stays
              with  one  window  until a new window's TitleBar is
              clicked on, or gains focus through Warping  or  de-
              iconification.


       ClickToRaise buttons
              Specifies that windows should be raised when a but­
              ton is clicked in the titlebar, handle  (low  bar),
              or application area.  buttons specifies the list of
              buttons which triggers this function.

              In AutoRaise mode  this will simply raise the  win­
              dow  if the click is before the delay  specified in
              AutoRaise.  In ClickToFocus mode, this  will  raise
              the window and give it focus.


       SloppyFocus
              Specifies that windows retain focus until the mouse
              moves to another window, or Warping causes  another
              window to gain focus.

              SloppyFocus  has  no effect if ClickToFocus is also
              specified.



afterstep                   Feb 7 2000                         11





afterstep(1.8)                                     afterstep(1.8)


       StubbornIcons
              Specifies that  icons  should  uniconify  to  their
              original  desk.  By default, icons uniconify to the
              current desk.


       StubbornPlacement
              Specifies  that  new  windows  should  avoid  being
              placed over icons.



       StubbornIconPlacement
              Specifies  that  icons  should  avoid  being hidden
              behind windows placed over the  IconBox  by  moving
              themselves around (dancing icons).


       IconTitle
              Specifies that a title should be displayed under an
              iconified app.  The colors used are  the  ForeColor
              and  BackColor of the unfocused_window_style in the
              look.name file. Note: less space is  left  for  the
              app's icon, so it will be resized acordingly.  Only
              a portion of the icon title will be displayed until
              the icon gains focus, and then the title "box" will
              expand to reveal the window's entire name.


       StickyIcons
              Specifies that icons should stick to  the  screen's
              glass and follow it from desk/view to desk/view.


       CirculateSkipIcons
              Specifies  that  all  icons  should be skipped when
              Warping (alt-tabbing) between windows.


       CenterOnCirculate
              Specifies  that  when  Warping  (alt-tabbing),  the
              desktop  page  containing  the  window to which the
              pointer is moving will  be  automatically  selected
              and  afterstep  will  attempt  to center the target
              window in the desktop viewport,  rather  than  just
              flipping to the desktop the window resides in.


       ClickTime delay
              Specifies  that afterstep should consider two mouse
              clicks made within delay milliseconds to be a  dou­
              ble  mouse  click, and not two single mouse clicks.
              The default delay is 150 milliseconds.




afterstep                   Feb 7 2000                         12





afterstep(1.8)                                     afterstep(1.8)


       OpaqueMove %
              Specifies the maximum size window where opaque win­
              dow  movement  should be used.  % is percent of the
              total screen area.  Set to 0, all windows  will  be
              moved  using  the  traditional rubber-band outline.
              Set to 100, all windows will be move as solid  win­
              dows.  The  default is 5 which allows small windows
              to be moved in an opaque manner, but large  windows
              to  be  moved  as  rubber-bands.  Using this option
              with large values can slow down video  response  on
              slower systems.


       OpaqueResize %
              Specifies  the  maximum  size  window  where opaque
              resizing should be used.  % is percent of the total
              screen area.  Set to 0, all windows will be resized
              using the traditional rubber-band outline.  Set  to
              100,  all windows will be resized as solid windows.
              The default is 5 which allows small windows  to  be
              resized  in  an opaque manner, but large windows to
              be resized as rubber-bands.  Using this option with
              large values can slow down video response on slower
              systems.


       EdgeScroll horizontal vertical
              Specifies the percentage of a page to  scroll  when
              the  cursor  hits the edge of a page. Setting Edge­
              Scroll to 0 0 will disable scrolling.  Setting this
              option  to  100 100 will scroll whole pages. Set to
              1000 1000, scrolling will wrap around at  the  edge
              of  the  desktop.   Both  horizontal  and  vertical
              should be positive numbers.


       EdgeResistance delay pixels
              Specifies how hard it should  be  to  change  views
              within  a desktop by moving the mouse over the edge
              of the screen, and how hard it should be to move  a
              window over the edge of a screen.

              The  delay  in  milliseconds,  defines how long the
              pointer must spend at the screen edge  before  that
              view  becomes  current.  This is useful in conjunc­
              tion with EdgeScroll 100 100, so  the  views  don't
              get switched accidently.

              The  pixels  defines how far over the edge a window
              must "appear" to move before it actually moves par­
              tially off the screen.

              Note that with EdgeScroll 0 0, it is still possible
              to move or resize windows across the  edge  of  the



afterstep                   Feb 7 2000                         13





afterstep(1.8)                                     afterstep(1.8)


              current  screen. By setting the pixels parameter of
              EdgeResistance to 10000, this  type  of  motion  is
              impossible. However, with EdgeResistances less than
              10000,  but  greater  than  0,  moving  over  pages
              becomes difficult but not impossible.


       SmartPlacement
              Specifies  that  windows be placed in areas that no
              other windows occupy, otherwise  user  intervention
              becomes  required  for  placement.   Have  fun, try
              specifying both. :-)


       RandomPlacement
              Specifies that windows which would normally require
              user  intervention  for  placement be automagically
              placed in ever-so-slightly random locations.


       NoPPosition
              Species that afterstep should ignore the  PPosition
              field  when  placing  new  windows, in other words,
              windows can't choose  where  to  place  themselves.
              Adherence  to  the  PPosition field is required for
              some applications.


       DecorateTransients
              Specifies that  transient  windows  (pop-up  dialog
              boxes), which are normally not decorated, should be
              given the usual title and  low  bars.   Note:  some
              pop-up  windows  and  menus  are not managed by the
              window manager, so do not get these decorations.


       AppsBackingStore
              Specifies that app windows should  request  backing
              store.   X-terminals  and low memory systems should
              avoid  this  as  redrawing  will  be  quicker  than
              pulling  the  saved image from swap space.  Backing
              store will always be faster than redraw on machines
              that have enough memory. This causes non-ICCCM com­
              pliance.


       BackingStore
              Specifies that decorations should  request  backing
              store.  Refer to AppsBackingStore above for further
              details.


       SaveUnders
              Specifies  that  afterstep  frames  should  request



afterstep                   Feb 7 2000                         14





afterstep(1.8)                                     afterstep(1.8)


              saveunders.   This  will  cause  afterstep  to save
              those portions of windows that are not  visible  to
              system  memory.  This can significantly improve the
              performance during opaque moves, but  it  causes  a
              significant  increase  in  memory  usage.  This can
              also cause garbled display with some  applications.


       DontMoveOff
              Specifies  that  windows should not be moved off or
              initially placed off of the desktop.   A  few  pro­
              grams  will  not  work  correctly  if  you use this
              option.  This only keeps windows  from  being  com­
              pletely  lost  off  the  edge  of  the  desktop. It
              insists on keeping 16 pixels on  the  desktop,  but
              does  not  attempt to keep the entire window on the
              desk.


       XorValue value
              Specifies the value with which bits are XOR'ed when
              doing  rubber-band  window moving or resizing. Set­
              ting this value is a trial-and-error process.


       MenusHigh
              Specifies that any  pop-up  menu's  submenu  should
              appear  at  the  top  of the parent menu instead of
              starting at the point in the  parent  window  where
              the submenu item lies.


       PagingDefault 0|1
              Specifies  if  Paging should be enabled (1) or dis­
              abled (0).  Paging is set to enabled by default.


       Cursor cursor_number cursor_type
              Specifies the cursor_type for the given cursor_num­
              ber.   Valid  cursor_numbers  are  0  though 10 and
              listed in all the shipped feel.name files. The cur­
              sor_types are listed in the
               /usr/include/X11/cursorfont.h file.


       Functions
              Specifies  a  function definition and is covered in
              the BUILT-IN COMMAND/FUNCTION below.


       Popup  Specifies a menu popup definition and is covered in
              the BUILT-IN COMMAND/FUNCTION below.





afterstep                   Feb 7 2000                         15





afterstep(1.8)                                     afterstep(1.8)


       Mouse button context modifier Command
              Specifies a mouse binding definition. button is the
              mouse button number [0, 1, 2, or 3]. If  button  is
              zero, then any mouse button invoked issues the Com­
              mand.  context  describes  where  the  mouse  click
              occurred  and can be any combination of the follow­
              ing:

                 R = Root window (main background)
                 F = Window Frame (the BottomBar handle corners)
                 S = Window TitleBar or BottomBar
                 I = Iconified Button (minimized window icon)
                 T = Window TitleBar
                 W = Application Window
                 A = Any of the above except for TitleButtons
              1-10 = TitleButton number of the TitleBar, corresponds to the
                     entry in the look.name file

              The action to be taken by the  defined  TitleButton
              is  defined  in  the  feel.name  file.   Defining a
              TitleButton without having a corresponding entry in
              the  feel.name file will cause the TitleButton icon
              to be displayed, but not react when pressed.

              modifier is the key-stroke  combination  associated
              with the context entry, to issue the Command. Valid
              modifier's are:

                 N = No modifiers
                 C = Control
                 S = Shift
                 M = Meta
                 A = Any modifier

              Command can  be  any  afterstep  Built-in  command/
              function, Popup or user defined Function.


       Key keyname context modifier Command
              Specifies  a key-stroke binding definition, similar
              to Mouse above.  keyname is the keyboard key  name.
              Valid     keyname's     are     found     in    the
              /usr/X11/include/X11/keysymdef.h file and are spec­
              ified  here without the leading "XK_".  The context
              describes where the mouse is resting when the  key­
              name  is  pressed  and can be any combinationof the
              following:

                 R = Root window (main background)
                 F = Window Frame (the BottomBar handle corners)
                 S = Window TitleBar or BottomBar
                 I = Iconified Button (minimized window icon)
                 T = Window TitleBar
                 W = Application Window



afterstep                   Feb 7 2000                         16





afterstep(1.8)                                     afterstep(1.8)


                 A = Any of the above except for TitleButtons
              1-10 = TitleButton number of the TitleBar [ not very useful here ]

              modifier is the key-stroke  combination  associated
              with the context entry, to issue the Command. Valid
              modifier's are:

                 N = No modifiers
                 C = Control
                 S = Shift
                 M = Meta
                 A = Any modifier

              Command can  be  any  afterstep  Built-in  command/
              function, Popup or user defined Function.



CONFIGURATION OPTIONS - look.name

       ButtonTextureType type
              Deprecated.  Use MyStyle "ButtonPixmap" instead.


       ButtonMaxColors maximum
              Deprecated.  Use MyStyle "ButtonPixmap" instead.


       ButtonBgColor color
              Deprecated.  Use MyStyle "ButtonPixmap" instead.


       ButtonTextureColor from to
              Deprecated.  Use MyStyle "ButtonPixmap" instead.


       ButtonPixmap pixmap_name
              Deprecated.  Use MyStyle "ButtonPixmap" instead.


       DecorateFrames [0|1]
              Specifies  that  windows  should not have a lowbar,
              and should have  a  frame.   The  frame  width  and
              height  are  defined by the width and height of the
              associated  pixmaps  (see  FrameNorth,  FrameSouth,
              etc).


       FrameNorth pixmap_name
              Specifies  the  pixmap  to  be displayed in the top
              border of the window frame, DecorateFrames is  set.
              See   BackPixmap   below   for   details   on  what
              pixmap_names are allowed.






afterstep                   Feb 7 2000                         17





afterstep(1.8)                                     afterstep(1.8)


       FrameSouth pixmap_name
              Specifies the pixmap to be displayed in the  bottom
              border  of  the  window frame, if DecorateFrames is
              set. See  BackPixmap  below  for  details  on  what
              pixmap_names are allowed.


       FrameEast pixmap_name
              Specifies  the  pixmap to be displayed in the right
              border of the window frame,  if  DecorateFrames  is
              set.  See  BackPixmap  below  for  details  on what
              pixmap_names are allowed.


       FrameWest pixmap_name
              Specifies the pixmap to be displayed  in  the  left
              border  of  the  window frame, if DecorateFrames is
              set. See  BackPixmap  below  for  details  on  what
              pixmap_names are allowed.


       FrameNE pixmap_name
              Specifies  the  pixmap  to  be displayed in the top
              right corner of the window frame, if DecorateFrames
              is  set.  See  BackPixmap below for details on what
              pixmap_names are allowed.


       FrameSE pixmap_name
              Specifies the pixmap to be displayed in the  bottom
              right corner of the window frame, if DecorateFrames
              is set. See BackPixmap below for  details  on  what
              pixmap_names are allowed.


       FrameNW pixmap_name
              Specifies  the  pixmap  to  be displayed in the top
              left corner of the window frame, if  DecorateFrames
              is  set.  See  BackPixmap below for details on what
              pixmap_names are allowed.


       FrameSW pixmap_name
              Specifies the pixmap to be displayed in the  bottom
              left  corner of the window frame, if DecorateFrames
              is set. See BackPixmap below for  details  on  what
              pixmap_names are allowed.


       MArrowPixmap pixmap_name
              Specifies  a pixmap to use as the submenu indicator
              in popup menus. See BackPixmap below for details on
              what pixmap_names are allowed.




afterstep                   Feb 7 2000                         18





afterstep(1.8)                                     afterstep(1.8)


       MenuPinOn pixmap_name
              Specifies  a pixmap to use as the pinned menu indi­
              cator in popup menus.   See  BackPixmap  below  for
              details on what pixmap_names are allowed.


       MenuPinOff pixmap_name
              Specifies  a  pixmap  to  use  as the unpinned menu
              indicator in popup menus.  See BackPixmap below for
              details on what pixmap_names are allowed.


       TexturedHandle
              Specifies  that the resize handles on the bottom of
              windows should be textured.  The  titlebar  texture
              will be used.


       TextGradientColor from to
              Specifies  a  gradient to be applied to the focused
              window titlebar text.  TextGradientColor is ignored
              unless  GradientText  is  also  given. The gradient
              colors start at from and end at to.   from  and  to
              are standard X11 color definitions.


       GradientText
              Specifies that the gradient specified by TextGradi­
              entColor should be applied to  the  focused  window
              titlebar text.


       ButtonNoBorder
              Specifies  that  the  border  normally drawn around
              iconified windows should be omitted.


       DrawMenuBorders border_style
              Specifies the menu border style.  border_style  can
              be one of the following:

              0: no borders
              1: borders around each title and each item
              2: borders around each title and all items
              3: borders around each title, all items, and the hilighted item


       TextureMenuItemsIndividually texture_style
              Specifies  how  textures  should be applied to menu
              items. If texture_style is 0, menu items  are  tex­
              tured as a group. If texture_style is 1, menu items
              are textured individually.  This option is  ignored
              if  the  menu item MyStyle background uses a trans­
              parency effect.



afterstep                   Feb 7 2000                         19





afterstep(1.8)                                     afterstep(1.8)


       SeparateButtonTitle onoff
              Specifies where iconified window titles  should  be
              drawn.   If  onoff is 0, the title will be drawn at
              the top of the icon.  If onoff is 1, the title will
              be  drawn  in  a  separate  window at the below the
              icon.  The default value of onoff is 1.


       ButtonSize width height
              Specifies the size  of  iconified  windows.   Every
              iconified  window button will be exactly width pix­
              els wide and height  pixels  high.   This  includes
              titles drawn at the top, but not the separate title
              window created by SeparateButtonTitle.   If  either
              width  or  height  is less than one, that dimension
              will not be fixed.  The default is ButtonSize 0  0.


       ResizeMoveGeometry geom
              Specifies  the  location of the resize/move window.
              If this option is not  specified,  the  move/resize
              window will be centered on the screen.  geom may be
              any one of the following:

              ++: upper-left corner
              -+: upper-right corner
              +-: lower-left corner
              --: lower-right corner


       MenuMiniPixmaps minis
              Specifies whether mini pixmaps should  be  included
              in  menus.  If  minis  is  0,  mini pixmaps are not
              included. If minis is 1, mini pixmaps are included.
              Note  that  mini pixmaps will not be added to menus
              until the next time menus are updated. Mini pixmaps
              can  cause  AS  to  take much longer to load over a
              network.


       IconFont font
              Deprecated.  Use MyStyle "ButtonPixmap", "ButtonTi­
              tleFocus", "ButtonTitleSticky", and "ButtonTitleUn­
              focus" instead.


       IconBox left top right bottom
              Specifies a region of the screen in which to  place
              iconified  windows.  Up  to  four icon boxes can be
              defined. If an  IconBox  is  provided,  icons  will
              automatically  be placed in them, if possible. Oth­
              erwise, they will be placed in the upper left  cor­
              ner of the screen. Each time a window is iconified,
              a new place is found for it, unless  the  icon  has



afterstep                   Feb 7 2000                         20





afterstep(1.8)                                     afterstep(1.8)


              been moved manually. An available space is searched
              for from left to right, then top to  bottom.  Icons
              will  not  be  automatically placed on top of other
              icons, but they may be placed  underneath  applica­
              tion  windows if StubbornIconPlacement has not been
              specified. If  left  or  right  is  negative,  then
              AfterStep  will add the screen width to it.  If top
              or bottom is negative, then AfterStep will add  the
              screen  height to it. Note that -0 is not parsed as
              the right or bottom pixel on  the  screen.  Use  -1
              instead.  The  IconBox will normally be filled from
              left to right, then top to bottom.  However, if the
              right  edge  of  the IconBox is closer to the right
              edge of the screen than the left edge of the  Icon­
              Box is to the left edge of the screen, then it will
              be filled from right to left.  Similarly for top to
              bottom.  For example, "2 2 -1 -1" will result in an
              IconBox which fills from right to left, then bottom
              to top.


       RubberBand type
              Specifies the RubberBand type to use when moving or
              resizing non-opaque windows.  There are 3 styles:

              0: the window is represented as a number of rectangles
              1: one rectangle the size of the window
              2: one crossed-out rectangle the size of the window.


       TitleTextAlign alignment
              Specifies the alignment of the window title in the titlebar.  The
              allowable values for alignment are as follows:

              1: left aligned
              2: right aligned
              3: center aligned (default)


       TitlebarNoPush
              Specifies that the titlebar should not to appear to
              be  "pushed  in"  when clicked with a mouse button.
              This is useful to reduce video strain  or  if  tex­
              tured pixmaps that do not look good "pushed in" are
              used.


       TitleButton num pixmap_name
              Specifies a pixmap to use as a titlebar button.  Up
              to 10 buttons are possible. num specifies the posi­
              tion of the button on the window and is an  integer
              from 1 to 10. The positions are indicated as below:
              [1] [3] [5] [7] [9] TitleBarText [10] [8] [6] [4] [2]




afterstep                   Feb 7 2000                         21





afterstep(1.8)                                     afterstep(1.8)


              The action to be taken by the  defined  TitleButton
              is  defined  in  the  feel.name  file.   Defining a
              TitleButton without having a corresponding entry in
              the  feel.name file will cause the TitleButton icon
              to be displayed, but not react when pressed.


       TitleButtonStyle num
              Specifies how much space is  put  between  leftmost
              and  rightmost  titlebar  buttons, and the edges of
              the titlebar. If num is 0, there  is  a  two  pixel
              buffer the buttons and the edge. If num is 1, there
              is no space between the buttons and the edge.


       TitleButtonSpacing num
              Specifies how much space (in pixels) to put between
              titlebar buttons.


       TitleButtonBalloons
              Turns  on  the balloon feature. A "balloon" is dis­
              played showing the function(s) bound to a  titlebar
              button. The balloon background and text are config­
              ured with the MyStyle "TitleButtonBalloon".


       TitleButtonBalloonBorderWidth number
              Sets the width  of  the  balloon  window's  border.
              Defaults to 1.


       TitleButtonBalloonBorderColor color
              Sets  the  color  of  the  balloon window's border.
              Defaults to black.


       TitleButtonBalloonYOffset number
              The balloon window is positioned to be horizontally
              centered against the titlebar button it is describ­
              ing. The vertical position may be set as an offset.
              Negative  offsets  of  -N are placed N pixels above
              the pager window, positive offsets of +N are placed
              N pixels below. Defaults to +2.


       TitleButtonBalloonDelay number
              Specifies  the  period in milliseconds to delay the
              appearance of the balloon.


       DefaultStyle "style_name"
              Specifies the MyStyle to use when no style has been
              specifically  defined  for  a given situation. Note



afterstep                   Feb 7 2000                         22





afterstep(1.8)                                     afterstep(1.8)


              that if a style named "default"  has  been  defined
              and  DefaultStyle has not, the "default" style will
              be used as the default.


       FWindowStyle "style_name"
              Specifies the MyStyle to use for the focused window
              decorations.


       UWindowStyle "style_name"
              Specifies the MyStyle to use for the unfocused win­
              dow decorations.


       SWindowStyle "style_name"
              Specifies the MyStyle to use for the sticky  window
              decorations.


       MenuItemStyle "style_name"
              Specifies the MyStyle to use for menu items.


       MenuTitleStyle "style_name"
              Specifies the MyStyle to use for menu titles.


       MenuHiliteStyle "style_name"
              Specifies  the  MyStyle  to  use for hilighted menu
              items.


       MenuStippleStyle "style_name"
              Specifies the MyStyle  to  use  for  stippled  menu
              items.


       MyStyle "ButtonPixmap"
              Specifies the background tile of iconified windows.
              Inherits from the old ButtonPixmap, IconFont,  But­
              tonTextureType, ButtonMaxColors, ButtonBgColor, and
              ButtonTextureColor options, and also inherits  from
              FWindowStyle.


       MyStyle "ButtonTitleFocus"
              Specifies   how  focused  iconified  window  titles
              should look.  Inherits from FWindowStyle.


       MyStyle "ButtonTitleSticky"
              Specifies how sticky iconified window titles should
              look.  Inherits from SWindowStyle.



afterstep                   Feb 7 2000                         23





afterstep(1.8)                                     afterstep(1.8)


       MyStyle "ButtonTitleUnfocus"
              Specifies  how  unfocused  iconified  window titles
              should look.  Inherits from UWindowStyle.


       MyStyle "style_name"

         style_option

       ~MyStyle
              Specifies the beginning of a look style definition.
              The  style  can be referred to later by style_name.
              ~MyStyle ends a look style definition. The possible
              style_options follow:


              Font font
                     Specifies  the  font  associated  with  this
                     style. font is a standard X11  font  defini­
                     tion.


              ForeColor color
                     Specifies  the  text  color  associated with
                     this style. color is a  standard  X11  color
                     definition.


              BackColor color
                     Specifies  the  background  color associated
                     with this style. color  is  a  standard  X11
                     color definition.


              TextStyle style
                     Specifies  the  text  style  associated with
                     this style. style can be 0, 1, or 2:

                     0: normal text
                     1: 3d effect #1
                     2: 3d effect #2


              DrawTextBackground [0|1]
                     Specifies that the area behind text drawn in
                     this  style  should be cleared to BackColor.
                     The argument is optional.  If  the  argument
                     is  0,  this  option is turned off; if it is
                     omitted or is nonzero, the option is  turned
                     on.


              MaxColors maximum
                     Specifies  the maximum number of colors that



afterstep                   Feb 7 2000                         24





afterstep(1.8)                                     afterstep(1.8)


                     the BackGradient can  use.  jpegs  specified
                     with BackPixmap will also be limited to this
                     number of colors.


              BackGradient type from to
                     Specifies that a gradient should be used  as
                     a  background  instead of a solid color. The
                     gradient colors start at from and end at to.
                     from  and  to are standard X11 color defini­
                     tions. type can be 1, 2, 3, 4, or 5:

                     1: Wharf-style diagonal gradient
                     2: Horizontal from top to bottom
                     3: Horizontal from top/bottom to center
                     4: Vertical from left to right
                     5: Vertical from left/right to center


              BackMultiGradient type offset1 color1 ... offsetN
              colorN
                     Specifies  that a gradient should be used as
                     a background instead of a solid  color.  The
                     gradient  colors  start at color1 and end at
                     colorN. Each color has an offset  associated
                     with  it. The offset is a number between 0.0
                     and 1.0, and specifies where in the gradient
                     the colors are to be placed.  The colors are
                     standard X11 color definitions. At least two
                     colors  must  be given. The offsets are non-
                     decreasing numbers between 0.0 and  1.0.  If
                     the  first offset is not 0.0, it will be set
                     to 0.0. If the last offset is  not  1.0,  it
                     will  be  set to 1.0. type may be any of the
                     following:

                     6: diagonal from top-left to bottom-right
                     7: diagonal from bottom-left to top-right
                     8: left to right
                     9: top to bottom


              BackPixmap type pixmap_name|color_name
                     Specifies that a pixmap should be used as  a
                     background  instead  of  a solid color. This
                     option has two forms, depending on the value
                     of  type. If type is 128, the second parame­
                     ter, pixmap_name must be the name of an xpm,
                     jpeg,  or  png  image  which can be found in
                     PixmapPath. If type is 129, the root  pixmap
                     (desktop  background)  will be used, and the
                     optional second parameter must  be  a  color
                     with  which  the root pixmap will be shaded.
                     If type is 130,  the  root  pixmap  will  be



afterstep                   Feb 7 2000                         25





afterstep(1.8)                                     afterstep(1.8)


                     averaged  with the specified pixmap, and the
                     result will be used as the  background.   In
                     order for type 129 or type 130 to work prop­
                     erly, your desktop background must be set by
                     a  program  that also sets the _XROOTPMAP_ID
                     property on the root window, such  as  aset­
                     root or Esetroot.

                     128: tiled pixmap from the upper left
                     129: "transparent" (or tinted with color)
                     130: translucent pixmap


              Inherit "style_name"
                     Specifies a MyStyle to inherit options from.
                     Options from style_name will override previ­
                     ously  specified  options  for  this  style.
                     Inherit is a good way  to  save  memory  and
                     network  bandwidth if the same BackPixmap is
                     used for several styles, as the pixmap  will
                     only be loaded for the inherited style.



CONFIGURATION OPTIONS - startmenu

       The  startmenu  is built from the start/ tree by utilizing
       files which have the menu items as command strings  within
       them.   The basic structure of a command string is as fol­
       lows:

       Exec "name" exec command [-options]

       Where Exec is a built-in command (see  below);  "name"  is
       what  will  appear  as the entry in the created startmenu;
       exec invokes a subprocess  (via  exec(3))  for  the  given
       "command";  and  "command"  is  whatever  program is to be
       invoked along with any "-options" that might be desired.


       .include

              Any directory in the start/ directory tree may have
              an .include file. Also, any directory which is sub­
              sequently included (via this include directive) may
              also  have  an .include file.  Valid entries for an
              .include file are as follows:


              Command command [args]
                     Specifies an AfterStep function to apply  to
                     all items in this directory.  Does not apply
                     to subdirectories or  included  directories.
                     The resulting function will be:

                     command        "menu        name"       args



afterstep                   Feb 7 2000                         26





afterstep(1.8)                                     afterstep(1.8)


                     /menu/item/full/path


              Extension ext
                     Specifies an extension  to  strip  from  all
                     filenames in this directory prior to placing
                     them in the menu as menu  item  names.   For
                     example,  an  ext  of "look." will cause the
                     file "look.DEFAULT" to show up as  "DEFAULT"
                     in  the  menu,  and an ext of ".tar.gz" will
                     cause the file "theme.tar.gz" to show up  as
                     "theme" in the menu.


              Include "path" [command [args]]
                     Specifies  the  path  to  another directory,
                     whose contents  will  be  included  in  this
                     menu.  If  command  is  given,  it  will  be
                     applied to all items in the included  direc­
                     tory  as  if a Command directive (see above)
                     had been given, except  that  subdirectories
                     of the included directory are also affected.


              KeepName
                     Specifies that the directory name should  be
                     retained  when  creating the distilled menu,
                     so that it can be referred to by name  in  a
                     PopUp statement (see BUILT-IN COMMANDS/FUNC­
                     TIONS, below). The toplevel menu (start) has
                     this option on by default.


              MiniPixmap pixmap
                     Specifies a pixmap to display to the left of
                     the menu item which invokes this  menu,  and
                     in the title of this menu.


              Name name
                     Specifies  the  name  of  this folder in the
                     final menu displayed to the user. This  name
                     will  be overridden if the folder's filename
                     includes an order;  use  the  order  command
                     (below), instead.


              Order order
                     Specifies  where in its parent menu the item
                     which invokes this  menu  should  appear.  A
                     menu  without  this  option will be given an
                     order of 10000 by default.





afterstep                   Feb 7 2000                         27





afterstep(1.8)                                     afterstep(1.8)



BUILT-IN COMMANDS/FUNCTIONS

       afterstep supports a small set of built in functions which
       can  be bound to key-stroke combinations or mouse buttons.
       These can also be embeded within  Function  statements  or
       within menu statements in a feel.name file. NOTE: ["name"]
       in the following is used in a popup or menu item entry  to
       define  the name which will appear in said pop-up or menu.


       Nop "" Inserts a horizontal line (<HR> type html line)  in
              a menu entry list.


       Nop "name"
              Inserts  a name in the menu, stippled (disabled and
              grayed-out).


       Title "name"
              Insert a title line of heading name into a popup or
              menu.


       Beep   Make  the window manager issue a beep - pretty use­
              ful eh? :)


       Quit ["name"]
              Exits afterstep, generally causing X to exit too.


       Restart "name" WindowManagerName
              Restarts X(1) with the given WindowManagerName.  If
              WindowManagerName  isafterstep,  then  this  forces
              afterstep to reread all of its configuration  files
              and  reinitiate  the session.  If WindowManagerName
              is not in the default search path,  then  the  full
              path name should be given.


       Refresh ["name"]
              Causes  all  windows on the screen to re-draw them­
              selves.


       Move ["name"]
              Allows the user to move a window or iconified  app.


       Resize ["name"]
              Allows the user to resize a window.






afterstep                   Feb 7 2000                         28





afterstep(1.8)                                     afterstep(1.8)


       Raise ["name"]
              Allows the user to raise a window.


       Lower ["name"]
              Allows the user to lower a window.


       RaiseLower ["name"]
              Alternately  raises  and  lowers  a window; i.e. if
              it's raised, the window will lower, and vice versa.


       PutOnTop
              Moves the target window to the top of its layer, or
              up one layer if it is already at the top.


       PutOnBack
              Moves the target window to the bottom of its layer,
              or down one layer if it is already at the bottom.


       SetLayer layer
              Moves the target window to layer layer.


       ToggleLayer layer1 layer2
              Specifies  that  if  the  window  is  in layer1, it
              should be  placed  in  layer2.   Otherwise,  it  is
              placed  in layer1.  In either case, the window will
              be placed on top of other  windows  in  the  target
              layer.


       Shade ["name"]
              Emulates the MacOS WindowShade feature.  Once acti­
              vated the window will become a titlebar only.


       Delete ["name"]
              Sends a WM_DELETE message to a window  asking  that
              it  remove  itself, frequently causing the applica­
              tion to exit.


       Destroy ["name"]
              Sends the XKillClient(3) to a window. Guaranteed to
              get rid of the window.


       Close ["name"]
              First  sends  the WM_DELETE message, if this is not
              understood, then the XKillClient(3) is sent to  the



afterstep                   Feb 7 2000                         29





afterstep(1.8)                                     afterstep(1.8)


              window.


       Iconify ["name"] [value]
              Iconifies  a window if it is not already iconified,
              or de-iconifies it if it is already  iconified.  If
              the  optional argument value is positive, then only
              iconification will be allowed, and de-iconification
              will be inhibited. If the optional argument is neg­
              ative, only de-iconification will be allowed.


       Maximize ["name"] [horizontal vertical]
              Causes the window  to  alternately  switch  from  a
              full-screen  size  to  its normal size.  Specifying
              the optional arguments of horizontal and  vertical,
              control can be attained as to the percentage of the
              full  screen  that  the  new  size  of  the  window
              becomes.   If  horizontal  > 0, then the horizontal
              dimension of the window will  be  set  to  horizon­
              tal*screen_width/100. The vertical resizing is sim­
              ilar. Values larger than 100 can be used with  cau­
              tion.  The defaults for horizontal and vertical are
              100s (ie, fullscreen).


       Stick ["name"]
              Makes  a  window  sticky  (stays  on  screen   when
              desks/views  are  switched)  if  it  is not already
              sticky, or non-sticky if it is already sticky.


       Scroll horizontal vertical
              Scrolls the desktop's view by horizontal  pages  in
              the x-direction, and vertical pages in the y-direc­
              tion. Either or both entries may be negative.  Both
              horizontal  and  vertical  values  are expressed in
              percent of pages, so 100 would be  one  full  page.
              Normally,  scrolling stops at the edge of the desk­
              top.  If the horizontal  and  vertical  values  are
              multiplied by 1000, then scrolling will wrap around
              at the edge of the desktop.

              The scroll function should not be called from  pop-
              up menus.


       TogglePage ["name"]
              Temporarily  disables  EdgeScroll.   Edge scrolling
              can be re-enabled by calling this again.


       CursorMove horizontal vertical
              Moves the mouse pointer by horizontal views in  the



afterstep                   Feb 7 2000                         30





afterstep(1.8)                                     afterstep(1.8)


              x-direction, and vertical views in the y-direction.
              Either or both entries may be negative. Both  hori­
              zontal and vertical values are expressed in percent
              of pages, so 100 would be one full view.

              The CursorMove function should not be  called  from
              pop-up menus.


       ChangeWindowUp ["name" window_name]
              Causes  the  pointer to move to the previous window
              in the list of windows for which CirculateSkip  has
              not not been specified.

              The  mouse will jump to the first window whose name
              (or icon name or class)  matches  window_name.  The
              "name"  entry  then becomes required, but serves no
              purpose if the function is not called from  a  menu
              or popup.


       ChangeWindowDown ["name" window_name]
              Causes  the  pointer to move to the previous window
              in the list of windows for which CirculateSkip  has
              not not been specified.

              The  mouse will jump (going backwards) to the first
              window whose name (or icon name or  class)  matches
              window_name.   The   "name"   entry   then  becomes
              required, but serves no purpose if the function  is
              not called from a menu or popup.


       WarpFore ["name" window_name]
              Same  as ChangeWindowUp, but uniconifies any iconi­
              fied windows as it focuses on them.


       WarpBack ["name" window_name]
              Same  as  ChangeWindowDown,  but  uniconifies   any
              iconified windows as it focuses on them.


       Wait app_name
              This  is intended to be used in afterstep functions
              only. It causes execution of a  function  to  pause
              until  a new window named app_name appears.  after­
              step remains fully functional during a  wait.  This
              is  particularly  useful  in  the  InitFunction and
              RestartFunction, if you are trying to start windows
              on specific desktops.


       Focus  Moves  the  view  or  window  as needed to make the



afterstep                   Feb 7 2000                         31





afterstep(1.8)                                     afterstep(1.8)


              selected window visible.  Sets the  keyboard  focus
              to the selected window. Raises the window if needed
              to make it visible.  Warps  the  pointer  into  the
              selected window in focus-follows-mouse  mode.  Does
              not de-iconify.  This function is  primarily  handy
              when used with a module such as the WinList.


       Desk arg1 [arg2]
              Changes  current  desk  to another desk as surmised
              from the arguments supplied.  If only arg1 is spec­
              ified  and  is non-zero, then the current desk will
              become "desk + arg1" and arg2 is ignored.  If  arg1
              is  zero,  then  arg2  must be specified or no desk
              change will occur; and arg2 will specify  the  desk
              to  switch to.  Desk numbers are determined dynami­
              cally  and   must   be   between   2147483647   and
              -2147483648; meaning they can also be negative.


       WindowsDesk new_desk
              Moves  the selected window to the desktop specified
              as new_desk.


       GotoPage x y
              Moves the desktop view to page x y. The upper  left
              page is (0,0), the upper right is (N,0), where N is
              one less than  the  current  number  of  horizontal
              pages specified in the DeskTopSize command detailed
              in the Pager(1) man page. The lower  left  page  is
              (0,M),  and  the lower right page is (N,M), where M
              is the desktop's vertical size as specified in  the
              DeskTopSize command.

              The  GotoPage function should not be used in a pop-
              up menu.


       WindowList [arg1 arg2]
              Specifies the internal  popup  menu  in  which  the
              titles  of  each  open  application  are displayed,
              should be popped up.  Selecting an  item  from  the
              list  will  cause the current desk to switch to the
              application's desk,  and  will  raise  it  if  it's
              behind  other  windows.  If the application is cur­
              rently iconified, then it will be de-iconified nor­
              mally.

              Generally, if arg1 is an even number, then the win­
              dows will be listed using the window name (the name
              that  shows up in the title-bar); if arg1 is an odd
              number, then the window's icon name is used.




afterstep                   Feb 7 2000                         32





afterstep(1.8)                                     afterstep(1.8)


              Specifically, if arg1 is 0, 1 or 2, then  all  win­
              dows  on  all desks will be shown.  If arg1 is 2 or
              3, then only windows on the current  desk  will  be
              shown.  If arg1 is 4 or 5, then only windows on the
              desk number specified with  arg2,  will  be  shown.
              Windows  which  have  WindowListSkip  specified  in
              their style will not be listed in the window  list.


       Exec "name" command [-options]
              Specifies a sub process to initiate.  The "name" is
              required for ease of parsing.  The command  is  the
              command or application to be invoked along with any
              desired -options.


       PopUp "popup_name"
              There are two situations where this might occur; as
              a  popup  menu  stanza  definition, or in calling a
              previously defined menu declaration.

              Popup "popup_name"
                  built-in_command  "name" [argument]
              EndPopup

              Specfies the definition of  a  complex  menu  popup
              "popup_name",  which can be bound to a mouse button
              or key using "popup_name" to recall  this  declara­
              tion.   built-in_command  specifies  which  command
              will be performed, utilizing it's syntax from  this
              list  of Built-In Commands/Functions. "name" speci­
              fies the name which will appear within the menu for
              the  given  item,  and  additionally  any arguments
              needed by the built-in_command.  The Popup  defini­
              tion  ends with the keyword EndPopup. Sub-menus can
              be created by calling  the  Popup  built-in  within
              another Popup declaration, as long as that sub-menu
              was defined earlier in the configuration file.

              Shortcut keys may be specified in the menu  defini­
              tion  by  preceding  a character with an ampersand.
              The ampersand will not be displayed, but the  char­
              acter  after it will be displayed at the right side
              of the same entry.   Only  alphanumeric  characters
              may  be  used as shortcut keys.  The shift state of
              the keyboard is ignored when testing shortcut char­
              acters.

              When  calling  a  previously defined menu or a menu
              from a key-stroke combination, Popup is simply used
              as  a built-in command with the "name" referring to
              the previously defined Popup definitions name.

              Popups can be bound to keys through the use of  the



afterstep                   Feb 7 2000                         33





afterstep(1.8)                                     afterstep(1.8)


              key  modifier. Popups can be operated without using
              the mouse by binding to keys, and operating via the
              up arrow, down arrow, and enter keys.  Refer to the
              feel.name files and below in EXAMPLES for examples.


       Function "function_name"
              There  are  also  two  situations  where this might
              occur as well; as a function definition stanza,  or
              in  calling  a previously defined function declera­
              tion.

              Function "function_name"
                  built-in_command "action" [argument]
              EndFunction

              Specifies the  definition  of  a  complex  function
              "function_name",  which  can  later  be  bound to a
              mouse button or key using "function_name" to recall
              this declaration.  built-in_command specifies which
              command will be performed, taking its  syntax  from
              this  list of Built-In Commands/Functions. "action"
              specifies the action to take followed by any  addi­
              tional  arguments  needed  by the built-in_command.
              Menus can be specified by using the Popup  command,
              as long as the menu was defined earlier in the con­
              figuration file.

              The trigger actions which are recognized are  Imme­
              diate  (can  be  shortened  to "I"), Motion, Click,
              DoubleClick and TripleClick. Immediate actions  are
              executed as soon as the function is activated, even
              if a window has not been  selected.  If  there  are
              actions  other  than immediate ones, afterstep will
              wait to see if the user is clicking,  double-click­
              ing,  triple-clicking  or  dragging the mouse; then
              will execute only the built-ins from  the  function
              definition  whose trigger action matches the action
              performed by the user.  The clicking, double-click­
              ing  and  triple-clicking  concepts  do  not  carry
              through to using keyboard shortcuts.

              Two  special  functions  exist:  InitFunction   and
              RestartFunction.  The  InitFunction  will be called
              when afterstep is started for the first time in any
              X  session,  and  can  be used to start modules and
              begin programs.  The RestartFunction will be called
              when  afterstep is restarted. It can be used to re-
              start modules but probably should not  be  used  to
              start programs.  These two functions are defined in
              the autoexec file.

              When calling a previously  defined  Function  or  a
              Function from a key-stroke combination, Function is



afterstep                   Feb 7 2000                         34





afterstep(1.8)                                     afterstep(1.8)


              simply used as a built-in command using the  previ­
              ously defined "action" from the same function_name.

              Function built-in_command "action" function_name

              Refer to the feel.name files and below in  EXAMPLES
              for examples.


       Module ModuleName [arguments]
              Specifies that ModuleName should be spawned.

              Currently,  many  modules  are included with after­
              step. Wharf(1x) and Pager(1x) are two of  the  more
              popular ones. Wharf will normally be spawned during
              initialization instead of in response  to  a  mouse
              binding  or menu action. Modules can be short lived
              transient programs, or, like Wharf, can be intended
              to  remain for the duration of the X session.  Mod­
              ules will  be  terminated  by  afterstep  prior  to
              restarts and quits, if possible.



FILES

       /usr/local/share/afterstep/.workspace_state
              The  global  empty  file  which is copied, upon the
              first invocation  of  afterstep,  into  that  users
              newly created $HOME/GNUstep/Library/AfterStep tree.


       $HOME/GNUstep/Library/AfterStep/.workspace_state
              The global file where  applications  still  running
              are  saved,  including  geometry  (if possible) and
              options, when AfterStep is exitted normally.   This
              ability  can  be  disabled  during  configure or by
              closing all  running  applications  before  exiting
              AfterStep.


       /usr/local/share/afterstep/autoexec
              The  global configuration file that specifies which
              modules and/or programs to start  upon  afterstep's
              invocation or restart.


       $HOME/GNUstep/Library/AfterStep/autoexec
              This    file    should    be    copied   from   the
              /usr/local/share/afterstep/autoexec and  edited  to
              suit  the user's specific requirements.  This file,
              if it exists, will override the system wide default
              file.






afterstep                   Feb 7 2000                         35





afterstep(1.8)                                     afterstep(1.8)


       /usr/local/share/afterstep/base.[8|15|16|24|32]bpp
              The global configuration file setting the paths and
              a few Pager(1) options for the desired  colordepth.


       $HOME/GNUstep/Library/AfterStep/base.[8|15|16|24|32]bpp
              This    file    should    be    copied   from   the
              /usr/local/share/afterstep/base.[8|15|16|24|32]bpp
              and  edited  to  suit  the user's specific require­
              ments. This file, if it exists, will  override  the
              system wide default file.


       /usr/local/share/afterstep/compatibility
              The  global  configuration  file to be used in con­
              junction with the -f steprc_file to gain a  limited
              amount of compatiblity with the ancient steprc file
              structure.


       $HOME/GNUstep/Library/AfterStep/compatibility
              This   file   should    be    copied    from    the
              /usr/local/share/afterstep/compatibility and edited
              to suit  the  user's  specific  requirements.  This
              file,  if  it exists, will override the system wide
              default file.


       /usr/local/share/afterstep/database
              The global configuration  file  containing  entries
              for styles of some applications.


       $HOME/GNUstep/Library/AfterStep/database
              This    file    should    be    copied   from   the
              /usr/local/share/afterstep/database and  edited  to
              suit  the  user's specific requirements. This file,
              if it exists, will override the system wide default
              file.


       /usr/local/share/afterstep/non-config­
       urable/[0|1|2|3]_background
              The default background for each desk  shipped  with
              AfterStep.   These  files  will be copied, upon the
              first invocation of  afterstep,  into  that  user's
              newly  created $HOME/GNUstep/Library/AfterStep/non-
              configurable/ tree.


       /usr/local/share/afterstep/non-config­
       urable/[0|1|2|3]_feel.[8|15|16|24|32]bpp
              The "feel.DEFAULT" for each desktop as shipped with
              AfterStep.   These  files  will be copied, upon the



afterstep                   Feb 7 2000                         36





afterstep(1.8)                                     afterstep(1.8)


              first invocation of  afterstep,  into  that  user's
              newly  created $HOME/GNUstep/Library/AfterStep/non-
              configurable/ tree.


       /usr/local/share/afterstep/non-config­
       urable/[0|1|2|3]_look.[8|15|16|24|32]bpp
              The "look.DEFAULT" for each desktop as shipped with
              AfterStep.   These  files  will be copied, upon the
              first invocation of  afterstep,  into  that  user's
              newly  created $HOME/GNUstep/Library/AfterStep/non-
              configurable/ tree.


       /usr/local/share/afterstep/start/.include
              An include directive which controls various  things
              in  the  startmenu; for instance the version number
              that appears on the menu.  If this file  is  copied
              to  the  $HOME  directory,  then the version number
              will not increment upon subsequent upgrades.


       /usr/local/share/afterstep/start/Desktop/Look/.include
              A file that is required for  Look  menu  operations
              ($HOME/GNUstep/Library/AfterStep/start/Desk­
              top/Look/.include overrides this file).


       /usr/local/share/afterstep/start/Desktop/Feel/.include
              A file that is required for  Feel  menu  operations
              ($HOME/GNUstep/Library/AfterStep/start/Desk­
              top/Feel/.include overrides this file).


       /usr/local/share/afterstep/start/Desktop/Theme/.include
              A file that is required for Theme  menu  operations
              ($HOME/GNUstep/Library/AfterStep/start/Desk­
              top/Theme/.include overrides this file).




EXAMPLES

       AfterStep ships with the configuration  files  themeselves
       as  examples.   A  few examples from various configuration
       files are below to show those that are possible,  but  not
       in the default files.


       database

              To have all iconified apps "disappear" (not be dis­
              played as an icon:

              Style     "*"  NoIcon



afterstep                   Feb 7 2000                         37





afterstep(1.8)                                     afterstep(1.8)


              To have an app which has a small TitleBar area  not
              display  the  1,2  and 4 TitleButtons, and stick to
              each desk, as well as using the icq.xpm  icon  when
              iconified:

              Style     "ICQ"     Icon icq.xpm, Sticky, NoButton 1, NoButton 2, NoButton 4


       feel.name

              To  have  a  right click menu which has some Window
              Operands:

              Popup "Window-Ops"
                   Title      "Window Ops"
                   Function "Move"          Shade-or-Raise
                   Function "Resize"        Resize-or-Raise
                   Raise      "Raise"
                   Lower      "Lower"
                   PutOnTop "(Un)PutOnTop"
                   Stick      "(Un)Stick"
                   Function "(Un)Maximize"  Maximize_Function
                   Destroy    "Destroy"
                   Close      "Close"
                   Refresh    "Refresh Screen"
                   Exec  "Window Properties" exec xprop | xmessage -center -title 'xprop' -file -
              EndPopup

                   ...then assign this Popup the right mouse button click on the
                   desktop:

              Mouse 3         R       A       PopUp "Window-Ops"



KEYBOARD SHORTCUTS

       All window-manager operations can be  performed  from  the
       keyboard, so mouse-less operation should not be difficult.
       In addition to scrolling around the desktop by binding the
       Scroll built-in to appropriate keys, Pop-ups, move, resize
       and most other built-ins can be  bound  to  keys.  Once  a
       built-in  function  is  started,  the  pointer is moved by
       using the up, down, left, and right arrows, and the action
       is  terminated by pressing return.  Holding down the shift
       key will cause the pointer movement to go in larger steps,
       and  holding  down  the  control key will cause the cursor
       movement to go in smaller steps.  Standard  emacs  and  vi
       cursor  movement controls (^n, ^p, ^f, ^b, and ^j, ^k, ^h,
       ^l) can be used instead of the arrow keys.



SPECIAL NOTE FOR XFREE86 USERS

       XFree86 provides a virtual screen whose operation  can  be
       confusing  when used in conjunction with this virtual win­
       dow manager. With XFree86, windows  which  appear  on  the



afterstep                   Feb 7 2000                         38





afterstep(1.8)                                     afterstep(1.8)


       virtual  screen  actually  get drawn into video memory, so
       the virtual screen size is limited by available video mem­
       ory.

       With  AfterStep's  virtual desktop manager, Pager(1), win­
       dows which do not appear on the screen do not actually get
       drawn  into  video RAM. The size of the virtual desktop is
       limited to about 32,000 by 32,000 pixels. It  is  probably
       impractical  to  use  a  virtual desktop more than about 5
       times the visible screen in each direction. Note that mem­
       ory  usage  with  the virtual desktop is a function of the
       number of windows which exist. The  size  of  the  desktop
       makes no difference.

       When  becoming  familiar with AfterStep, it is recommended
       that you disable XFree86's virtual screen, by setting  the
       virtual  screen  size  to  the  physical screen size. When
       familiar  with  AfterStep,  you  may  want  to   re-enable
       XFree86's virtual screen.



AUTHORS

       Frank Fejes (frank@canweb.net)
       Alfredo Kenji Kojima (kojima@inf.ufrgs.br)
       Dan Weeks (dan@mango.sfasu.edu)
       Guylhem Aznar (guylhem@oeil.qc.ca)
       Chris Ridd (C.Ridd@isode.com)
       Rob Malda (malda@imagegroup.com)
       Ethan Fischer <allanon@crystaltokyo.com>
       David Mihm <dmihm@swbell.net> [Man page]
       Sasha Vasko <sashav@sprintmail.com>



SEE ALSO

       X(1),   Animate(1),   Audio(1),   Banner(1),   Cascade(1),
       Clean(1), Form(1), Ident(1), Pager(1), Save(1), Script(1),
       Scroll(1), Tile(1), Wharf(1), WinList(1), Zharf(1)



BUGS

       Bugs?  we  don't  see no stinking bugs! :) Seriously, they
       are only bugs if you report them - then they can be fixed.



COPYRIGHTS

       AfterStep is distributed under GNU GPL v2; however, After­
       Step was based on BowMan which  derived  from  Fvwm  code,
       which is in turn derived from twm code, thus some C source
       files from AfterStep share copyrights with twm.

       AfterStep  is  copyright  1996  by  Frank  Fejes,  Alfredo
       Kojima, and Dan Weeks.

       AfterStep  is  copyright  1998  by  Guylhem Aznar, Raphael



afterstep                   Feb 7 2000                         39





afterstep(1.8)                                     afterstep(1.8)


       Goulais, and Rob Malda.

       AfterStep is copyright 1999 by Ethan Fischer, Sasha Vasko.

       Please  see  the  file COPYING included with the AfterStep
       distribution for the conditions that are incumbent on  the
       users of AfterStep due to its relations to fvwm and twm.

       AUTHORS AND ALL OTHER CONTRIBUTERS DISCLAIM ALL WARRANTIES
       WITH REGARD TO THIS SOFTWARE, INCLUDING ALL  IMPLIED  WAR­
       RANTIES  OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
       ANY CONTRIBUTOR BE LIABLE FOR  ANY  SPECIAL,  INDIRECT  OR
       CONSEQUENTIAL  DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
       FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
       CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION, ARISING OUT
       OF OR IN CONNECTION WITH THE USE OR  PERFORMANCE  OF  THIS
       SOFTWARE.



HISTORY

       AfterStep  is  a continuation of the BowMan window manager
       which was originally put together by Bo Yang.  BowMan  was
       based  on  the  fvwm  window  manager,  written  by Robert
       Nation.  Fvwm was based on code from twm.  And  so  on....
       It  is  designed  not only to emulate some of the look and
       feel of the NEXTSTEP(tm) user interface, but also  to  add
       useful,  requested,  and neat features.  The changes which
       comprise AfterStep's personality were originally  part  of
       BowMan  development, but due to a desire to move past SIM­
       PLE EMULATION and into a niche as its OWN valuable  window
       manager, the previous designers decided to change the pro­
       ject name and move on.

       Some major changes from fvwm(1) 1.24 include:

       1. NEXTSTEP(tm)-alike title bar, title buttons, borders
          and corners.
       2. AfterStep's Wharf(1). To avoid copyright
          complications it is not called a "Dock".
       3. NEXTSTEP(tm) style menus. However the menus are not
          controlled by applications, they are more like pop-up
          service lists on the root window.
       4. NEXTSTEP(tm) style icons. The default icons are
          consistent with those in the NEXTSTEP(tm) interface,
          but they are configurable.
       5. Dissociation of Pager(1) desktops for background
          pixmaps and configuration: each desktop can have its
          own configuration, its own look, its own background
          picture and all this can be changed on fly with the
          Start/Desktop menu.

       However, flexibility was not traded off. Initiation files,
       in  ~/GNUstep/Library/AfterStep,  recognize  most  of  the
       fvwm(1) commands.



afterstep                   Feb 7 2000                         40





afterstep(1.8)                                     afterstep(1.8)



ICCCM COMPLIANCE

       AfterStep attempts to be ICCCM 2.0 compliant.  As of  this
       release, colormap handling is not completely ICCCM compli­
       ant. In addition, ICCCM states that it should be  possible
       for  applications  to  receive ANY keystroke, which is not
       consistent with the keyboard  shortcut  approach  used  in
       AfterStep  and  most  other window managers.  The user can
       disable any AfterStep keystroke that should be  passed  to
       the application and not intercepted by the window manager.
       An ICCCM compliant feel file is included - feel.ICCCM from
       the startmenu.














































afterstep                   Feb 7 2000                         41



Man(1) output converted with man2html