File: NEW

package info (click to toggle)
afterstep 2.2.12-18.1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 33,184 kB
  • sloc: ansic: 201,695; sh: 5,894; xml: 3,721; makefile: 2,094; perl: 1,558; cpp: 811
file content (1380 lines) | stat: -rw-r--r-- 75,620 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
version 2.2.12 release
	* Session Management. AfterStep will utilize gnome-session for session 
		management if available. Several things needs to be manually adjusted for 
		full functionality : 
			1) go over list of autostart application files in /etc/xdg/autostart and for 
				 those that you want started and have line OnlyShowIn=  - add AfterStep to 
				 the list of environments. One example is gnome-keyring* stuff - 
				 by default it is only enabled in GNOME session.
			2) if session takes a long time to close after Logout dialog was shown - 
			   most likely culprit is the pulseaudio. You may need to get rid of it and 
				 switch to more standard and stable ALSA.
			3) It is recommended to uninstall zeitgeist daemon since its useless under 
				 AfterStep anyway but wastes resources with its snooping activity.
		  4) gnome-session will save any app that support session mamgement at the end 
			   of the session to be restarted the next time. Unless you run UBUNTU in 
				 which case this functionality my be disabled in stock gnome-session. If 
				 you want it back, then it is recommended that you build your own 
				 gnome-session from sources. On the other hand if you do not want this 
				 functionality, again, get gnome-session source and comment out contents of
				 maybe_load_saved_session_apps() function in gnome-session/gsm-session-fill.c.
			5) If you find that your GTK apps look butt-ugly - its probably because gconfd 
			   is not running. It is normally started by gnome-session, but bastardised 
				 version of it that comes with Ubuntu does not do it for some reason.
	* More Useless packages : ubuntu-desktop deja-dup
				 
version 2.2.11 release
	* new WarpPointer feel option to make pointer warping on viewport change
	  switcheable. Contributed by Chris Nix.
	* added SkipPager database flag to exclude windows from the Pager's
	  view
	
version 2.2.9 release
	* Menu  Mini Pixmaps will no longer be loaded if MenuMiniPixmaps is set 0
	  in look.
	* WinTabs is now capable of grouping similarly named tabs together to 
	  eliminated repeating patterns. See GroupTabs and GroupNameSeparator options.

version 2.2.8 release
    * Implemented possibility to define exact size of the virtual desktop, 
	  which may not be exact multiply of the screen size.
    * Automatic detection and execution of text editors and web browsers in term
      if they require it.
    * Added functionality to ascompose to allow for constantly updating display 
  	  of stuff; command line should be: 
	  script.sh | ascompose  -I --endless --click-timeout 0 -q -f -;
    * Implemented functionality to setup slicing of frame sides and titlebar 
      elements.
    * Added functionality to ascompose to set XROOTPMAP property while
	  changing root background.
    * Added UnderPointer placement type to center window under mouse pointer on 
      map.
    * Added BlurSize option to MyStyles for blurring of transparent background.
	  Use like so: BlurSize 10x20  will set horizontal blur to 10 pixels and 
	  vertical to 20.
   
version 2.2.7 release
    * Added -bc or --border-color cmd line option to WinTabs module to determine
      what color to use while rendering border around swallowed windows.
      By default the Back color of focused MyStyle will be used.
	* Added DontCoverDesktop feel flag to disable colored cover to come up during
	  different prolonged operations.

version 2.2.6 release
	* Implemented ShowHints option in WinList allowing user to specify contents
	  of displayed balloons. Supported options are : Name,IconName,ResClass,ResName
	  or any combination of these.

version 2.2.5 release
	* new policy for window groups - if a group leader or an oldest window
	  in the group is raised - whole group is raised. If any window in the
	  group get's moved to a different desktop - whole group is moved.
	  Example of a group of a windows is GIMP and pretty much any GTK app.
	* new policy for transients(Dialogs) handling - all transients are stacked
	  above its owner with newest transient on top of the others.
	  If any transient is raised - all other transients and the owner are
	  raised as well. If any transient, or an owner is moved to another desk -
	  all other transients for this owner and owner will be moved as well.
	* New ShowHints option to Wharf determining what is shown in the balloon:
	  possible options are Name, Comment and Exec, or any combination of these.
	* Wharf now withdraws similar to older aftersteps -
	  if clicked on top portion - withdraws to a top corner, if clicked on lower -
	  to bottom corner, left - left, right  - right.
	* New options in WinList config : NoCollides, AllowCollides and NoCollidesSpacing
	  These cause WinList to auto magically adjust it's size to avoid covering 
	  windows matching patterns in NoCollides. AllowCollides ovverrides NoCollides.
	  NoCollidesSpacing determines amount of free space to leave between WinList and 
	  NoCollides windows. Note that this works only in one dimension - if RowsFirst
	  then in horizontal, otherwise in vertical.
	* added menus for different layouts of Wharf, WinList and Pager.
	* cleanups in Desktop/Pictures menu.
	* Implemented fast JPEG thumnail loading using built-in libJpeg functionality.
	* added support in Wharf to load items from DesktopEntries - Two new unctions:
	  CategoryTree "name" and DesktopEntry "name".  
	  
version 2.2.4 release
	* SVG image format support using librsvg
	* implemented menu balloons. When it is enabled in look ballons will be shown for 
	  items that have attached comments (in .desktop files ) and Background pixmap 
	  previews will show when item is selected.
	* allowed for localized text in menu entries, generated from .desktop files.
	* added FolderReference setting in .include files to facilitate the above 
	  localization.
	* major cleanup and improvement of the main menu structure.
	* new look.Smooth
	
version 2.2.3 release
	* added <then><else> and <unless> tags handling
	* added <if> asxml tag to conditionally execute stuff
	* added <set> tag to asxml to be able to set variables to evaluated
  	  expressions in xml scripts
	* Implemented new option for MyStyle - Overlay <type>  <"other_mystyle">
	* Implemented support for TextureMenuItemsIndividualy 0 - which is
	  same background for all menu items
	* implemented feature to be able to suppress text labels in WinList
	* implementing themability of the folder icons in menus
	* implemented tips for menu.
	* added functionality to allow for specifying entire popups in menu entry files
	* added submenu to Desktop to be able to toggle some menu options off/on
	* implemented *WharfStretchBackground flag to wharf config - upon
	  which wharf's background is rendered similarly to menu when
	  TextureMenuItemsSeparately is not set
	* added defaults syntax to WinList config.
	* WinList can now read its options from look/feel in addition to its own file.

version 2.2.1 release
	* Disabled GTK and KDE applications colorization by default - edit 
	  base config to re-enable it

version 2.2.0 release
	* added xscreensaver to menu as a screensaver.
	* added menu for automated editing of AS config files. ASRun checks
	  if file exists in private directory, and copies it over from shared 
	  if its not.
	*Added support for fullscreen windows.
	*Made possible application of the colorscheme to KDE and GTK apps.
	*Added pretty icons to menu 
	*Updated menu to use systemwide desktop categories.
	*Added WinList option to enable icons shown next to window name : 
		ShowIcon
		ScaleIconToTextHeight
		IconSize
		IconAlign
		IconLocation
	*Added balloon options for text distance from the border 
		BalloonTextPaddingX
		BalloonTextPaddingY
	*Added Wharf option 
		*WharfFiolderOffset
	* Added Wharf MyStyles
		*WharfOddTile
		*WharfFocusedOddTile
	*Added functions : 
		ExecBrowser
		ExecEditor
		SignalReloadGTKRCFile
		KIPCSendMessageAll
		Fullscreen
		SmallMiniPixmap
		LargeMiniPixmap
  	* Added Base config settings : 
		BrowserCommand
		EditorCommand
		gtkrcPath
		gtkrc20Path
		NoKDEGlobalsTheming  (flags to disable updated to kdeglobals)
	* Changed behaviour of ToggleLayer to simply increase or descrease layer 
	  of the window
	* Added Category setting to .include files in startmenu to be able to 
	  iunclude desktop category from systemwide .desktop list.
	* new tool ASRun to run arbitrary command using AfterStep.
	

version 2.0.5 release
	* Added ReverseOrderHorizontal and REverseOrderVertical to 
	  windowbox flags
	* ButtonBevel, ButtonAlign, ButtonIconSpacing look options added 
	  to allow for better configuration of iconic window button look.
	* menu will not include any unavailable items by default. To keep them 
	  in menu - you have to add .include file with option ShowUnavailable 
	  set in it.
	* Added MinipixmapSize <Width> <Height> to look config to set maximum 
	  size of menu minipixmaps
	* Added TitleVSpacing and TitleHSpacing to MyFrame to allow for 
	  changing distance from tbar border to text.
	* Added InheritDefaults to MyFrame so to be able to init MyFrame to 
	  whatever defaults should be - in case you only want to make minor 
	  alteration to default MyFrame.
	* Added IgnoreConfig to database settings to allow for disabling of 
	  handling of ConfigRequests coming from client.
	* Added --pattern <pattern> to WinTabs module to allow for setting 
	  pattern from cmd line.
	* Lots of WinTabs fixes and improvements.
	* Added SwallowWindow "name" <module_name> built-in to allow for 
	  selection of a window to be swallowed by module, such as WinTabs.

version 2.0.4 release
	* Desktop Cover tint is now same as Base color from selected colorscheme. 
	* added look.Breeze contributed by ziph.
	* updated FAQs and moved them under ASDocGen generated tree.

version 2.0.3 release
	* added several MyFrame features : 
		TitleFHue, TitleUHue, TitleSHue, TitleFocusedHue, TitleUnfocusedHue,
		TitleStickyHue - to allow altering Hue of the titlebar on focus/unfocus.
		TitleFSaturation, TitleUSaturation, TitleSSaturation, 
		TitleFocusedSaturation, TitleUnfocusedSaturation, TitleStickySaturation - 
		to allow altering stauration of the titlebar on focus/unfocus events.
		LeftBtnAlign, RightBtnAlign to allow for different align of the right 
		and left blocks of title buttons.
	See look.Unity for sample usage of that.


version 2.0.2 release
	* added include_ordered <order_id> <path> 
	  keyword to menu .include syntax - allow including menu trees so that they 
	  all get sorted down at the bottom of menu.
	* libs can now compile as DLLs under CYGWIN.

version 2.0 release
	*Reimplemented Ident module
	*Added bunch of docs to ASDocGen and incorporated code from asimbrowser to 
	 generate HTML catalogue of installed files.
	*Added keyboard shortcuts to menus : 
		Esc or Left or Backspace - exit menu, 
		Enter or Right - run selected item or go to submenu
		Up, Down - select item
		A-Z,a-z,0-9 select item with hotkey or a first item that starts with 
		that letter.

version 2.0 beta5
	*Added Utility for autogeneration and maintenance of documentation - ASDocGen.
	 It is capable of generating docs in plain text, HTML, PHP, XML and NROFF formats,
	 from DocBook XML source, and comments embedded in source code.
	*Animate module is now back in bussiness.
	*Added TextStyles 7, 8 and 9 to implement different styles of outlined text
	*Added ability to hilite focused Wharf tile using MyStyle "*WharfFocusedTile"
	*Added ability to sort items in WinList menu in alphabetical order using 
	 WinListSortOrder 1 (in feel)
	*Added ability to remove icons from WinList menu using WinListHideIcons (in feel).

version 2.0 beta4
	* Reverted cursor settings back to feel file.
	* Used ascompose as new Banner module
	* Added to ascompose ability to process files tag by tag, allowing for animation.
	* Added to look config :
		[DontAnimateBackground	0|1]
		[CoverAnimationSteps   	<steps count>]
		[CoverAnimationType	<type>]
	  DontAnimateBackground disables non-blocking root background changing of
	full-screen backgrounds, that looks like slow animation. This is recommended
	for fast machines.
	  CoverAnimationType determines what type of animation to use while removing
	blue-tinted desktop cover - use values from 0 to 13.
	  CoverAnimationSteps is the number of animation steps to take while removing
	blue-tinted cover window.

version 2.0 beta3
	* Added WinTabs module - to swallow windows with Class matching specified
	  pattern and arrange them in single window using tabs.

version 2.0 beta2
	* Added CursorFore and CursorBack settings to look to adjust color of the mouse
	  cursor
	* Cursor settings now must be in look and not in feel.
	* Improved algorithm behind saving desktop state and restoring it on startup.
	  To enable it add the following line to autoexec :
	  Function "WorkspaceState"
	* new <color domain="ascs" name="name" argb="color_value"/> tag to ASImage XML.
          Could be used to define color aliases at the beginning of the xml script.


version 2.0 beta1
1. General
        AfterStep had been almost entirely rewritten in this new incarnation.
        Here is the short list of new architectural changes:
        1.1. New high performance and high quality image handling engine has
             been developed to fulfill GUI needs. It includes different image
             transformations, such as scaling, tiling, cropping, blurring,
             blending of arbitrary number of layers, in-memory image compression,
             support for 12 different file formats, including its own parser/writer
             of XPM files, capable of achieving much better performance then
             default libXpm. Supported image formats are :
             XPM, PNG, JPEG, XCF(GIMP image format), PPM, PNM, BMP, ICO,
             CUR, GIF, TIFF, and XML scripts. Where XML scripts allow for user to
             create script of transformations to be performed on the image at the
             time when 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 has been incorporated, as well, as 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 all the GUI elements are rendered using consistent approach
             in every module and every part of the AfterStep proper. From now on
             interface is build from so called TBars. TBar is rectangular area
             that may be focused(hilited) or unfocused and pressed or unpressed.
             Each TBar has the following structure :
                - the background of the TBar, which is defined by MyStyle and state
                  of the bar - there are two MyStyles assigned to each TBar - one
                  for focused and one for unfocused state.
                - tiles of the TBar. Tiles are smaller features that gets arranged
                  inside the bar according to its size, alignment, position and
                  order. Tiles could be static icons ( cannot be pressed );
                  blocks of buttons - each having two shapes - pressed and normal;
                  Text labels; Empty space tiles.
                  There could be up to 256 tiles, each residing on one of the cells
                  in 16x16 grid. Several tiles could reside in single cell, in
                  which case they get superimposed on top of each other.
                - bevel of the TBar. When TBar is rendered all of its tiles are
                  superimposed on top of its background, and resulting image
                  will have a 3D bevel drawn on it, using colors from same
                  MyStyle as used for background. Bevel could be switched off
                  partially or entirely. Respective configuration options has
                  been added  where appropriate. When TBar is pressed - its
                  bevel is inverted.

             When TBar is rendered all of its elements gets superimposed on top
             of each other using one of 13 blending methods supported by
             libAfterImage, with default being simple alphablending. See
             MyFrame configuration for more details. This is refrred to as
             "Composition Method".
        1.4. Due to the fact that AfterStep is using compression to store
             images in memory - there is no need to have separate root
             background handler, and so asetroot has been discontinued and
             afterstep proper now does all the root background loading.
             You could simply copy-and-paste your asteroot config into your
             look file. This has an added advantage of simplifing theme support
             for root backgrounds.
        1.5. Significant work has been done to create libAfterConf which
             provides easy means for reading configuration options, and
             facilitates implementation of any configuration tool.
        1.6. Some work has been done to improve support for themes. AfterStep
             proper and modules now load configuration files is this order :
             1 - base config
             2 - look, feel, menu, database, autoexec and module specific config
             3 - theme file
             4 - theme override file
             theme override file is needed so that user may have a list of
             critical options that he/she does not want to be changed by any
             theme.
             What is missing here is comprehensive theme building tool.
        1.7. AfterStep now make extensive use of X shaped extensions ( where
             available ) Everything could be shaped now - titlebars, Pager,
             Wharf, etc. To make some element shaped - MyStyle with BackPixmap
             type 125 or 126 should be used.
        1.8. Menus are now treated same as regular windows. They could be
             configured in database file using preset Style "ASMenu" to have
             different titlebar buttons, frame decorations, stickiness, etc.
             MenuPinOn has been changed to be just another titlebar button,
             with PinMenu function assigned to it.
        1.9. AfterStep no longer uses fixed scheme of 5 titlebar buttons on
             each side, and order of buttons could be configured in look. There
             is still limitation to have no more then 10 buttons total.

2. Look options
        2.1. Overview
                Frame decoration settings have been greately enhanced. It is now
             fashioned after MyStyle option and is called MyFrame. It allows
             for several named structures, with inheritance and ability to
             assign different structure to different apps using the database.
                As mentioned above root background settings has been moved into
             look - hence MyBackground and Desk back as look options.
                MyStyle has far greater number of BackPixmap types reflecting
             new functionality in libAfterImage.
                CompositionMethod setting has been added to different aspects
             of look.
                New options for more flexible placing of titlebar buttons has
             been added.
                Balloons now support both X and Y offset as well as MyStyle
             instead of simple back and fore colors.

        2.2. Window frame decorations (aka MyFrame)
                Each window is surrounded by so-called frame decoration. each
                frame decoration could be built from 9 TBars:
                1) Main Titlebar  with icons on left, label in the middle and
                   icons on right. Label may also have special underlying image -
                   so called Title Background. Ordering of this elements is set by
                   TitleButtonOrder setting ( see below ).
                2) 4 frame sides. Each of this have wixed width that is
                   determined by SideSize setting  or image size if SideSize is
                   omitted. Second dimension of the TBar changes to match the
                   size of the window.
                3) 4 frame corners. Each of this have both fixed width and
                   height, as determined by CornerSize setting or image size.

                   Each of above elements is rendered by generating background
                using respective MyStyle, and then overlaying images/buttons
                and text on top of it. Default overlaying is done using
                composition method alpha-blend. In case of main Titlebar that
                could be changed. Bevel is then drawn on top of the image as
                specified in respective setting.

                MyFrame contains
                complete instructions as to how window should be decorated :

             *******************************************************************
                MyFrame "name"
                      [Inherit     "name"]
                   #traditional form :
                      [North       <pixmap>]
                      [East        <pixmap>]
                      [South       <pixmap>]
                      [West        <pixmap>]
                      [NorthEast   <pixmap>]
                      [NorthWest   <pixmap>]
                      [SouthEast   <pixmap>]
                      [SouthWest   <pixmap>]
                  #alternative form :
                      [Side        North|South|East|West|Any [<pixmap>]] - if pixmap is omitted -
                                                                           empty bevel will be drawn
                      [NoSide      North|South|East|West|Any]
                      [Corner      NorthEast|SouthEast|NorthWest|SouthWest|Any <pixmap>] - if pixmap is omitted -
                                                                                           empty bevel will be drawn
                      [NoCorner    NorthEast|SouthEast|NorthWest|SouthWest|Any]
                  #new settings :
                      [TitleUnfocusedStyle   <style>]
                      [TitleFocusedStyle     <style>]
                      [TitleStickyStyle      <style>]
                      [FrameUnfocusedStyle   <style>]
                      [FrameFocusedStyle     <style>]
                      [FrameStickyStyle      <style>]
                      [TitleBackground       <pixmap>] - gets overlayed over background and under the text
                      [LeftBtnBackground     <pixmap>] - gets overlayed over background and under the left block of buttons
                      [LeftSpacerBackground  <pixmap>] - gets overlayed over background between left block of buttons and text label
                      [RightSpacerBackground <pixmap>] - gets overlayed over background between right block of buttons and text label
                      [RightBtnBackground    <pixmap>] - gets overlayed over background and under the right block of buttons

                  #additional attributes :
                      [SideSize        North|South|East|West|Any <WIDTHxLENGTH>] - pixmap will be scaled to this size
                      [SideAlign       North|South|East|West|Any Left,Top,Right,Bottom,HTiled,VTiled,HScaled,VScaled]
                                - default is HTiled,VTiled
                      [SideBevel       North|South|East|West|Any None|[Left,Top,Right,Bottom,Extra,NoOutline]]
                      [SideFocusedBevel      North|South|East|West|Any None|[Left,Top,Right,Bottom,Extra,NoOutline]]
                      [SideUnfocusedBevel    North|South|East|West|Any None|[Left,Top,Right,Bottom,Extra,NoOutline]]
                      [SideStickyBevel       North|South|East|West|Any None|[Left,Top,Right,Bottom,Extra,NoOutline]]
                                - default bevel is Right,Bottom
                      [CornerSize      NorthEast|SouthEast|NorthWest|SouthWest|Any <WIDTHxHEIGHT>]
                      [CornerAlign     NorthEast|SouthEast|NorthWest|SouthWest|Any Left,Top,Right,Bottom,HTiled,VTiled,HScaled,VScaled]
                                - default is HTiled,VTiled
                      [CornerBevel     NorthEast|SouthEast|NorthWest|SouthWest|Any None|[Left,Top,Right,Bottom,Extra,NoOutline]]
                      [CornerFocusedBevel    NorthEast|SouthEast|NorthWest|SouthWest|Any None|[Left,Top,Right,Bottom,Extra,NoOutline]]
                      [CornerUnfocusedBevel  NorthEast|SouthEast|NorthWest|SouthWest|Any None|[Left,Top,Right,Bottom,Extra,NoOutline]]
                      [CornerStickyBevel     NorthEast|SouthEast|NorthWest|SouthWest|Any None|[Left,Top,Right,Bottom,Extra,NoOutline]]
                                - default bevel is Right,Bottom
                      [TitleBevel      None|[Left,Top,Right,Bottom,Extra,NoOutline]
                      [TitleFocusedBevel     None|[Left,Top,Right,Bottom,Extra,NoOutline]
                      [TitleUnfocusedBevel   None|[Left,Top,Right,Bottom,Extra,NoOutline]
                      [TitleStickyBevel      None|[Left,Top,Right,Bottom,Extra,NoOutline]
                                - default bevel is Right,Bottom
                      [TitleAlign      None|[Left,Top,Right,Bottom]
                                - default is Left
                      [TitleBackgroundAlign  None|[Left,Top,Right,Bottom,HTiled,VTiled,HScaled,VScaled,LabelSize]
                      [LeftBtnBackAlign	     None|[Left,Top,Right,Bottom,HTiled,VTiled,HScaled,VScaled,LabelSize]
                      [LeftSpacerBackAlign   None|[Left,Top,Right,Bottom,HTiled,VTiled,HScaled,VScaled]
                      [RightSpacerBackAlign  None|[Left,Top,Right,Bottom,HTiled,VTiled,HScaled,VScaled]
                      [RightBtnBackAlign     None|[Left,Top,Right,Bottom,HTiled,VTiled,HScaled,VScaled,LabelSize]

                      [TitleCompositionMethod   testure_type]
                      [TitleFocusedCompositionMethod     testure_type]
                      [TitleUnfocusedCompositionMethod   testure_type]
                      [TitleStickyCompositionMethod      testure_type]
                                - default is 131 ( alpha-blending )
                  ~MyFrame
             *******************************************************************

                   MyFrame allows different MyStyles to be used for titlebar and
                frame decorations. If any of those are omitted - default
                setting from FWindowStyle/UWindowStyle/SWindowStyle will be
                used.

                   Important:
                        If you use semi-transparent images for frame sides -
                they will be overlayed on top of MyStyle generated background,
                so if you want it to be overlayed over root background - you
                should use MyStyle with BackPixmap set to 129 or 149.
                        Also note that unless you use MYStyle with BackPixmap
                126 and 125 - frame decorations will not be shaped. Likewise if
                you want frame part to have only the shape of the image, you
                specified, with no background at all - use MyStyle with
                BackPixmap set like so :

                        BackPixmap  126  empty.xpm

                Where empty.xpm is 1x1 completely transparent image (supplied
                as desktop/icons/common/empty.xpm ).

                   To identify side/corner it is possible to use abbreviations,
                such as: N, NW, SW, etc.
                   All the CompositionMethod settings must have one of the
                BackPixmap types from MyStyles ( ie 130-143 )
                   Align setting may have different meaning/capabilities for
                different items. When applied to text - it simply aligns text
                to sides mentioned. When applied to image - such as title
                background or frame side pixmap - it also specifies if image
                should be tiled, scaled or left same size. Make sure that you
                use HTiled,VTiled or HScaled,VScaled for frame sides -
                otherwise images on they will not be resized to match window
                size (this is also a feture :).
                   To center item specify Align to include both sides. For
                example :

                   Align Left,Right

                   will center item horizontally.

                Note that TitleBackground option allows you to specify an
                image to be used under titlebar label in addition to the MyStyle.
                This was done for better shaped titlebars. You may have MyStyle
                to be completely transparent shape, while TitleBackground some
                non-transparent image, and that will provide better visibility
                for the titlebar text.

             *******************************************************************
                [DefaultFrame  "name"]
             *******************************************************************

                   Allows specifying one of the MyFrames defined as
                DefaultFrame causing AfterStep to use it for all the windows,
                except those that have it redefined in database using Frame
                keyword.


        2.3. Root background settings ( aka MyBackground )

             *******************************************************************
                [KillBackgroundThreshold   <size>]
             *******************************************************************
                    Here <size> is the maximum number of pixels in root
                background image. If image is bigger that this - it will be
                unloaded from memory when desktop is switched and image is no
                longer in use. Use it on systems with low memory.

             *******************************************************************
                [DeskBack  desk# "background"]
             *******************************************************************

                   Specifies  what background to use for desk#. "background"
                can be either  image  filename  in  double-quotes,  or  the name
                of background definition (see below).

             *******************************************************************
                MyBackground "background_name"
                  background_option
                ~MyBackground
             *******************************************************************
                   Specifies the beginning of a background definition. The
                background  can be  referred to later by background_name.
                ~MyBackground ends a  root  background definition. The possible
                background_options follow:

             *******************************************************************
                [Use type  "data"]
             *******************************************************************
                   Specifies what to  use  as  the  root  background. Possible
                type values are :
                     0: load image from the file. In that case "data" should
                        specify filename. If "data" is omitted the AfterStep
                        will use default background image file for that desktop
                        ( typically ~/G/L/A/non-configurable/#desk_background )
                     1: Use MyStyle definition to fill root. In that case "data"
                        should specify one of the MyStyle names defined in your
                        look file.
                     2: Use external application to set root background. "data"
                        should specify command line options to this external app.
                        (afterstep is coded by default to use xli. If you wish
                        to use another application to display the root
                        background, you need to set the "--with-imageloader"
                        flag to use that application then recompile AfterStep.)

                Note: remaining Background options are valid only for type of 0!

                The remaining options will perform transformations on the
                source image, in this order:
                     Cut->Tint->Scale->Align->Pad.

             *******************************************************************
                Cut geometry
             *******************************************************************
                    will cut piece with specified geometry from the source image.

             *******************************************************************
                Tint color
             *******************************************************************
                    will  tint  image  with color. Gray60 will make image
                    lighter, while Gray40 will make image darker. Tinting
                    it two way !

             *******************************************************************
                Scale [geometry]
             *******************************************************************
                    scale image to specified geometry. If geometry is omitted
                    AfterStep will scale it to the screen size.

             *******************************************************************
                Align [type]
             *******************************************************************
                    it  will  align resulting image according to type.  Possible
                    values are :
                    1: - align to the right of the screen
                    2: - align to the bottom of the screen
                    3: - align to the bottom-right of the screen
                    0 or 4: - align to the center of the screen This option
                     works only in  conjunction  with  the following Pad option.

             *******************************************************************
             Pad [type color]
             *******************************************************************
                    will  pad image if it is smaller then screen
                    with specified color.  Possible type  values
                    are :
                    1: - pad horizontally and tile vertically
                    2: - pad vertically and tile horizontally
                    3: - pad both vertically and horizontally to make the image
                         the size of the screen.

             Note that all the above options with *asetroot appended to them
             will work in order to facilitate compatability with old configs.

        2.4. MyStyle changes

             *******************************************************************
             MaxColors dicontinued
             *******************************************************************
             *******************************************************************
             BackPixmap has numerous new types added :
             *******************************************************************
                2.4.1. Shaped BackPixmap types :
                     125 - image is scaled to the size of TBar and TBar is
                           shaped with alpha channel of this image.
                     126 - image is tiled to fill TBar area and TBar is shaped
                           with alpha channel of the image
                     127 - non-shaped scaled image. Works same as 128, but
                           scales image to fill TBar.
                     128-130 remain unchanged from old times
                     131 - tile and alphablend pixmap into underlying root
                           background.
                     132 - tile pixmap and tint underlying root background with
                           it.

                     133 - tile pixmap and add color values to underlying root
                           background.
                     134 - tile pixmap and subtract color values from underlying
                           root background.
                     135 - tile pixmap and calculate color difference
                           from underlying root background.
                     136 - tile pixmap and darken underlying root background with
                           it.
                     137 - tile pixmap and lighten underlying root background
                           with it.
                     138 - tile pixmap and screen underlying root background with
                           it.
                     139 - tile pixmap and overlay underlying root background
                           with it.
                     140 - tile pixmap and combine its hue with underlying root
                           background.
                     141 - tile pixmap and combine its saturation with underlying
                           root background.
                     142 - tile pixmap and combine its HSV value with underlying
                           root background.
                     143 - tile pixmap and underlying root background with
                           it.
                     144 - tile pixmap and colorize underlying root background
                           with it.
                     145 - tile pixmap and dissipate underlying root background
                           with it.
                     146-148 unused.

                     149 - two way tinting. Similar to 129, but lighter colors
                           will make underlying root background brighter, while
                     darker colors will make it darker.

                     values 150-165 are similar to 130-145, only pixmap is
                     scaled to fill TBar instead of tiled in it.

        2.5. Titlebar buttons
                ****************************************************************
                TitleButtonStyle  <val>
                ****************************************************************
                New style value 2 has been added. When 2 is used, then
                distance between titlebar edge and titlebuttons is determined
                by TitleButtonXOffset and TitleButtonYOffset.
                ****************************************************************
                TitleButtonXOffset  <x_offset_val>
                TitleButtonYOffset  <y_offset_val>
                ****************************************************************
                Determine distance of titlebar buttons from the edge of the
                titlebar
                ****************************************************************
                TitleButtonOrder  <context_sequence>
                ****************************************************************
                Determines layout of the titlebar. Default is 13579t08642.

        2.6. Menu settings
                ****************************************************************
                MenuPinOn  <image>
                ****************************************************************
                        MenuPinOn is deprecated and AfterStep will reinterpret
                it, and it will create new TitleButton using last unused
                TitleButton context. It will then assign PinMenu function to
                this button. This button will only be shown on titlebars
                belonging to menu windows. This button behaves just like any
                other TitleButton - for example you can use TitleButtonOrder to
                specify where it should go. Problem is you may not know what
                context AfterStep had choosen for it. The better way would be
                to explicitely define TitleButton, and assign PinMenu to it in
                your feel.

                ****************************************************************
                MenuHiTitleStyle "mystyle"
                ****************************************************************
                        AfterStep now allows you to specify MyStyle to be used
		for titlebar of currently highlighted menu. AS soo as menu goes out
		of focus its titlebar will be rendered using MenuTitleStyle.

                ****************************************************************
                MenuSubItemStyle "mystyle"
                ****************************************************************
                        AfterStep now includes this new feature: when you select
		an item from menu - this item will be marked as recently used,
		and next time menu is opened it will show all the recently used
                items from its SUBMENU. For example you do :

                Menu->Applications->rxvt

                Next time you open Main menu - it will display rxvt just ander
                Application item with some offset.

                It looks much better when this subitems are shown with
                different (smaller ) font. To achieve that - specify MyStyle
                with smaller font using MenuSubItemStyle option in your look
                file.

                This feature could be turned off or altered by using

                        RecentSubmenuItems
                option in your feel file: set it to 0 to disable feture.

                ****************************************************************
                MenuItemCompositionMethod       <130-145>
                MenuHiliteCompositionMethod     <130-145>
                MenuStippleCompositionMethod    <130-145>
                ****************************************************************
                This is a funny feature - try it and see how you like different
                values :) If you use shades of grey for your item text - you
                may not see any difference for some of this values.


        2.7. Balloon settings
             *******************************************************************
                TitleButtonBalloonBorderHilite  None|[Left,Top,Right,Bottom,Extra,NoOutline]
             *******************************************************************
             Defines bevel to be drawn around balloons - replaces BorderWidth
             setting.

             *******************************************************************
                TitleButtonBalloonXOffset  <value_in_pixels>
             *******************************************************************
                Added to complement YOffset setting.

             *******************************************************************
                TitleButtonBalloonCloseDelay <mlseconds>
             *******************************************************************
                Determines delay between when balloon is shown and before it
             disapears.

             *******************************************************************
                TitleButtonBalloonStyle  "mystyle_name"
             *******************************************************************
                MyStyle to be used to draw balloon. Note that balloons could be
             shaped (BackPixmap 125 and 126 )


3. Feel options :

        ************************************************************************
        EatFocusClick
        ************************************************************************
        When this flag is specified in feel file - AfterStep will "eat" mouse
        click, that was used to focus window in ClickToFocus mode. That means that
        if you have any function assigned to mouse clicks on the titlebars -
        those functions will only be executed if the window is already focused.

        ************************************************************************
        ClickToFocus
        ************************************************************************
        AfterStep will not switch focus following mouse pointer, but instead will
        switch it when window is explicitely clicked. This is the same as before.
        The only difference is that AfterStep will not Raise window automagically,
        unless some other settings are set. Possible way to Raise window on
        focusing include:
                - set AutoRaise 0  in feel file ( delay of 0 )
                - bind mouse clicks to Raise or RaiseLower function in feel file.
                - set ClickToRaise flag in feel file.

        ************************************************************************
        FollowTitleChanges
        ************************************************************************
        That will force AfterStep to reread and merge all the hints and
        settings from the database files, whenever window changes either its
        name or icon name.

        ************************************************************************
        PersistentMenus
        ************************************************************************
        Right now if you try to open a menu when its already opened - that will
        cause menu to close. To disable this behaviour and instead pop-up a menu
        again - use this setting.

        ************************************************************************
        NoSnapKey   <key>
        ************************************************************************
        AfterSTep now has a feature that "snaps" windows to different desktop
        features, such as edges of other windows and edge of the screen. To
        disable it temorarily you can press and hold Shift key. Use this
        setting to request different modifier key instead of Shift.

        ************************************************************************
        ScreenEdgeAttraction  <distance>
        ************************************************************************
        Defines distance from which window will be attracted to the screen
        edge, while being interactively moved/resized.

        ************************************************************************
        WindowEdgeAttraction <distance>
        ************************************************************************
        Defines distance from which window will be attracted to the other
        window's edge, while being interactively moved/resized.

        ************************************************************************
        DontRestoreFocus
        ************************************************************************
        Will not restore focus to the recently focused application wile
        switching desktops.

        ************************************************************************
        WindowBox
        ************************************************************************
        This is whole new thing to allow better window placement policy :

        WindowBox   "some_name"
              Area   WxH+X+Y
              Virtual
              MinWidth        width
              MinHeight       height
              MaxWidth        width
              MaxHeight       height
              FirstTry        SmartPlacement|RandomPlacement|Tile
              ThenTry         RandomPlacement|Cascade|Manual
              VerticalPriority
              ReverseOrder
              Desk        desk
              MinLayer    min_layer
              MaxLayer    max_layer
         ~WindowBox

        WindowBox defines area on screen/virtual desktop into which window will
        be placed on startup.
         - Area    - defines the confining region.
         - Virtual - defines that area is in virtual coordinates.
         - MinWidth,MinHeight, MaxWidth,MaxHeight - places restrains on what
        size window could be placed in this area.
         - FirstTry - strategy to use while placing window. FirstTry strategy
        will attempt to place window in empty space only.
         - ThenTry  - backup strategy to use when there is no suitable empty
        space.
         - VerticalPriority, ReverseOrder alter behaviour of some strategies  -
        Tile and Cascade, from what I remember.
         - Desk - limits effects of this WindowBox to specific desk.
         - MinLayer,MaxLayer - limits effects of the WindowBox to windows with
        layer value that falls in range.

        Note that old SmartPlacement/RandomPlacement has been coopted to be
        used for Default windowbox.

        ************************************************************************
        DefaultWindowBox  "windowbox_name"
        ************************************************************************
        Window boxes are processed in order they were listed in config. If
        suitable windowbox could not be found for the window - then windowbox
        named in DefaultWindowBox will be forced.

        ************************************************************************
        RecentSubmenuItems <number_of_items>
        ************************************************************************
        Defines maximum number of recently used submenu items to be listed
        under menu item. Set to 0 to disable feature. Default is 4.

        3.2. Functions
                ****************************************************************
                BookmarkWindow "name" new_bookmark
                ****************************************************************
                Places a bookmark on the selected window, to be used later on to
		get back to that window.

                ****************************************************************
                GoToBookmark ["name" window_bookmark ]
                ****************************************************************
                Focuses window specified by previously placed window_bookmark.

                ****************************************************************
                PinMenu ["name"]
                ****************************************************************
                Pins menu on desktop

                ****************************************************************
                SaveWorkspace "name" file_name
                ****************************************************************
                Write list of presently running applications with its position
                and desktop number into specified file. You can run this file
                at a later time as a shell script to restore state of the
                desktop. Note this does not work for many applications that
                does not provide needed ICCCM properties on its windows.

                ****************************************************************
                ChangeTheme "name" file_name
                ****************************************************************
                Sets current theme config file. Such config file may include
                settings for look, feel, menu, autoexec and any module.

4. Database options
        ************************************************************************
        NoFrame
        ************************************************************************
        Disabled frame decorations for this window

        ************************************************************************
        Frame  "frame_name"
        ************************************************************************
        Enables "frame_name" to be used for decoration of this window

        ************************************************************************
        WindowBox "window_box_name"
        ************************************************************************
        Requires AfterSTep to use specified WindowBox for placement of this
        window.

        ************************************************************************
        DefaultGeometry
        ************************************************************************
        Fill force AfterStep to replace parts of window initial placement with
        predefined values. For example :

        Style "*mozilla*"  DefaultGeometry 1024x500

        will force mozilla windows (or any windows that have "mozilla" in its
        name ) to have initial size 1024x500.
        Note that in case of mozilla its usefull to define several Styles so
        that you will get different geometries for different dialog boxes, such
        as search/download/ etc.

        ************************************************************************
        OverrideGravity  gravity
        ************************************************************************
        Some applications (notably xv) has been designed without reading widely
        accepted and used standards such as ICCCM. Gravity value is one of
        the hints that often gets misplaced by applications. As the result may
        exhibit wierd placement behaviour - such as windows moving to the
        top-left with each resize or file opened. Try specifying StaticGravity
        for such apps. Also some applications do not set gravity correctly. For
        example you start an application with geometry +10-10 which means
        SouthWestGravity and that should fix position of left and bottom sides
        of the window. But window set its gravity to NorthWestGravity instead
        and as the result window gets placed further down to the bottom by the
        size of the framne decorations. In this cases you can specify whatever
        gravity you want and thus override those stupid apps.

        Allowed values are :
                NorthWest
                North
                NorthEast
                West
                Center
                East
                SouthWest
                South
                SouthEast
                Static

        Read more about gravity at :
                http://www.freedesktop.org/standards/wm-spec/1.3/html/x362.html

        All of the options below are similar to NoPPosition stuff - it either
        enables or disables handling of specific ICCCM, MOTIF, etc. properties
        that are set on the window by application.

        4.2. ICCCM hints handling

        ************************************************************************
        HonorPPosition
        ************************************************************************
        Forces AfterStep to use PPosition hint for this window. PPosition hint
        normally means that application has determined its position due to some
        of its own configuration settings, and position has not been
        explicitely requested on the command line. This setting overrides
        NoPPosition setting in feel file.

        ************************************************************************
        NoPPosition
        ************************************************************************
        Opposite of the above. PPosition will be ignored for the matching
        window.

        ************************************************************************
        HonorGroupHints
        ************************************************************************
        ************************************************************************
        NoGroupHints
        ************************************************************************
        ************************************************************************
        HonorTransientHints
        ************************************************************************
        Will force AfterStep to use transient hint, effectively attaching
        window to its parent( placing it on the same layer , etc. )

        ************************************************************************
        NoTransientHints
        ************************************************************************
        Ignore transient hint - window will be treated as an independent
        window.

        4.2. Motif hints handling
        ************************************************************************
        HonorMotifHints
        ************************************************************************
        ************************************************************************
        NoMotifHints
        ************************************************************************
        Forces AfterStep to disregard Motif decoration and functionality hints.

        4.3. Old style GNOME hints :
        ************************************************************************
        HonorGnomeHints
        ************************************************************************
        ************************************************************************
        NoGnomeHints
        ************************************************************************

        4.4. Modern GNOME and KDE hints ( Extended WM Hints ):
        ************************************************************************
        HonorExtWMHints
        ************************************************************************
        ************************************************************************
        NoExtWMHints
        ************************************************************************

        4.5. XResources database handling :
        ************************************************************************
        HonorXResources
        ************************************************************************
        ************************************************************************
        NoXResources
        ************************************************************************
        Forces AfterStep to disregard XResources database when it comes to
        window placement.

5. XResources database.
        Each application amy have the following resources defined for it in
        .xresources:
        ************************************************************************
        Desk <desk>
        Layer <layer>
        ViewportX <x_pos>
        ViewportY <y_pos>
        ************************************************************************
        This will be checked when window is mapped and will be merged with the
        rest of the settings to determine startup status of an application.
        ( This may need to be debugged ).

6. Pager options

        ************************************************************************
        ShadeButton  <unpressed_image> [<pressed_image>]
        ************************************************************************
        You should be able to "shade" row or column of desks by pressing
        special Shade button on desk's title. Define images to be used for it
        with this option. If no images are defined - then there will be no
        button and feature will be disabled.

7. Wharf options
        ************************************************************************
        ShowLabel
        ************************************************************************
        Flag that tells Wharf to render button's label on each of its buttons,
        effectively immitating behaviour of Zharf.

        ************************************************************************
        LabelLocation  <val>
        ************************************************************************
        Specifies location of the label. Correct values are integers in range
        of 0-32. label could be drawn on each sideof the button and just on top
        of icon. It could also be aligned to different sides.

        ************************************************************************
        FlipLabel
        ************************************************************************
        Will cause Wharf to draw vertical label text.

        ************************************************************************
        FitContents
        ************************************************************************
        Wharf will draw each button so that it fits its contents perfectly (
        icon or swallowed app ). That will cause some of th eWharf's buttons to
        differ in size from others. Use in conjunction with ShapeToContents.

        ************************************************************************
        ShapeToContents
        ************************************************************************
        Will cause Wharf to use X Shaped extensions and have a window of
        non-rectangular shape. Shape is composed from the overall geometry of
        buttons ( see FitContents ), shape of the MyStyle used to draw Wharf
        background ( if BackPixmap 126 or 125 is used ), contents of each
        button - such as swallowed app's shape, label and icons.

        ************************************************************************
        AlignContents Left,Top,Right,Bottom,HTiled,VTiled,HScaled,VScaled,HCenter,VCenter
        ************************************************************************
        That will force contents of each Wharf's button to be aligned to either
        side of the button, when FitContents is not used.

        ************************************************************************
        Bevel None|[Left,Top,Right,Bottom,Extra,NoOutline]
        ************************************************************************
        Determines exact size and shape of the 3D bevel drawn around each
        button. This option is somewhat synonymous to NoBorder. If NoBorder is
        encountered after Bevel - then it will override Bevel, otherwise Bevel
        will override NoBorder.

        ************************************************************************
        CompositionMethod testure_type
                - default is 131 ( alpha-blending )
        ************************************************************************
        Determines algorithm use to blend all the icons and Wharf background to
        form button's image. Valid values are 130-145 ( see MyStyles section
        above ).

8. WinList options

        ************************************************************************
        *WinListGeometry            +x+y
        ************************************************************************
        Specifies WinList geometry. Note that only position could be specified -
        size is defined by other parameters and number of buttons.

        ************************************************************************
        *WinListMinSize             WxH
        ************************************************************************
        Minimum size of the WinList. WinList will not shrink smaller then this
        size, when number of buttons is small, but instead it will enlarge
        buttons to fill extra space. YOu can set only Width, only Height or
        both.

        ************************************************************************
        *WinListMaxSize             WxH
        ************************************************************************
        Maximum size of the WinList. WinList will not grow larger then
        this size, when number of buttons increase, but instead it will shrink
        buttons to fit in allowed space. You can set only Width, only
        Height or both. extra rows/columns could be added when max size is
        reached in one direction.

        ************************************************************************
        *WinListMaxRows             count
        ************************************************************************
        Maximum number of rows in WinList.

        ************************************************************************
        *WinListMaxColumns          count
        ************************************************************************
        Maximum number of columns in WinList.

        ************************************************************************
        *WinListMinColWidth         width
        ************************************************************************
        Minimum width of the column

        ************************************************************************
        *WinListMaxColWidth         width
        ************************************************************************
        Maximum width of the column.
        Older *WinListMaxWidth is still supported for compatibility, but
        depreciated.

        ************************************************************************
        *WinListFillRowsFirst
        ************************************************************************
        Flag, indicating that WinList should should add new row when new button
        is added, and only if MaxRows or max height is reached - add new
        column. By Default WinLIst adds columns first.

        ************************************************************************
        *WinListUseSkipList
        ************************************************************************
        Obey SkipWinList flags set by applications or database config.

        ************************************************************************
        *WinListUnfocusedStyle      "style"
        *WinListFocusedStyle        "style"
        *WinListStickyStyle         "style"
        ************************************************************************
        MyStyle to be used for rendering of window buttons for windows thar are
        in particular state.

        ************************************************************************
        *WinListUseName             0|1|2|3   # 0 - Name, 1 - icon, 2 - res_name, 3 - res_class
        ************************************************************************
        Tells WinList what type of name to use for displaying in WinList label.

        ************************************************************************
        *WinListAlign               Left,Right,Top,Bottom
        ************************************************************************
        Sets align of the text label in WinList buttons.

        ************************************************************************
        *WinListBevel               None,Left,Right,Top, Bottom, NoOutline
        ************************************************************************
        Defines 3D bevel of WinList buttons.

        ************************************************************************
        *WinListFBevel              None,Left,Right,Top, Bottom, NoOutline
        *WinListUBevel              None,Left,Right,Top, Bottom, NoOutline
        *WinListSBevel              None,Left,Right,Top, Bottom, NoOutline
        ************************************************************************
        Defines 3D bevel of WinList buttons for windows that are in specific
        state (unfocused/focused/sticky).

        ************************************************************************
        *WinListAction              [Click]1|2|3|4|5  <action>
        ************************************************************************
        Defines what function should be executed on the window when specific
        mouse button is clicked over window's button.

        ************************************************************************
        *WinListShapeToContents
        ************************************************************************
        When Shaped extensions are available - it will cause WinList to have
        non-rectangular shape to wrap around columns/rows of buttons.

        ************************************************************************
        CompositionMethod
        ************************************************************************
        Sets composition method to be used to draw WinList buttons. Default is
        alpha-blending. Valid values are in range 130-145.

        ************************************************************************
        FCompositionMethod
        UCompositionMethod
        SCompositionMethod
        ************************************************************************
        Sets composition method for buttons representing windows in particular
        state.

        ************************************************************************
        *WinListSpacing
        *WinListHSpacing
        *WinListVSpacing
        ************************************************************************
        ************************************************************************

9. Command line options.
        Every module including afterstep proper will support the following set
        of command line switches :
        -v --version         - Display version information and stop.
        -c --config          - Display Config information and stop.
        -h --help            - Display uasge information and stop.
           --debug           - Debugging: Run in Synchronous mode..
        -s --single          - Run on single screen only.
        -r --restart         - Run as if it was restarted.
                               same as regular startup, only runs RestartFunction
                               instead of InitFunction.
        -d --display          <val> - Specify what X display we should connect to.
                                      Overrides $DISPLAY environment variable.
        -f --config-file      <val> - Read all config from requested file.
                                      Use it if you want to use .steprc
                                      instead of standard config files.
        -p --user-dir         <val> - Read all the config from requested dir.
                                      Use it to override config location
                                      requested in compile time.
        -g --global-dir       <val> - Use requested dir as a shared config dir.
                                      Use it to override shared config location
                                      requested in compile time.
        -V --verbosity-level  <val> - Change verbosity of the AfterStep output.
                                      0 - will disable any output;
                                      1 - will allow only error messages;
                                      5 - both errors and warnings(default).
                                      10- maximum level of output - everything printed
           --window           <val> - Internal Use: Window in which action occurred.
                                      interface part which has triggered our startup.
           --context          <val> - Internal Use: Context in which action occurred.
                                      interface part which has triggered our startup.
           --look             <val> - Read look config from requested file.
                                      Use it if you want to use different look
                                      instead of what was selected from the menu.
           --feel             <val> - Read feel config from requested file.
                                      Use it if you want to use different feel
                                      instead of what was selected from the menu.
           --theme            <val> - Read theme config from requested file.
                                      Use it if you want to use different theme
                                      instead of what was selected from the menu.
        -l --log              <val> - Spool all output into a file instead of
                                      printing it to the console.
10. Compilation flags.

        Below are the flags that could be used with ./configure script, and env
        vars to be set in order to aid debugging.

        ************************************************************************
        --enable-gdb
        ************************************************************************
        Enables extensive output of debugging messages. Also that enables
        debugging information in executable allowing for more descriptive
        messages while debugging with gdb. Note : it is usefull to specify -l
        option to avoid huge number of messages printed on console (see above).

        ************************************************************************
        --with-libefence
        ************************************************************************
        Enables memory corruption debugging using libEFence. It is usefull when
        AfterStep crashes, and it is not then possible to backtrace/debug it in
        gdb due to corrupted stack. Enabling libEFence will cause AfterSTep to
        crash at exact moment when memory corruption occur, preventing it from
        corrupting stack.

        ************************************************************************
        --enable-audit
        ************************************************************************
        Enables built in memory utilization auditing. That will cause AfterStep
        to print error messages when memory gets deallocated that was never
        allocated. Also that will print a long list of unfreed memory when
        afterstep/module shuts down. That could be used to track down memory
        leaks.

        ************************************************************************
        export CFLAGS=-DTRACE_ASIMAGES
        ************************************************************************
        Enabling that will cause libAfterImage to keep track of all the
        ASImages being created/destroyed. You could then print list of those at
        arbitrary moments, to see what images are loaded into memory.

        ************************************************************************
11. Depreciated
        11.1. Look :
             MenuPinOn

        11.2. Wharf :
             Folders/~Folders in Wharf config - use Folder/~Folder instead

        11.3. asetroot :
             If AfterStep proper fails to read any MyBackground definitions
             from the look file - it will attempt to read asteroot file. Althou
             you may be fine for now - make sure you move this config into look
             file, as in future asetroot file may become obsolete.

        11.4. WinList :
             *WinListMaxWidth
                Use *WinListMaxSize/*WinListMinSize instead

             *WinListOrientation         across|vertical
                Use *WinListFillRowsFirst instead.

12. Discontinued
        12.1. Look :
                TextureMaxColors
                MenuPinOff
                TextGradientColor
                GradientText
                ButtonMaxColors

        12.2. Feel :
                MWMFunctionHints
                MWMDecorHints
                MWMHintOverride

        12.3. WinList :
                *WinListHideGeometry        WxH+x+y
                *WinListNoAnchor
                *WinListUseIconNames
                *WinListAutoHide