AfterStep(1x)

✨ AfterStep β€” the NAME section, bestie ✨

okay so. AfterStep is an X11 window manager. that's the whole vibe. that's the name. πŸ’…

ngl, this page is basically the manual for AfterStep(1x) β€” the AfterStep X11 window manager β€” and she's long. get comfy. 🫢


🌸 STANDARD OPTIONS 🌸

here's the tea: these are the command line options that every AfterStep module and every AfterStep application supports. universal. iconic. πŸ‘‘

  • -v, --version β€” show the version info and dip out immediately.
  • -c, --config β€” show the Config info and dip out immediately.
  • -h, --help β€” show the usage info and dip out immediately.
  • --debug β€” debugging mode: run in Synchronous mode.
  • -s, --single β€” run on a single screen only.
  • -r, --restart β€” run like it got restarted. same as a regular startup, except it runs RestartFunction instead of InitFunction.
  • -d, --displayval β€” tell it which X display to connect to. this one overrides the $DISPLAY environment variable, so it wins the argument, periodt.
  • -f, --config-fileval β€” read all the config from the file you name here. use this if you'd rather roll with .steprc than the standard config files.
  • -p, --user-dirval β€” read all the config from the dir you name here. use it to override wherever the config location was set at compile time.
  • -g, --global-dirval β€” use the dir you name here as the shared config dir. use it to override the shared config location that got baked in at compile time.
  • -V, --verbosity-levelval β€” change how chatty AfterStep's output is. 0 disables all output; 1 allows only error messages; 5 allows both errors and warnings (that's the default).
  • --windowval β€” Internal Use: the window in which the action happened. it's the interface part that triggered our startup.
  • --contextval β€” Internal Use: the context in which the action happened. it's the interface part that triggered our startup.
  • --lookval β€” read the look config from the file you name here. use this when you want a different look than whatever got picked from the menu.
  • --feelval β€” read the feel config from the file you name here. use this when you want a different feel than whatever got picked from the menu.
  • --themeval β€” read the theme config from the file you name here. use this when you want a different theme than whatever got picked from the menu.
  • -l, --logval β€” save all the output into a file instead of printing it to the console.
  • -L, --localeval β€” set the language locale. this is the one used while displaying text.
  • --mynameval β€” overrides the module name. it gets used while parsing config files and while reporting back to AfterStep.
  • --geometryval β€” overrides the module's geometry.
  • --gravityval β€” overrides the module's gravity.

okay NOW for the lore πŸ¦‹

AfterStep has been almost entirely rewritten in this new incarnation bestie, no exaggeration. here's the short list of the new architectural changes:

  • 1.1. A brand new, high performance, high quality image handling engine has been developed to serve all the GUI needs. she includes different image transformations β€” scaling, tiling, cropping, blurring, blending of an arbitrary number of layers, in-memory image compression β€” and support for 12 different file formats, including its very own parser/writer for XPM files that's capable of achieving much better performance than the default libXpm. the supported image formats are:

XPM, PNG, JPEG, XCF (GIMP image format), PPM, PNM, BMP, ICO, CUR, GIF, TIFF, and XML scripts. the XML scripts let a user write a script of transformations to be performed on the image at the moment it gets loaded. libAfterImage also provides support for TTF fonts (using libfreetype) and smoothed standard X raster fonts. ✨

  • 1.2. Window hints handling has been rewritten and reorganized, and most of the Extended WM specs have been incorporated too, plus better support for Motif, ICCCM and old GNOME hints has been implemented.
  • 1.3. All the GUI rendering code has been aggregated into libAfterStep, and now every GUI element is rendered using a consistent approach in every module and every part of AfterStep proper. from now on the interface is built from so-called TBars. a TBar is a rectangular area that may be focused (hilited) or unfocused, and pressed or unpressed. every TBar has this structure:
    • the background of the TBar, which is defined by MyStyle and the state of the bar β€” there are two MyStyles assigned to each TBar, one for the focused state and one for the unfocused state.
    • the tiles of the TBar. tiles are smaller features that get arranged inside the bar according to its size, alignment, position and order. tiles can be static icons (which cannot be pressed); blocks of buttons β€” each one having two shapes, pressed and normal; text labels; or empty space tiles.

there can be up to 256 tiles, each one residing on one of the cells in a 16x16 grid. several tiles can reside in a single cell, in which case they get superimposed on top of each other. πŸŽ€

  • the bevel of the TBar. when a TBar is rendered, all of its tiles are superimposed on top of its background, and the resulting image will have a 3D bevel drawn on it, using colors from the same MyStyle that was used for the background. the bevel can be switched off partially or entirely. respective configuration options have been added wherever appropriate. when a TBar is pressed β€” its bevel is inverted.

when a TBar is rendered, all of its elements get superimposed on top of each other using one of 13 blending methods supported by libAfterImage, with the default being simple alphablending. see MyFrame configuration for more details. this is referred to as the "Composition Method".

  • 1.4. Because AfterStep uses compression to store images in memory, there's no need to have a separate root background handler anymore β€” so asetroot has been discontinued and afterstep proper now does all the root background loading itself. you can just copy-and-paste your asteroot config into your look file. bonus: this has the added advantage of simplifying theme support for root backgrounds.
  • 1.5. Significant work has been done to create libAfterConf, which provides an easy way to read configuration options and makes implementing any configuration tool way easier.
  • 1.6. Some work has been done to improve theme support. AfterStep proper and its modules now load configuration files in this order:

#1 β€” base config; #2 β€” look, feel, menu, database, autoexec and module specific config; #3 β€” theme file; #4 β€” theme override file;

the theme override file exists so a user can keep a list of critical options that they do not want any theme changing. what's missing here is a comprehensive theme building tool.

  • 1.7. AfterStep now makes extensive use of X shaped extensions (where available). everything can be shaped now β€” titlebars, Pager, Wharf, etc. to make some element shaped, use MyStyle with a BackPixmap type of 125 or 126.
  • 1.8. Menus are now treated the same as regular windows. they can be configured in the database file using the preset Style "ASMenu" to have different titlebar buttons, frame decorations, stickiness, etc. MenuPinOn has been changed to be just another titlebar button, with the PinMenu function assigned to it.
  • 1.9. AfterStep no longer uses a fixed scheme of 5 titlebar buttons on each side, and the order of the buttons can be configured in the look. there's still a limitation though: no more than 10 buttons total, and that's final. πŸ’€

and that's the whole page bb, you made it πŸ₯³ huge. this was AfterStep v.2.2.12, brought to you by the 3rd Berkeley Distribution, living in the manual pages as plain ol' AfterStep(1x). go shape a titlebar and text me later πŸ’–βœ¨πŸ¦‹

πŸ“¦ where this page comes from