HomeAfterStep WikiDockapps.orgAppsAfterStep at GitHubBug Tracker
Looks and Themes
Icons, Clipart, etc.
Mailing List and Contacts
aterm terminal emulator
This page presents a selection of conversation snippets, as collected by my IRC log, and that I find particularly usefull for general AfterStep public.
                                                      Sasha Vasko

  1. Misc configuration questions
  2. AfterStep startup process
  3. Configuring desktop look
  4. Configuring keyboard, mouse bindings and general feel
  5. Configuring and using Window Decorations
  6. Window edge snapping, moving and resizing windows.
  7. Modules
  8. Themes
  9. AfterStep XML Images
  10. www.afterstep.org design and contents
  11. AfterStep development
  12. Compilation and debugging


titlebar decor
Deep RedDeep Red
Gold On BlueGold On Blue
Green SeaGreen Sea
Sea WaterSea Water
Stormy SkiesStormy Skies
Washed BlueWashed Blue
  1. Misc configuration questions

  2. AfterStep startup process

    • AfterStep waiting for applications to start:
    • MG_Tak:   when AS starts for some reason, my wharf comes up then stops for a while unless I click anywhere
      sasha:   On startup AfterStep runs all the commands listed in InitFunction. If any of this commands is Wait - AfterStep will wait for specified application to start, before proceeding further. Default timeout is 30 seconds, but you can override it by pressing mouse button anywhere on the desktop.

  3. Configuring desktop look

    • Where is my look file ?
    • b00>:   Vaevictus: a bit off track: where is my look file, if im still using AS 1.8.11 ?
      b00>:   i dont see look file in Gnustep
      Vaevictus:   ~/GNUstep/Library/AfterStep/looks
      Vaevictus:   but you may need to copy one from /ulsa
      b00:   /ulsa ?
      b00:   /usr ?
      Vaevictus:   /usr/local/share/afterstep/
      sasha:   Note that beginning with AfterStep 2.0 user's config files are located in ~/.afterstep instead of ~/GNUstep/Library/AfterStep

    • AfterStep and Antialiasing
    • b00:   how can i change AS to use antialiasing ? and how do i change fonts in general here ?
      Vaevictus:   depends on which version you use
      b00:   1.8.11
      Vaevictus:   upgrade to 2.0
      b00:   why ?
      Vaevictus:   2.0beta is way better, though a bit buggy yet (thus beta)
      sasha:   AfterSTep supports Antialiased text only beginning with version 2.0. The best quality of antialiased text could be obtained by using TTF fonts in look (as all default looks do).

  4. Configuring keyboard, mouse bindings and general feel

    • Copy And Paste
    • _den^lb:   how can i configure copy and paste to be ctrl+c and ctrl+v and not other things?
      sashaW:   edit your feel file - remove bindings for V and C keys
      _den^lb:   sashaW : remove bindings? i thought i would have to add new ones
      allanon:   afterstep cannot control copy and the support for pasting is a hack, but one that mostly works
      _den^lb:   so, err, when i try to use say copy and paste in an app, such as Kate, from kde, it doesnt work from the as
      allanon:   you mean afterstep's control-v override doesn't work?
      allanon:   they must be ignoring fake keyboard events then - some versions of xterm ignore it too ...
      allanon:   afterstep can't control application behavior though... probably the best bet if control-v isn't always working for you when you need it to is to switch to using the application's paste function
      allanon:   if that's also mapped to control-v, you'll need to turn off afterstep's override by commenting it out of the feel
      _den^lb:   ok, then ill try to ovveride it. But the thing is, it never works, i mean ctrl+v, in AS ( aterm and stuff)
      _den^lb:   i use middle mouise button - that works
      allanon:   huh, i wonder why
      _den^lb:   try to unncomment it in the feel file then
      _den^lb:   allanon thank you
      allanon:   to be honest, i wasn't really too fond of the control-v feature when guylhem asked me to implement it
      allanon:   you're welcome

    • Alt-tabbing through desktops
    • _den^lb:   allanon also, how can i make alt+tab not to cycle thru all the windows of the pager, but only thru windows in a particular square im in ?
      allanon:   there is no way to make AS only alt-tab through visible windows
      allanon:   if it is alt-tabbing through all desktops, that can be turned off by disabling the AutoTabThroughDesks option
      _den^lb:   well, it goes tru all the windows of one of my lil 4x4 desk
      allanon:   there's no way to turn that off, sorry
      allanon:   it is a fairly popular feature request, though, so it might be implemented at some point

    • Assigning Windows Key to to the main AfterStep desktop menu.
    • _den^lb:   oh, i cant help it! i have smth else to ask: i would like the main menu ( one that you say call with the mouse, dont know whats it called ) to work with the windows key. Is this also configurable in the feel file? i already xmodmap'ed the windows key
      allanon:   yup
      allanon:   Mouse 1 R A PopUp "0"
      allanon:   ^ that line is the one that pops up the desktop menu
      allanon:   you'll want to replace "Mouse 1" with a "Key" entry
      _den^lb:   great :)

    • Taking screenshots with AfterStep
    • sasha:   TakeScreenShot "-" vaevictus_screenshot.png
      Vaevictus:   so... are you using the 100% quality setting on your screenshots?
      sasha:   no
      Vaevictus:   therin lies the problem
      sasha:   but you can submit me a patch
      sasha:   like, easily
      sasha:   screenshot_func_handler() in src/afterstep/functions.c

  5. Configuring and using Window Decorations

    • Building window frame
    • Vaevictus:  I've got the frame for the righthand side in the one window...(to look like MS Windows window frame)
      sasha:   yes
      Vaevictus:  and it should keep that white bar on the left side. But the blue from the top shouldn't be part of the corner, IMO.
      sasha:   it should not. What you do is instead of using plain blue background for title - you use vertical slice that includes upper and bottom gray bevels

    • Composition of the Titlebar using MyFrame :
    • sasha:   1) instead of storing win buttons in pngs - write xmls using clipart from icons/dots
      sasha:   2) buttons must be transparent and should not include underlying background
      sasha:   and again, buttons should be xmls, and whatever clipart is missing - must be added to dots/
      sasha:   while saving clipart into dots/ - make it grayscale as much as possible, so we can change its color in different themes
      sasha:   http://afterstep.sourceforge.net/data/desktop/icons/dots/index.html
      sasha:   list of current clipart in dots/
      sasha:   now, your LeftBtnBackground should be not just a bar, but its should approximate the size of buttons as close as possible ( although tiling could be done too )
      Vaevictus:   the background is the spacer?
      sasha:   no
      Vaevictus:   maybe i'm thinking about this all wrong
      sasha:   you are
      Vaevictus:   hold on. lemme explain how i see it.
      Vaevictus:   we've got the graphic "from the corner to the first button"
      Vaevictus:   "in the background of the button"
      Vaevictus:   "in between buttons"
      Vaevictus:   "in between the buttons and the titlebar area"
      Vaevictus:   and then to the other corner... do we not have those?
      sasha:   not that many
      Vaevictus:   we need that many, then. What ones do we have, (which are we missing)?
      sasha:   BtnBackground Spacer Title
      sasha:   BtnBackground covers entire space from the edge of the titlebar and to the end of buttons block
      Vaevictus:   so the first three of my things are "btnBackground"
      Vaevictus:   that's gotta change... i think: you may want to tile or scale the "background of the buttons". .. but you wont want to either tile or scale it if the piece that touches the titlebar is a shaped thing.
      Vaevictus:   will your glass theme accomodate rearragned buttons?
      sasha:   it does
      sasha:   scaling factor is too small to sufficiently distort the picture
      Vaevictus:   depends on your picture: you could easily double or half the bevel on a corner that way
      sasha:   if you make background as 2/3 of the max size of the buttons set, and you have 2 pixel border - you'll almost never see it grow noticeably larger or smaller due to interpolating scaling algorithm.
      Vaevictus:   my borders are currently 5 pixels... and you're saying to reduce that to 3 pixels and I won't notice?
      Vaevictus:   scratch that - the math is wrong: lets say my buttons are 15 pixels, as I think they are in win9x...
      sasha:   I can't have separate backgrounds for each button, as wellas spacers between buttons
      Vaevictus:   that's a pretty severe shortcoming, I think
      sasha:   not really, no
      Vaevictus:   if your buttons are one color from a colorscheme, and your titlebar is another, putting the spacers inside the xml for the buttons gets pretty complex, if you asked me
      sasha:   if your buttons are the same size - you can esily do inter-button spacer by drawing them on BtnBackground
      Vaevictus:   not that it's not scalable.. but it's a pretty ugly requirement that buttons must be the same size to be properly spaced in your look
      sashaW:   well, thats how its going to be , unless I want to rewrite entire drawing code - which I don't
      sashaW:   plus there are memory cosumption issues that pretty much dictated current limitations.
      Vaevictus:   okie then. How does it work that we're limited that way? in laymens terms?
      sashaW:   layout is limited to grid of 8x8 ( within a window )
      sashaW:   titlebar - is one window, and right now it has 7x1 elements
      Vaevictus:   the buttons count as elements? or what? i can only get 5
      sashaW:   left btn, spacer, title, spacer, right btn + 2 hidden ones
      Vaevictus:   ooh. what do the hidden ones do?
      sashaW:   they needed to properly fit titleBackground to the title
      sashaW:   but here is another solution: make button background as big as you can, and then tile it to buttons size
      Vaevictus:   again, doesn't solve the problem of different buttons size, but okay, I can work around it
      Vaevictus:   the big problem is, I believe I will see distortion.
      sashaW:   ok
      Vaevictus:   since I often operate afterstep with all the buttons on either side of the titlebar, not to mention VerticalTitleBar
      sashaW:   in Vertical title everything gets rotated automagically
      Vaevictus:   my borders are a 5 pixel "bevel" looking thing if they don't continue fluidly, even 1 pixel off, it'll look terrible it leaves no room to scale the background image and I can't tile it because it's not horizontally symmetrical
      sashaW:   why isn't it ?
      Vaevictus:   because one side contains the corner, and the otherside is the titlebar?
      Vaevictus:   the titlebar, spacer and button background are all the same color
      sashaW:   then make it long - longer then any combination of buttons
      Vaevictus:   lets make the spacers be part of the titlebar
      Vaevictus:   otherwise, my titlebar will be like 5% of my windowsize, and non-existant on vertical
      Vaevictus:   then again, you're as against scaling your spacers as I am scaling my "corners"
      sashaW:   if you use :
      sashaW:   LeftBtnBackAlign HTiled,VScaled,LabelSize
      sashaW:   it will get cropped to fit size of buttons

    • Making titlebar buttons change color as focus changes
    • sashaW:   the image is :
      sashaW:   <composite>
      sashaW:       <solid color="#00000000" width=1 height=23 clip_width=75/>
      sashaW:       <img x=71 src="bars/win9x_title_right_corner.png"/>
      sashaW:   </composite>
      sashaW:   then in look :
      sashaW:   RightBtnBackAlign Right,HTiled,VScaled,LabelSize
      sashaW:   and there should be no LeftSpacer stuff
      sashaW:   total transparency is required so that focus changes can show through
      Vaevictus:   are you saying the title background will show through?
      sashaW:   yes
      Vaevictus:   saying that, I'm really confused how to make a title bar now.
      sashaW:   well, first the background image is rendered, which is determined by MyStyle
      sashaW:   second all the backgrounds from MyFrames are rendered on top of it
      sashaW:   (alpha-blended)
      Vaevictus:   i understand then
      sashaW:   finally, buttons and text are rendered on top of the above
      sashaW:   now, difficulty is that focus is only shown using MyStyles - which changes lowermost background and text nor buttons, not second tier backgrounds are affected by focus changes, so if you want them to change color - you need to make them semitransparent
      Vaevictus :   hey sasha: I think I've got problems with getting that right vertical bar /corner piece in my xml
      sashaW :   hmm, I thought I pasted to you the exact xml ?
      Vaevictus :   <composite><solid color="#00000000" width=1 height=23 clip_width=75/><img x=71 src="bars/win9x_title_right_corner.png"/></composite>
      Vaevictus :   that's what's not working - it looks good on the left side, but it doesn't show the png on the right side
      sashaW :   did you change the Align ?
      sashaW :   RightBtnBackAlign Right,HTiled,VScaled,LabelSize
      Vaevictus :   sashaW: good call...that's it

    • Menus and Frame decorations :
    • Vaevictus:   I've noticed there were issues of the title bar not showing up on menus... is that a screw up on my part?
      sasha:   Menus are using special Style named "ASMenu" to determine what decorations they should have. Now you may define your own Style "ASMenu" in the database file and turn off titlebar and handles in there if you really want to, but that will cause Menus to not have any titles.

    • Shaped window decorations :
    • MG_Tak:   sasha: to get a 'shaped' effect, do you simply make some of the picture transparent?
      sasha:   yes, you make some of the picture transparent
      sasha:   everything with opacity below 127 will be cut off by shape, and everything above it will be blended with background
      sashaW:   shaped Titlebar require BackPixmap 125 or 126 and, of course the image must be shaped
      Vaevictus:  so your titlebar has to be scalable?
      Vaevictus:  i'm confused on how you can use one image to make a shaped titlebar without it being horribly different for large and small windows
      sashaW:   try BackPIxmap 125 tiles/empty
      sashaW:   again - AS renders shape of the entire tbar, then combines it with shapes of second tier backgrounds, and then combines it with buttons and text and bevel
      Vaevictus:  so you plan for worst case scenario, and the btnbkground covers up the "extra" shaping, and it does scale
      sashaW:   tiles/empty is like, empty shape - you'll only see buttons and text
      sashaW:   125 is scaled I think, while 126 is tiled

  6. Window edge snapping, moving and resizing windows.

  7. Modules

    • Multiple Wharfs/Pagers/WinLists.
    • _den^lb>:   allanon is that possible to have 2 wharfs, (with pagers in each), on left AND right side ?
      allanon>:   yes make a symlink to the Wharf app and call it something else (like Wharf2)
      _den^lb>:   ah, sweet
      _den^lb>:   same sort off as i do with pagers ? Pager0, Pager1 ?
      allanon>:   then put the options in the wharf config file like *Wharf
      allanon>:   and *Wharf2
      allanon>:   same with pager
      allanon>:   there's an example of doing that with wharf that comes with the afterstep 2.0 configs
      allanon>:   Wharf and MonitorWharf

  8. Themes

    • Why Themes Don't Have multiple backgrounds
    • _den^lb:   you know, like say i have 4 pagers (4x4 inside)
      _den^lb:   for some reason, when you say use some theme, the background for the pager only gets to some of them, and they dont look same
      _den^lb:   in fact one of them i think only
      allanon:   the background image can be associated with one or more desktops
      allanon:   some theme makers only consider one desktop when making the theme
      _den^lb:   ah, i see

  9. AfterStep XML Images

    • Creating image filled with color
    • MG_Tak:  how would I create a.. black background? just plain old black
      sasha:   echo "<solid width=1 height=1 color=#FF000000/>" > black.xml

    • Defining color aliases to be used later in the script
    • sashaW:   adds new tag to asxml
      sashaW:   no, <color>
      Vaevictus:   sasha: color tag does what? same as <solid color=#> ?
      sasha:   Vaevictus: no it allows you to define symbolic name for a color - similar to colorscheme. For example: <color domain="ascs" name="Active" argb="#FF665646"/>

  10. www.afterstep.org design and contents

  11. AfterStep development

    • SVG support
    • Vaevictus:   sashaW: did you ever what ever happened with that svg patch?
      Vaevictus:   I never managed to get them libraries to detect properly so I never applied it - I requested the guy to get me better configure script's part of it

    • True window transparency
    • MG_Tak:   hates how Aqua does actual window transparency
      MG_Tak:   makes things impossible to read
      sashaW:   I agree
      sashaW:   did some experimenting with this for AS, and desided against it
      MG_Tak:   thank god

  12. Compilation and debugging

    • AfterStep 2.0 stability.
    • MG_Tak:   the only reason I could find was that AS 1.8 might set the size of the wharf item before the item inside it resizes
      MG_Tak:   2.0 isn't giving me the same problem
      _den^lb:   when will there be a deb :O
      r00t:   if you want it so bad, compile it :P
      _den^lb:   but 2.0 is a developing version still, err, betta ?
      MG_Tak:   alpha
      _den^lb:   ah
      MG_Tak:   it claims to be beta but really.
      MG_Tak:   runs away before someone smites him.

    • How to obtain extensive run-time trace?
    • sashaW:   could you recompile it with --enable-gdb ?
      heviarti:   sashaW: do i feed that to configure or the compiler?
      sashaW:   ./configure --enable-gdb
      sashaW:   that will make AS spit megabytes of trace info
      heviarti:   sashaW: ok
      heviarti:   is there some way i can make it drop the log on one of my other disks?
      sashaW:   afterstep -l /my/other/disk/afterstep.log

    • What is the Segmentation Fault?
    • allanon:   the "segments" in "segmentation fault" have nothing to do with intel's so-called "real mode" segmented memory scheme
      Vaevictus:   you can get segmentation faults on MacOSX. :D
      allanon:   segments are created by the OS and the memory controller to prevent an application from being able to access another application's allocated memory
      allanon:   ram is handed out in pages (whose size varies depending on the OS and the architecture)
      Vaevictus:   trying to access another applications memory woudl be a segmentation fault too
      allanon:   a typical page size might be 16k
      Vaevictus:   though linux allows it a lot more than it should. ;)
      allanon:   if your application attempts to touch memory that was not allocated to it, the memory controller generates a page fault
      allanon:   which is them reported to the application as a segmentation fault
      MG_Tak   attempts to touch allanon's memory..
      allanon:   MG_Tak: segmentation fault
      allanon   kills the MG_Tak process

    • Compilation warning in selfdiag.c
    • heviarti:   sashaW: selfdiag.c: In function `find_func_symbol':
      heviarti:   selfdiag.c:203: warning: cast from pointer to integer of different size
      heviarti:   not 64 bit clean prolly?
      sashaW:   no, this particular warning is unavoidable

    • Automatic Installation Notification Mailing
    • r00t:   imagine how irc channels would look if all users were in #<windowmanager>
      sashaW   would not mind that - very satisfying feeling
      MG_Tak   would like that too ;)
      MG_Tak:   sashaW: you should add "registration" code to AS, like Pine has
      sashaW:   hmm, ./configure --send-postcard-to-developer ?
      MG_Tak:   sashaW: nah - it'd have to be automatic
      r00t:   ./configure --disable-send-postcard-to-developer
      sashaW   remembers that some freaks tend to raise hell about "privacy " concerns
      _den^lb>:   well, privacy is kinda nice
      Vaevictus:   sashaW: how about --send or --disable with the default to "ASK"
      sashaW:   but then again - when ppl raise hell - that promotes you :)
      r00t:   lol
      sashaW:   the only drawback I see is that I'll need to keep registration database
      Vaevictus   remembers ... mrtg does it i think... a ./configure that pauses for a few seconds in the ./configure routine saying "Ordering CD from www.website.com... .. .. .. Just kidding"
      MG_Tak:   Vaevictus: I like that.. -
      Vaevictus:   it's really cute
      sashaW   adds send-postcard-to-developer to configure