File: fvwm95.html

package info (click to toggle)
fvwm95 2.0.43ba-22
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 5,904 kB
  • ctags: 4,760
  • sloc: ansic: 46,436; makefile: 1,589; sh: 780; perl: 328
file content (1712 lines) | stat: -rw-r--r-- 71,681 bytes parent folder | download | duplicates (4)
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
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
<HTML>
<BODY>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
       fvwm95  -  F(?)  Virtual Window Manager for X11 with Win95
       look and feel


</PRE>
<H2>SYNOPSIS</H2><PRE>
       <B>fvwm95</B> [ <I>options</I> ]


</PRE>
<H2>DESCRIPTION</H2><PRE>
       <I>Fvwm95</I> is a window manager for X11.  It is a derivative of
       <I>fvwm</I>, which, in turn, is derivated from <I>twm</I>.

       Like  the standard Fvwm, Fvwm95 provides both a large vir-
       tual desktop and multiple disjoint desktops which  can  be
       used  separately  or together.  The virtual desktop allows
       you to pretend that your  video  screen  is  really  quite
       large,  and you can scroll around within the desktop.  The
       multiple disjoint desktops allow you to pretend  that  you
       really have several screens to work at, but each screen is
       completely unrelated to the others.

       Fvwm provides keyboard accelerators  which  allow  you  to
       perform  most  window-manager  functions, including moving
       and resizing windows, and operating  the  window-manager's
       menus, using keyboard shortcuts.

       Fvwm  has  also blurred the distinction between configura-
       tion commands and built-in commands that most  window-man-
       agers  make.   Configuration commands typically set fonts,
       colors, menu contents, key and  mouse  function  bindings,
       while built-in commands typically do things like raise and
       lower  windows.   Fvwm  makes  no  such  distinction,  and
       allows,  to  the  extent that is practical, anything to be
       changed at any time.

       Other noteworthy differences between Fvwm  and  other  X11
       window  managers  are  the introduction of the SloppyFocus
       and per-window focus methods.  SloppyFocus  is  focus-fol-
       lows-mouse, but focus is not removed from windows when the
       mouse leaves a window and enters the  root  window.   When
       sloppy  focus  is  used  as the default focus style, it is
       nice to make windows in which you do  not  typically  type
       into  (xmag,  xman,  xgraph, xclock, xbiff, etc) click-to-
       focus, so that your terminal window  doesn't  loose  focus
       unnecessarily.



</PRE>
<H2>COPYRIGHTS</H2><PRE>
       Since  <I>fvwm95</I>  is  derived from <I>fvwm</I> code it shares <I>fvwm</I>'s
       copyrights.

       <I>fvwm</I> is copyright 1988 by Evans  and  Sutherland  Computer
       Corporation,  Salt  Lake  City, Utah, and 1989 by the Mas-
       sachusetts  Institute  of  Technology,   Cambridge,   Mas-


       Permission to use, copy, modify, and distribute this soft-
       ware and its documentation for any purpose and without fee
       is hereby  granted,  provided  that  the  above  copyright
       notice  appear  in all copies and that both that copyright
       notice and this permission  notice  appear  in  supporting
       documentation,  and  that  the names of Evans &amp; Sutherland
       and M.I.T. not be used in advertising  in  publicity  per-
       taining  to distribution of the software without specific,
       written prior permission.

       ROBERT NATION, CHARLES  HINES,  EVANS  &amp;  SUTHERLAND,  AND
       M.I.T.  DISCLAIM  ALL WARRANTIES WITH REGARD TO THIS SOFT-
       WARE, INCLUDING ALL IMPLIED WARRANTIES OF  MERCHANTABILITY
       AND  FITNESS,  IN  NO  EVENT  SHALL  EVANS &amp; SUTHERLAND OR
       M.I.T. BE LIABLE FOR ANY SPECIAL, INDIRECT  OR  CONSEQUEN-
       TIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
       OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
       NEGLIGENCE  OR OTHER TORTUOUS ACTION, ARISING OUT OF OR IN
       CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.



</PRE>
<H2>ANATOMY OF A WINDOW</H2><PRE>
       <I>Fvwm95</I> puts a decorative 3D border  around  most  windows.
       This border consists of a bar on each side and a small "L"
       shaped section on each corner.  There is an additional top
       bar called the title bar which is used to display the name
       of the window.  In addition, there are up to 10  title-bar
       buttons.   The top, side, and bottom bars are collectively
       known as the side-bars.

       Unless the standard defaults files are modified,  pressing
       mouse button 1 in the title or side-bars will begin a move
       operation on the window.  Pressing button 1 in the  corner
       frame pieces will begin a resize operation.  Pressing but-
       ton 2 anywhere in the border brings up an  extensive  list
       of window operations.

       Up  to ten title-bar buttons may exist.  Their use is com-
       pletely user definable.  The default configuration  has  a
       title-bar  button  on each side of the title-bar.  The one
       on the left is used to bring up a list of window  options,
       regardless  of which mouse button is used.  The one on the
       right is used to iconify the window.  The number of title-
       bar  buttons used depends on which ones have mouse actions
       bound to them.  See the section on the "Mouse"  configura-
       tion parameter below.




</PRE>
<H2>THE VIRTUAL DESKTOP</H2><PRE>
       which  may  be  larger  than the screen.  Several distinct
       desktops can be accessed (concept: one  desktop  for  each
       project,  or  one  desktop for each application, when view
       applications are distinct).  Since  each  desktop  can  be
       larger  than the physical screen, windows which are larger
       than the screen or large groups  of  related  windows  can
       easily be viewed.

       The  size of the virtual desktops can be changed any time,
       by using the DeskTopSize built-in  command.   All  virtual
       desktops  must be the same size.  The total number of dis-
       tinct desktops need not be specified, but  is  limited  to
       approximately  4 billion total.  All windows on a range of
       desktops can be viewed in the Pager, a miniature  view  of
       the desktops.  The pager is an accessory program, called a
       module, which is not essential for the window  manager  to
       operate.   Windows  may  also  be listed, along with their
       geometries, in a window list, accessible as a pop-up menu,
       or  as  a separate window, called the FvwmWinList (another
       module).

       "Sticky" windows are windows which transcend  the  virtual
       desktop  by "Sticking to the screen's glass."  They always
       stay put on the screen.  This  is  convenient  for  things
       like  clocks and xbiff's, so you only need to run one such
       gadget and it always stays with you.  Icons  can  also  be
       made to stick to the glass, if desired.

       Window  geometries  are  specified relative to the current
       viewport.  That is:

            xterm -geometry +0+0

       will always show up in the upper-left hand corner  of  the
       visible portion of the screen.  It is permissible to spec-
       ify geometries which place windows on the virtual desktop,
       but off the screen.  For example, if the visible screen is
       1000 by 1000 pixels, and the desktop size is 3x3, and  the
       current  viewport  is at the upper left hand corner of the
       desktop, then invoking:

            xterm -geometry +1000+1000

       will place the window just off of  the  lower  right  hand
       corner of the screen.  It can be found by moving the mouse
       to the lower right hand corner of the screen  and  waiting
       for it to scroll into view.

       There  is currently no way to cause a window to map onto a
       desktop other  than  the  currently  active  desk,  or  is
       there...


            xterm -geometry -5-5

       will  generally place the window's lower right hand corner
       5 pixels from the lower right corner of the  visible  por-
       tion  of  the  screen. Not all applications support window
       geometries with negative offsets.

       Some applications that understand standard Xt command line
       arguments  and X resources, like xterm and xfontsel, allow
       the user to specify the start-up desk on the command line:

            xterm -xrm "*Desk:1"

       will start an xterm on desk number 1. Not all applications
       understand this option, however.

       You could achieve the same result with the following  line
       in your

            XTerm*Desk: 1




</PRE>
<H2>INITIALIZATION</H2><PRE>
       During initialization, <I>fvwm95</I> will search for a configura-
       tion file which describes key and button bindings,  and  a
       few  other  things.   The  format  of  these files will be
       described later.  First, <I>fvwm95</I> will  search  for  a  file
       named  .fvwm95rc (or just .fvwmrc based on how it was com-
       piled - .fvwm95rc is the default) in the users home direc-
       tory.      Failing     that,     it    will    look    for
       /usr/lib/X11/fvwm/system.fvwm95rc     for      system-wide
       defaults.  If that file is not found, <I>fvwm95</I> will be basi-
       cally useless.

       <I>Fvwm95</I> will set two environment variables  which  will  be
       inherited  by  its  children.   These  are  $DISPLAY which
       describes the display on which <I>fvwm95</I> is  running.   $DIS-
       PLAY  may be unix:0.0 or :0.0, which doesn't work too well
       when passed through rsh to another machine,  so  $HOSTDIS-
       PLAY  will  also  be  set  and  will  use  a network-ready
       description of the display.  $HOSTDISPLAY will always  use
       the  TCP/IP  transport  protocol (even for a local connec-
       tion) so $DISPLAY should be used for local connections, as
       it may use Unix-domain sockets, which are faster.

       <I>Fvwm95</I>  has  a  two special functions for inititalization:
       InitFunction and RestartFunction, which are executed  dur-
       ing Initialization and Restarts (respectively).  These may
       be customized in the user's  rc  file  via  the  AddToFunc
       facilitly  (described  later) to start up modules, xterms,
       executed when exitting or restarting before actually quit-
       ting or anything else.  It could  be  used  to  explicitly
       kill modules, etc.




</PRE>
<H2>ICONS</H2><PRE>
       The  basic  <I>Fvwm95</I>  configuration  uses  monochrome bitmap
       icons, similar to <I>twm</I>.  If XPM extensions are compiled in,
       then  color icons similar to ctwm, MS-Windows, or the Mac-
       intosh icons can be used.  In order to use  these  options
       you  will  need  the  XPM  package,  as  described  in the
       Fvwm.tmpl Imake configuration file.

       If both the SHAPE and XPM options are compiled in you will
       get shaped color icons, which are very spiffy.



</PRE>
<H2>MODULES</H2><PRE>
       A  module  is  a separate program which runs as a separate
       Unix process but transmits commands to <I>fvwm95</I> to  execute.
       Users  can  write  their  own  modules  to do any weird or
       bizarre manipulations without bloating  or  affecting  the
       integrity of <I>fvwm95</I> itself.

       Modules  MUST  be  spawned by <I>fvwm95</I> so that it can set up
       two pipes for <I>fvwm95</I> and the module to  communicate  with.
       The  pipes  will  already  be  open for the module when it
       starts and the file descriptors for the pipes are provided
       as command line arguments.

       Modules  can  be  spawned during <I>fvwm95</I> at any time during
       the X session by use of the Module built-in command.  Mod-
       ules  can  exist for the duration of the X session, or can
       perform a single task and exit.  If the  module  is  still
       active when <I>fvwm95</I> is told to quit, then <I>fvwm95</I> will close
       the communication pipes and wait to receive a SIGCHLD from
       the  module, indicating that it has detected the pipe clo-
       sure and has exited.  If modules fail to detect  the  pipe
       closure <I>fvwm</I> will exit after approximately 30 seconds any-
       way.  The number of simultaneously  executing  modules  is
       limited by the operating system's maximum number of simul-
       taneously open files, usually between 60 and 256.

       Modules simply transmit text commands to the <I>fvwm95</I> built-
       in command engine.  Text commands are formatted just as in
       the case of a mouse binding in the .fvwm95rc  setup  file.
       Certain  auxiliary  information is also transmitted, as in
       the sample module FvwmButtons.  The FvwmButtons module  is
       documented in its own man page.


       <I>Fvwm95</I>  attempts  to be ICCCM 1.1 compliant.  In addition,
       ICCCM states that it should be possible  for  applications
       to receive ANY keystroke, which is not consistent with the
       keyboard shortcut approach used in <I>fvwm95</I> and  most  other
       window managers.

       The ICCCM states that windows possessing the property

            WM_HINTS(WM_HINTS):
                            Client accepts input or input focus: False

       should not be given the keyboard input focus by the window
       manager.  These windows can take the input focus by  them-
       selves,  however.  A number of applications set this prop-
       erty, and yet expect the window-manager to give  them  the
       keyboard  focus anyway, so fvwm95 provides a window-style,
       "Lenience", which will allow fvwm95 to overlook this ICCCM
       rule.




</PRE>
<H2>M4 PREPROCESSING</H2><PRE>
       M4  pre-processing  is  handled by a module in fvwm95.  To
       get more details, try man FvwmM4.  In short, if  you  want
       fvwm95  to parse your files with m4, then replace the word
       "Read" with "FvwmM4" in your .fvwm95rc file (if it appears
       at all), and start fvwm95 with the command

            fvwm95 -cmd "FvwmM4 .fvwm95rc"




</PRE>
<H2>CPP PREPROCESSING</H2><PRE>
       Cpp  is  the  C-language pre-processor.  fvwm95 offers cpp
       processing which mirrors the m4 pre-processing.   To  find
       out  about  it,  re-read the M4 section above, but replace
       "m4" with "cpp".



</PRE>
<H2>AUTO-RAISE</H2><PRE>
       Windows can  be  automatically  raised  when  it  receives
       focus,  or  some  number of milliseconds after it receives
       focus, by using the auto-raise module, FvwmAuto.



</PRE>
<H2>OPTIONS</H2><PRE>
       These are the command line options that are recognized  by
       <I>fvwm95</I>:

       <B>-f</B> <I>config</I><B>_</B><I>command</I>
              Causes  <I>fvwm95</I>  to  use  <I>config</I><B>_</B><I>command</I>  instead of
              "Read .fvwm95rc" as its initialization command.
              matically  slows  things  down, but guarantees that
              <I>fvwm95</I>'s internal error messages are correct.

       <B>-d</B> <I>displayname</I>
              Manage the display called "displayname" instead  of
              the  name  obtained  from  the environment variable
              $DISPLAY.

       <B>-s</B>     On a multi-screen display, run <I>fvwm95</I> only  on  the
              screen  named  in the $DISPLAY environment variable
              or provided through the -d option. Normally, <I>fvwm95</I>
              will attempt to start up on all screens of a multi-
              screen display.

       <B>-version</B>
              Print the version of <I>fvwm95</I> to stderr.



</PRE>
<H2>CONFIGURATION FILES</H2><PRE>
       The configuration file is used to describe mouse and  but-
       ton  bindings,  colors,  the  virtual  display  size,  and
       related items.  The initialization configuration  file  is
       typically  called ".fvwm95rc".  By using the "Read" built-
       in, it is easy to read in new configuration files  as  you
       go.

       Lines beginning with '#' will be ignored by <I>fvwm95</I>.  Lines
       starting with '*' are expected to contain module  configu-
       ration  commands  (rather  than configuration commands for
       <I>fvwm95</I> itself).

       Fvwm95 makes no distinction between configuration commands
       and built-in commands, so anything mentioned in the built-
       in commands section  can be placed on a line by itself for
       fvwm95  to  execute as it reads the configuration file, or
       it can be placed as an executable command  in  a  menu  or
       bound  to a mouse button or a keyboard key.  It is left as
       an exercise for the user to  decide  which  function  make
       sense  for  initialization  and  which ones make sense for
       run-time.



</PRE>
<H2>BUILT IN FUNCTIONS</H2><PRE>
       <I>Fvwm95</I> supports a set of built-in functions which  can  be
       bound  to keyboard or mouse buttons.  If fvwm95 expects to
       find a built-in function in a command, but fails, it  will
       check  to  see  if  the specified command should have been
       "Function (rest of command)"  or  "Module  (rest  of  com-
       mand)".   This  allows  complex functions or modules to be
       invoked in a manner which is  fairly  transparent  to  the
       configuration file.

       and  will  fail. Next it will look for a user-defined com-
       plex function called "HelpMe".  If no  such  user  defined
       function  exists,  Fvwm95  will  try  to  execute a module
       called "HelpMe".

       Quotes are required only when needed to make  fvwm95  con-
       sider two or more words to be a single argument.  Unneces-
       sary quoting is allowed.  If you want a quote character in
       your text, you must escape it by using the backslash char-
       acter.  For example, if you have a pop-up menu called Win-
       dow-Ops, then you don't need quotes: Popup Window-Ops, but
       if you replace the  dash  with  a  space,  then  you  need
       quotes: Popup "Window Ops".



       AddToMenu
              Begins  or  adds to a menu definition.  Typically a
              menu definition looks like this:

                   AddToMenu Utilities "Utilities"     Title
                   +                   "Xterm"         Exec  xterm -e tcsh
                   +                   "Rxvt"          Exec  rxvt
                   +                   "Remote Logins" Popup Remote-Logins
                   +                   "Top"           Exec  rxvt -T Top -n Top -e top
                   +                   "Calculator"    Exec  xcalc
                   +                   "Xman"          Exec  xman
                   +                   "Xmag"          Exec  xmag
                   +                   "emacs"         Exec  xemacs
                   +                   "Mail"          MailFunction xmh "-font fixed"
                   +                   ""              Nop
                   +                   "Modules"       Popup Module-Popup
                   +                   ""              Nop
                   +                   "Exit Fvwm95"   Popup Quit-Verify

              The menu could be invoked via

                   Mouse 1 R       A       Menu Utilities Nop

              or

                   Mouse 1 R       A       Popup Utilities

              There is no end-of-menu symbol.  Menus do not  have
              to  be  defined  in  a  contiguous  region  of  the
              .fvwm95rc file.  The quoted portion  in  the  above
              examples  is  the  menu-label, which will appear in
              the menu when the user pops it up.   The  remaining
              portion  is a built-in command which should be exe-
              cuted if the user selects that menu item.  An empty
              menu-label ("") and the Nop function can be used to
              insert a separator into the menu.
              off by at signs, then the text between the at signs
              is expected to be the name of xpm-icon  or  bitmap-
              file  to  be drawn in the bottom left corner of the
              menu, displacing appropriatingly the menu contents.
              For example

                   AddToMenu "StartMenu@menu-linux.xpm@"

              creates  a  menu  with a picture in its bottom left
              corner.

              If the menu name contains also a sub-string set  of
              by  '^'s, then the text between '^'s is expected to
              be the name a of X11 color and the column  contain-
              ing  the  side  picture will be colorized with that
              color. For example

                   AddToMenu "StartMenu@menu-linux.xpm@^blue^"

              creates a menu with a picture in  its  bottom  left
              corner  and colorizes with blue the column contain-
              ing the picture.

              In both cases, the name of the  resulting  menu  is
              name specified, stripped of the substrings.

              If  the  menu-label  contains a sub-string which is
              set off by stars, then the text between  the  stars
              is  expected  to  be  the  name  of  an xpm-icon or
              bitmap-file to insert in the menu.  For example

                   +         "Calculator*xcalc.xpm*"  Exec xcalc

              inserts a menu item  labeled  "calculator"  with  a
              picture of a calculator above it.  The following:

                   +         "*xcalc.xpm*" Exec xcalc

              Omits  the  "Calculator" label, but leaves the pic-
              ture.

              If the menu-label contains a  sub-string  which  is
              set off by percent signs, then the text between the
              percent signs is expected to be the name of an xpm-
              icon  or  bitmap-file  to insert to the left of the
              menu label.  For example

                   +         "Calculator%xcalc.xpm%"  Exec xcalc

              inserts a menu item  labeled  "calculator"  with  a
              picture  of  a calculator to the left.  The follow-


                   +         "%xcalc.xpm%" Exec xcalc

              Omits the "Calculator" label, but leaves  the  pic-
              ture.   The  pictures used with this feature should
              be small (perhaps 16x16).




       AddToFunc
              Begins or add to a function definition.  Here's  an
              example:

                   AddToFunc Move-or-Raise         "I" Raise
                   +                               "M" Move
                   +                               "D" Lower

              The  function  name  is Move-or-Raise, and could be
              invoked from a menu or a mouse binding or key bind-
              ing:

                   Mouse 1 TS      A       Move-or-Raise

              The  quoted portion of the function tells what kind
              of action will trigger the  command  which  follows
              it.   "I"  stands for Immediate, and is executed as
              soon as the function is invoked.   "M"  stands  for
              Motion,  ie  if  the  user starts moving the mouse.
              "C" stands for Click, ie, if the user  presses  and
              releases  the  mouse  in  a  short  period  of time
              (ClickTime milliseconds).  "D" stands  for  double-
              click.   The  action "I" will cause an action to be
              performed on the button-press, if the  function  is
              invoked with prior knowledge of which window to act
              on.

              The special symbols $w and $0 through $9 are avail-
              able in the ComplexFunctions or Macros, or whatever
              you want to call  them.   Within  a  macro,  $w  is
              expanded  to  the  window-id  (expressed in hex, ie
              0x10023c) of the window for  which  the  macro  was
              called.   $0  though  $9  are  the arguments to the
              macro, so if you call

                   Key F10   R    A    Function MailFunction xmh "-font fixed"

              and MailFunction is




                   +                          "I" Next [$0] focus
                   +                          "I" None [$0] Exec $0 $1

              Then the last line of the function becomes

                   +                          "I" None [xmh] Exec xmh -font fixed

              The expansion is performed as the function is  exe-
              cuted,  so  you  can use the same function with all
              sorts of different arguments.  I could use

                   Key F11   R    A    Function MailFunction zmail "-bg pink"

              in the same .fvwm95rc, if I wanted.  An example  of
              using $w is:

                   AddToFunc PrintFunction         "I" Raise
                   +                               "I" Exec xdpr -id $w

              Note that $$ is expanded to $.



       Beep   As might be expected, this makes the terminal beep.



       ButtonStyle <I>button#</I> <I>pixmap</I>
              Defines a pixmap to be  displayed  on  a  title-bar
              button.   button#  is  the title-bar button, and is
              between 0 and 9.  Only one pixmap can be specified.

                   ButtonStyle 2 mini-close.xpm


              The  pixmap  specification can be given as an abso-
              lute or relative pathname (see PixmapPath).  If any
              of  the  pixmaps cannot be found, the entire button
              reverts to a simple rectangle with no pixmaps.



       ClickTime <I>delay</I>
              Specifies  the  maximum  delay  (in   milliseconds)
              between a button press and a button release for the
              Function built-in to consider the  action  a  mouse
              click.  The default delay is 150 milliseconds.



       Close  If  the window accepts the delete window protocol a
              message is sent to the window asking it  to  grace-
              dow is destroyed.



       ColormapFocus [FollowsMouse | FollowsFocus]
              By  default,  fvwm95  installs  the colormap of the
              window that the cursor is in.  If you use Colormap-
              Focus  FollowsFocus,  then  the  installed colormap
              will be the one for the window that  currently  has
              the keyboard focus.



       CursorMove <I>horizonal</I> <I>vertical</I>
              Moves  the mouse pointer by <I>horizontal</I> pages in the
              X direction and <I>vertical</I> pages in the Y  direction.
              Either or both entries may be negative.  Both hori-
              zontal and vertical values are expressed in percent
              of  pages,  so  "CursorMove  100 100" means to move
              down and left by one full page.  "CursorMove 50 25"
              means  to  move left half a page and down a quarter
              of a page.  The CursorMove function should  not  be
              called from pop-up menus.



       DefaultColors <I>winfore</I> <I>winback</I> <I>titlefore</I> <I>titleback</I>
              Sets   the  default  color  schemes.  Here  <I>winback</I>
              defines the background (border) color of  all  win-
              dows,  including the menu windows; /fIwinfore/fP is
              used for the menu  text;  <I>titleback</I>  specifies  the
              background  color  for  title  bars of non selected
              windows; <I>titlefore</I> is the color used in  the  title
              text of non selected windows.



       Delete Sends  a  message to a window asking that it remove
              itself, frequently causing the application to exit.



       Desk <I>arg1</I> <I>arg2</I>
              Changes to another desktop (workspace, room).

              If  <I>arg1</I>  is  non zero then the next desktop number
              will be  the  current  desktop  number  plus  <I>arg1</I>.
              Desktop numbers can be negative.

              If <I>arg1</I> is zero then the new desktop number will be
              <I>arg2</I>.

              or are currently being displayed are active.  Desk-
              top   numbers   must   be  between  2147483647  and
              -2147483648 (is that enough?).



       DeskTopSize <I>Horizontal</I>x<I>Vertical</I>
              Defines the virtual desktop size in  units  of  the
              physical screen size.



       Destroy
              Destroys   an  application  window,  which  usually
              causes the application to crash and burn.



       DestroyFunc
              Deletes a function, so that  subsequent  references
              to  it  are  no  longer valid.  You can use this to
              change the contents of a function during an  fvwm95
              session.   The function can be rebuilt using AddTo-
              Func.

                        DestroyFunc "PrintFunction"




       DestroyMenu
              Deletes a menu, so that subsequent references to it
              are  no  longer  valid.  You can use this to change
              the contents of a menu during  an  fvwm95  session.
              The menu can be rebuilt using AddToMenu.

                        DestroyMenu "Utilities"



       DestroyModuleConfig
              Deletes  module  configuration entries, so that new
              configuration lines may be  entered  instead.   You
              can  use  this  to change the the way a module runs
              during an fvwm session without  restarting.   Wild-
              cards can be used for portions of the name as well.

                          DestroyModuleConfig FvwmFormFore
                          DestroyModuleConfig FvwmButtons*



              Tells how hard it should be to change  the  desktop
              viewport  by  moving the mouse over the edge of the
              screen and how hard it should be to move  a  window
              over the edge of the screen.

              The  first  parameter  tells  how  milliseconds the
              pointer must spend on the screen edge before <I>fvwm95</I>
              will  move the viewport.  This is intended for peo-
              ple who use "EdgeScroll 100  100"  but  find  them-
              selves  accidentally flipping pages when they don't
              want to.

              The second parameter tells how many pixels over the
              edge of the screen a window's edge must move before
              it actually moves partially off the screen.

              Note that, with "EdgeScroll 0 0", it is still  pos-
              sible  to move or resize windows across the edge of
              the current screen.  By making the first  parameter
              to  EdgeResistance  10000  this  type  of motion is
              impossible.  With EdgeResistance  less  than  10000
              but greater than 0 moving over pages becomes diffi-
              cult but not impossible.



       EdgeScroll <I>horizontal</I> <I>vertical</I>
              Specifies the percentage of a page to  scroll  when
              the  cursor  hits the edge of a page.  If you don't
              want any paging or scrolling when you hit the  edge
              of   a  page  include  "EdgeScroll  0  0"  in  your
              .fvwm95rc file.   If  you  want  whole  pages,  use
              "EdgeScroll 100 100".  Both horizontal and vertical
              should be positive numbers.

              If the horizontal and vertical percentages are mul-
              tiplied  by 1000 then scrolling will wrap around at
              the edge of the  desktop.   If  "EdgeScroll  100000
              100000"  is used <I>fvwm95</I> will scroll by whole pages,
              wrapping around at the edge of the desktop.



       Exec <I>command</I>
              Executes <I>command</I>.  Exec does not require  an  addi-
              tional 'exec' at the beginning or '&amp;' at the end of
              the command.

              The following example binds function key F1 in  the
              root  window,  with no modifiers, to the exec func-
              tion.  The program rxvt will  be  started  with  an


                   Key F1 R N Exec rxvt -fg yellow -bg blue -e /bin/tcsh




       ExecUseShell <I>[shell]</I>
              Makes  the Exec command use the specified shell, or
              the value of the $SHELL environment variable if  no
              shell  is  specified, instead of the default Bourne
              shell (/bin/sh).

                   ExecUseShell
                   ExecUseShell /usr/local/bin/tcsh



       Focus  Moves the viewport or window as needed to make  the
              selected  window  visible.  Sets the keyboard focus
              to the  selected  window.   Raises  the  window  if
              needed  to  make  it  visible.   Does  not warp the
              pointer into the selected window (see  WarpToWindow
              function).  Does not de-iconify.



       Function <I>FunctionName</I>
              Used to bind a previously defined function to a key
              or mouse button.

              The following example binds mouse  button  1  to  a
              function  called  "Move-or-Raise", whose definition
              was provided as an  example  earlier  in  this  man
              page.   After  performing  this binding <I>fvwm95</I> will
              execute to move-or-raise function whenever button 1
              is pressed in a window title-bar.

                   Mouse 1 T A Function Move-or-Raise

              The keyword "Function" may be omitted if "Function-
              Name" does not coincide  with  an  fvwm95  built-in
              function name



       GotoPage  x y
              Moves  the  desktop  viewport  to  page (x,y).  The
              upper left page is (0,0), the upper right is (N,0),
              where N is one less than the current number of hor-
              izontal pages specified in the DeskTopSize command.
              The  lower  left page is (0,M), and the lower right
              page is (N,M), where M is  the  desktop's  vertical
              menu.



       HilightColors <I>textcolor</I> <I>backgroundcolor</I>
              Specified  the  text  and background colors for the
              title bar on the window  which  currently  has  the
              keyboard focus (selected window).



       IconFont <I>fontname</I>
              Makes <I>fvwm95</I> use font <I>fontname</I> for icon labels.  If
              omitted, the menu font (specified by  the  MenuFont
              configuration parameter) will be used instead.



       Iconify [ <I>value</I> ]
              Iconifies  a  window if it is not already iconified
              or de-iconifies it if it is already iconified.   If
              the  optional  argument  <I>value</I> is positive the only
              iconification will be  allowed.   It  the  optional
              argument  is negative only de-iconification will be
              allowed.



       IconPath <I>path</I>
              Specifies a colon separated list of full path names
              of  directories where bitmap (monochrome) icons can
              be found.  Each path should  start  with  a  slash.
              Environment  variables  can  be  used  here as well
              (i.e.  $HOME or ${HOME}).

              Note: if the FvwmM4 is used to parse your rc files,
              then <I>m4</I> may want to mangle the word "include" which
              will frequently show up in the IconPath or  Pixmap-
              Path  command.  To fix this add undefine(`include')
              prior to the IconPath command, or  better  use  the
              '-m4-prefix'  option  to force all m4 directives to
              have a prefix of "m4_" (see the <I>FvwmM4</I> man page).



       Key <I>keyname</I> <I>Context</I> <I>Modifiers</I> <I>Function</I>
              Binds a keyboard key to a specified <I>fvwm95</I> built-in
              function,  or  removes  the  binding if <I>Function</I> is
              '-'.  Definition is the same as for a mouse binding
              except  that  the  mouse  button number is replaced
              with a key name.  The <I>keyname</I> is one of the entries
              from /usr/include/X11/keysymdef.h, with the leading

              The  following  example  binds  the built in window
              list to pop up when Alt-Ctrl-Shift-F11 is  hit,  no
              matter where the mouse pointer is:

                   Key F11  A  SCM  WindowList


              Binding  a key to a title-bar button will not cause
              that button to appear unless a mouse  binding  also
              exists.



       KillModule <I>name</I>
              Causes  the module which was invoked with name <I>name</I>
              to be killed.  <I>name</I> may include wild-cards.



       Lower  Allows the user to lower a window.



       Maximize [  <I>horizontal</I> <I>vertical</I> ]
              Without its optional arguments Maximize causes  the
              window  to  alternately  switch  from a full-screen
              size to its normal size.

              With the optional arguments horizontal  and  verti-
              cal,  which  are  expressed as percentage of a full
              screen, the user can control the new  size  of  the
              window.   If  horizontal is greater than 0 then the
              horizontal dimension of the window will be  set  to
              horizontal*screen_width/100.  The vertical resizing
              is similar.  For example, the following will add  a
              title-bar  button  to  switch  a window to the full
              vertical size of the screen:

                   Mouse 0 4 A Maximize 0 100

              The following causes windows to be stretched to the
              full width:

                   Mouse 0 4 A Maximize 100 0

              This makes a window that is half the screen size in
              each direction:

                   Mouse 0 4 A Maximize 50 50

              Values larger than 100 can be used with caution.
              (horizontal   and/or  vertical),  then  the  scroll
              amount will be measured in pixels.



       Menu <I>menu-name</I> <I>double-click-action</I>
              Causes a previously defined menu to be popped up in
              a  "sticky"  manner.   That is, if the user invokes
              the menu with a click  action  instead  of  a  drag
              action, the menu will stay up.  The command <I>double-</I>
              <I>click-action</I> will be invoked if  the  user  double-
              clicks when bringing the menu up.



       MenuFont <I>fontname</I>
              Makes  <I>fvwm95</I>  use  font <I>fontname</I> for menu entries.
              If omitted, the fixed font will be used instead.



       Module <I>ModuleName</I>
              Specifies a module which should be  spawned  during
              initialization.   At the current time the available
              modules (included with fvwm95) are FvwmAudio (makes
              sounds to go with window manager actions), FvwmAuto
              (an auto raise module), FvwmBacker (to  change  the
              background  when  you  change desktops), FvwmBanner
              (to display a spiffy XPM), FvwmButtons (brings up a
              customizable tool bar), FvwmCpp (to preprocess your
              the mwm IconBox), FvwmIdent (to get  window  info),
              FvwmM4  (to  preprocess  your  .fvwm95rc  with m4),
              FvwmPager (a mini version of the desktop), FvwmSave
              (saves  the desktop state in .xinitrc style), Fvwm-
              SaveDesk (saves the desktop state  in  fvwm95  com-
              mands), FvwmScroll (puts scrollbars on any window),
              FvwmTalk  (to  interactively  run  fvwm  commands),
              FvwmTaskBar (a Win95-like taskbar), and FvwmWinList
              (a window list).  These modules have their own  man
              pages.   There  are  other  modules out on there as
              well.

              Modules can be short lived transient  programs  or,
              like  FvwmButtons,  can  remain for the duration of
              the X session.  Modules will be terminated  by  the
              window manager prior to restarts and quits, if pos-
              sible.  See the introductory  section  on  modules.
              The  keyword  "module" may be omitted if <I>ModuleName</I>
              is distinct from all built-in and function names.



              Specifies a  colon  separated  list  of  paths  for
              <I>fvwm95</I> to search when looking for a module to load.
              Individual  directories  do   not   need   trailing
              slashes.  Environment variables can be used here as
              well (i.e.  $HOME or ${HOME}).



       Mouse <I>Button</I> <I>Context</I> <I>Modifiers</I> <I>Function</I>
              Defines a mouse binding, or removes the binding  if
              <I>Function</I>  is  zero then any button will perform the
              specified function.  <I>Context</I>  describes  where  the
              binding applies.  Valid contexts are R for the root
              window, W for an application window, T for a window
              title bar, S for a window side, top, or bottom bar,
              F for a window frame (the corners), I for  an  Icon
              window,  or  0  through 9 for title-bar buttons, or
              any combination of these letters.   A  is  for  any
              context   except   for   title-bar   buttons.   For
              instance, a context of  FST  will  apply  when  the
              mouse  is  anywhere in a window's border except the
              title-bar buttons.

              <I>Modifiers</I> is any combination of N for no modifiers,
              C  for  control,  S for shift, M for Meta, or A for
              any modifier.  For example, a modifier of  SM  will
              apply  when  both the Meta and Shift keys are down.
              X11 modifiers mod1 through mod5 are represented  as
              the digits 1 through 5.

              <I>Function</I> is one of <I>fvwm95</I>'s built-in functions.

              The  title  bar  buttons are numbered with odd num-
              bered buttons on the left side of the title bar and
              even  numbers  on the right.  Smaller-numbered but-
              tons are displayed toward the outside of the window
              while  larger-numbered  buttons  appear  toward the
              middle of the window (0 is short for 10).  In  sum-
              mary, the buttons are numbered:

                   1 3 5 7 9    0 8 6 4 2

              The highest odd numbered button which has an action
              bound to it determines the number of buttons  drawn
              on  the  left  side  of the title bar.  The highest
              even number determines the  number  or  right  side
              buttons  which  are drawn.  Actions can be bound to
              either mouse buttons or keyboard keys.



       Move [ <I>x</I> <I>y</I> ]
              dow will be moved.  If called from the root  window
              then  the user will be allowed to select the target
              window.

              If the optional arguments x  and  y  are  provided,
              then  the  window  will  be moved so that its upper
              left corner is at location (x,y).  The units  of  x
              and y are percent-of-screen, unless a letter "p" is
              appended to each  coordinate,  in  which  case  the
              location is specified in pixels.

              Examples:

                   Mouse 1 T A Move
                   Mouse 2 T A Move 10 10
                   Mouse 3 T A Move 10p 10p

              In  the first example, an interactive move is indi-
              cated.  In the second, the window  whose  title-bar
              is  selected  will  be moved so that its upper left
              hand corner is 10 percent of the  screen  width  in
              from  the  left  of the screen, and 10 percent down
              from the top.  The final example moves  the  window
              to coordinate (10,10) pixels.



       Nop    Does  nothing.  This is used to insert a blank line
              or separator in a menu.  If the menu item  specifi-
              cation  is  Nop " ", then a blank line is inserted.
              If it looks like Nop "", then a separator  line  is
              inserted.   Can  also  be  used as the double-click
              action for Menu.



       Next [<I>conditions</I>] <I>command</I>
              Performs <I>command</I> (typically Focus) on the next win-
              dow  which  satisfies  all  <I>conditions</I>.  Conditions
              include "iconic", "!iconic", "CurrentDesk",  "Visi-
              ble",  "!Visible",  and  "CurrentScreen".  In addi-
              tion, the condition may include a  window  name  to
              match  to.   The  window name may include the wild-
              cards  *  and  ?.   The  window  name,  class,  and
              resource will be considered when attempting to find
              a match.



       None [<I>arguments</I>] <I>command</I>
              Performs <I>command</I> if no window which  satisfies  all
              <I>conditions</I>  exists.   Conditions  include "iconic",
              may include a window name to match to.  The  window
              name may include the wildcards * and ?.  The window
              name, class, and resource will be  considered  when
              attempting to find a match.



       OpaqueMoveSize <I>percentage</I>
              Tells  <I>fvwm95</I>  the  maximum  size window with which
              opaque window movement should be  used.   The  per-
              centage  is percent of the total screen area.  With
              "OpaqueMove 0" all windows will be moved using  the
              traditional  rubber-band outline.  With "OpaqueMove
              100" all windows will be  move  as  solid  windows.
              The  default  is "OpaqueMove 5", which allows small
              windows to be moved in an opaque manner  but  large
              windows are moved as rubber-bands.



       PipeRead <I>cmd</I>
              Causes  fvwm95  to read commands outputted from the
              program named <I>cmd</I>.  Useful for building up  dynamic
              menu  entries  based on a directories contents, for
              example.



       PixmapPath <I>path</I>
              Specifies a colon separated list of full path names
              of  directories  where  pixmap (color) icons can be
              found.  Each path should start with a slash.  Envi-
              ronment  variables  can  be used here as well (i.e.
              $HOME or ${HOME}).



       Popup <I>PopupName</I>
              This built-in has two purposes: to bind a menu to a
              key  or mouse button, and to bind a sub-menu into a
              menu.  The formats  for  the  two  purposes  differ
              slightly.

              To  bind  a previously defined pop-up menu to a key
              or mouse button:

                The following example binds mouse buttons 2 and 3
                to  a  pop-up called "Window Ops".  The menu will
                pop up if the buttons 2 or 3 are pressed  in  the
                window  frame,  side-bar,  or  title-bar, with no



                     Mouse 2 FST N Popup "Window Ops"
                     Mouse 3 FST N Popup "Window Ops"

                Pop-ups can be bound to keys through the  use  of
                the  Key built in.  Pop-ups can be operated with-
                out using the mouse by binding to keys and  oper-
                ating  via  the  up  arrow, down arrow, and enter
                keys.

              To bind a previously defined pop-up menu to another
              menu, for use as a sub-menu:

                The  following example defines a sub menu, "Quit-
                Verify" and binds it into  a  main  menu,  called
                "RootMenu":

                     AddToMenu Quit-Verify   "Really Quit Fvwm?" Title
                     +                       "Yes, Really Quit"  Quit
                     +                       "Restart Fvwm95"    Restart fvwm95
                     +                       "Restart Fvwm2"     Restart fvwm2
                     +                       "Restart Fvwm 1.xx" Restart fvwm
                     +                       ""                  Nop
                     +                       "No, Don't Quit"    Nop

                     AddToMenu RootMenu      "Root Menu"         Title
                     + "Open an XTerm Window"  Popup NewWindowMenu
                     + "Login as Root"         Exec xterm -fg green -T Root -n Root -e su -
                     + "Login as Anyone"       Popup AnyoneMenu
                     + "Remote Hosts"          Popup HostMenu
                     + ""                      Nop
                     + "X utilities"           Popup Xutils
                     + ""                      Nop
                     + "Fvwm Modules"          Popup Module-Popup
                     + "Fvwm Window Ops"       Popup Window-Ops
                     + ""                      Nop
                     + "Previous Focus"        Prev [*] Focus
                     + "Next Focus"            Next [*] Focus
                     + ""                      Nop
                     + "Refresh screen"        Refresh
                     + "Recapture screen"      Recapture
                     + ""                      Nop
                     + "Reset X defaults"      Exec xrdb -load $HOME/.Xdefaults
                     + ""                      Nop
                     + ""                      Nop
                     + "Quit"                  Popup Quit-Verify


              Popup differs from Menu in that pop-ups do not stay
              up if the user simply clicks.  These are Twm  style
              popup-menus,  which are a little hard on the wrist.
              Menu  provides  Motif  or  Microsoft-Windows  style
              window which satisfies all <I>conditions</I>.   Conditions
              include  "iconic", "!iconic", "CurrentDesk", "Visi-
              ble", "!Visible", and  "CurrentScreen".   In  addi-
              tion,  the  condition  may include a window name to
              match to.  The window name may  include  the  wild-
              cards  *  and  ?.   The  window  name,  class,  and
              resource will be considered when attempting to find
              a match.



       Quit   Exits <I>fvwm95</I>, generally causing X to exit too.



       Raise  Allows the user to raise a window.



       RaiseLower
              Alternately raises and lowers a window.



       Read <I>filename</I>
              Causes  fvwm95 to read commands from the file named
              <I>filename</I>.



       Recapture
              Causes fvwm95 to  recapture  all  of  its  windows.
              This  ensures that the latest style parameters will
              be used.  The recapture operation is visually  dis-
              turbing.



       Refresh
              Causes  all  windows  on the screen to redraw them-
              selves.



       Resize [ <I>x</I> <I>y</I> ]
              Allows the user to resize a window.

              If the optional arguments x  and  y  are  provided,
              then  the window will be resized so that its dimen-
              sions are <I>x</I> by <I>y</I>).  The units of x and y  are  per-
              cent-of-screen,  unless a letter "p" is appended to
              each coordinate, in  which  case  the  location  is
              Causes  <I>fvwm95</I>  to restart itself if WindowManager-
              Name is "fvwm95", or to switch to an alternate win-
              dow  manager  if  WindowManagerName  is  other than
              "fvwm95".  If the window manager  is  not  in  your
              default  search  path, then you should use the full
              path name for <I>WindowManagerName</I>.

              This command should not have a  trailing  ampersand
              or  any  command line arguments and should not make
              use of any environmental variables.  Of the follow-
              ing  examples,  the  first two are sure losers, but
              the third is OK:

                   Key F1 R N Restart fvwm &amp;
                   Key F1 R N Restart $(HOME)/bin/fvwm
                   Key F1 R N Restart /home/nation/bin/fvwm




       SendToModule <I>modulename</I> <I>string</I>
              Sends an arbitrary string (no quotes  required)  to
              all  modules matching <I>modulename</I>, which may contain
              wildcards.  This only makes sense +if the module is
              set  up  to  understand and deal with these strings
              though...  Can be used for module to module  commu-
              nication,  or  implementation  of more complex com-
              mands in modules.



       Scroll <I>horizonal</I> <I>vertical</I>
              Scrolls the virtual desktop's viewport by  <I>horizon-</I>
              <I>tal</I>  pages in the x-direction and <I>vertical</I> pages in
              the y-direction.  Either or  both  entries  may  be
              negative.   Both horizontal and vertical values are
              expressed in percent of pages, so "Scroll 100  100"
              means  to  scroll  down  and left by one full page.
              "Scroll 50 25" means to scroll left half a page and
              down  a  quarter  of  a  page.  The scroll function
              should not be called from pop-up  menus.  Normally,
              scrolling stops at the edge of the desktop.

              If the horizontal and vertical percentages are mul-
              tiplied by 1000 then scrolling will wrap around  at
              the  edge  of the desktop.  If "Scroll 100000 0" is
              executed over and over <I>fvwm95</I> will move to the next
              desktop page on each execution and will wrap around
              at the edge of the desktop, so that every  page  is
              hit in turn.

              If  the  letter  "p" is appended to each coordinate



       Stick  Makes  a window sticky if it is not already sticky,
              or non-sticky if it is already sticky.



       StickyColors <I>textcolor</I> <I>backgroundcolor</I>
              Specified the text and background  colors  for  the
              title bar of sticky windows.



       Style <I>windowname</I> <I>options</I>
              This  command  is  intended to replace the old fvwm
              1.xx global commands NoBorder,  NoTitle,  StartsOn-
              Desk,  Sticky,  StaysOnTop,  Icon,  WindowListSkip,
              CirculateSkip,    SuppressIcons,     BoundaryWidth,
              NoBoundaryWidth,   StdForeColor,  and  StdBackColor
              with a single flexible and comprehensive  window(s)
              specific  command.   This  command  is  used to set
              attributes of a window to  values  other  than  the
              default  or  to  set  the  window  manager  default
              styles.

              <I>windowname</I>  can  be  a  window's  name,  class,  or
              resource  string.   It  can contain the wildcards *
              and/or ?, which are matched in the usual Unix file-
              name  manner.   They  are  searched  in the reverse
              order stated, so that Style commands based  on  the
              name  override or augment those based on the class,
              which  override  or  augment  those  based  on  the
              resource string.

              Note  -  windows  that  have  no name (WM_NAME) are
              given a name of "Untitled", and windows that  don't
              have  a class (WM_CLASS, res_class) are given Class
              = "NoClass" and those that don't  have  a  resource
              (WM_CLASS,  res_name)  are  given Resource = "NoRe-
              source".

              <I>options</I> is a comma separated list  containing  some
              or  all  of  the keywords BorderWidth, HandleWidth,
              NoIcon/Icon,  TitleIcon,  IconBox,   NoTitle/Title,
              NoHandles/Handles,    WindowListSkip/WindowListHit,
              CirculateSkip/CirculateHit,    StaysOnTop/StaysPut,
              Sticky/Slippery,   StartIconic/StartNormal,   Fore-
              Color,   BackColor,    StartsOnDesk/StartsAnyWhere,
              IconTitle/NoIconTitle,  MWMDecor/NoDecorHint,  MWM-
              Functions/NoFuncHint,      HintOverride/NoOverride,
              NoButton/Button,     OLDecor/NoOLDecor,    StickyI-
              sient/NakedTransient,      SkipMapping/ShowMapping,
              UseStyle,  NoPPosition/UsePPosition, Lenience/NoLe-
              nience,      MouseFocus|FocusFollowsMouse/SloppyFo-
              cus/ClickToFocus.

              In the above list some options are listed as style-
              option/opposite-style-option.  The  opposite-style-
              option  for  entries  that  have them describes the
              <I>fvwm95</I> default behavior and can be used if you want
              to change the <I>fvwm95</I> default behavior.

              Icon  takes  an (optional) unquoted string argument
              which is the icon bitmap or pixmap to use.

              IconBox takes four numeric arguments:

                   IconBox   l t r b

              Where l is the left coordinate, t is the top, r  is
              right  and  b is bottom. Negative coordinates indi-
              cate distance from  the  right  or  bottom  of  the
              screen.  The iconbox is a region of the screen will
              fvwm will attempt to put icons for this window,  as
              long as they do not overlap other icons.

              StartsOnDesk  takes a numeric argument which is the
              desktop number on which the window should  be  ini-
              tially  placed.  Note that standard Xt programs can
              also specify this via a resource (eg "-xrm  '*Desk:
              1'").

              BorderWidth  takes  a numeric argument which is the
              width of the border to place the window if it  does
              not have resize-handles.

              HandleWidth  takes  a numeric argument which is the
              width of the border to place the window if it  does
              have resize-handles.

              Button  and  NoButton take a numeric argument which
              is the number of the title-bar button which  is  to
              be included/omitted.

              StickyIcon  makes the window sticky when its iconi-
              fied.  It will deiconify on top the active desktop.

              MWMDecor  makes  fvwm95  attempt  to  recognize and
              respect the mwm decoration hints that  applications
              occasionally use.

              MWMFunctions  makes fvwm95 attempt to recognize and
              respect the mwm prohibited  operations  hints  that
              but it lets you perform the operation anyway.

              OLDecor makes fvwm attempt to recognize and respect
              the olwm and olvwm hints that many older XView  and
              OLIT applications use.

              UseStyle  takes  one  arg,  which  is  the  name of
              another style.  That way  you  can  have  unrelated
              window names easily inherit similiar traits without
              retyping.   For  example:  'Style  "rxvt"  UseStyle
              "XTerm"'.

              SkipMapping  tells fvwm95 not to switch to the desk
              the window is on  when  it  gets  mapped  initially
              (useful with StartsOnDesk).

              Lenience  instructs fvwm95 to ignore the convention
              in the ICCCM which states that  if  an  application
              sets  the  input field of the wm_hints structure to
              False, then it never wants the  window  manager  to
              give it the input focus.  The only application that
              I know of which needs this is sxpm, and that  is  a
              silly  bug  with  a  trivial fix and has no overall
              effect on the program anyway.  Rumor is  that  some
              older applications have problems too.

              ClickToFocus  instructs fvwm95 to give the focus to
              the window when it is clicked in.   MouseFocus  (or
              its  alias  FocusFollowsMouse) tells fvwm95 to give
              the window the focus as soon as the pointer  enters
              the  window,  and  take  it  away  when the pointer
              leaves the window.  SloppyFocus  is  similiar,  but
              doesn't give up the focus if the pointer leaves the
              window to pass over the root window or a ClickToFo-
              cus window (unless you click on it, that is), which
              makes it possible to move the mouse out of the  way
              without losing focus.

              NoPPosition  instructs  fvwm95 to ignore the PPosi-
              tion field when adding new windows.   Adherence  to
              the  PPosition  field is required for some applica-
              tions, but if you don't have one  of  those  its  a
              real headache.

              RandomPlacement causes windows which would normally
              require user placement to be  automatically  placed
              in ever-so-slightly random locations.  For the best
              of all possible worlds use both RandomPlacement and
              SmartPlacement.

              SmartPlacement  causes windows which would normally
              require user placement to be  automatically  placed
              such position can be found user placement or random
              placement (if specified) will be used  as  a  fall-
              back  method.   For the best of all possible worlds
              use both RandomPlacement and SmartPlacement.

              An example:

                   # Change default fvwm95 behavior to no title-bars on windows!
                   # Also define a default icon.
                   Style "*" NoTitle,Icon unknown1.xpm, BorderWidth 4,HandleWidth 5

                   # now, window specific changes:
                   Style "Fvwm*"     NoHandles,Sticky,WindowListSkip,BorderWidth 0
                   Style "Fvwm Pager"                 StaysOnTop, BorderWidth 0
                   Style "*lock"     NoHandles,Sticky,StaysOnTop,WindowListSkip
                   Style "xbiff"               Sticky,           WindowListSkip
                   Style "FvwmButtons" NoHandles,Sticky,WindowListSkip
                   Style "sxpm"      NoHandles
                   Style "makerkit"

                   # Put title-bars back on xterms only!
                   Style "xterm"     Title

                   Style "rxvt"      Icon term.xpm
                   Style "xterm"     Icon rterm.xpm
                   Style "xcalc"     Icon xcalc.xpm
                   Style "xbiff"     Icon mail1.xpm
                   Style "xmh"       Icon mail1.xpm, StartsOnDesk 2
                   Style "xman"      Icon xman.xpm
                   Style "matlab"    Icon math4.xpm, StartsOnDesk 3
                   Style "xmag"      Icon magnifying_glass2.xpm
                   Style "xgraph"    Icon graphs.xpm
                   Style "FvwmButtons" Icon toolbox.xpm

                   Style "Maker"     StartsOnDesk 1
                   Style "signal"    StartsOnDesk 3

              Note that all properties for a window will be OR'ed
              together.   In  the  above example "FvwmPager" gets
              the property StaysOnTop via an  exact  window  name
              match  but  also  gets  NoHandles, Sticky, and Win-
              dowListSkip by a match to  "Fvwm*".   It  will  get
              NoTitle  by virtue of a match to "*".  If conflict-
              ing styles are specified for  a  window,  then  the
              last style specified will be used.

              If  the  NoIcon attribute is set then the specified
              window will simply disappear when it is  iconified.
              The  window  can  be  recovered through the window-
              list.  If Icon is set without an argument then  the
              NoIcon  attribute  is cleared but no icon is speci-
              fied.  An example which allows only  the  FvwmPager

                   Style "*" NoIcon
                   Style "Fvwm Pager" Icon




       Title  Does  nothing.  This is used to insert a title line
              in a popup or menu.



       WarpToWindow <I>x</I> <I>y</I>
              Warps the cursor to  the  associated  window.   The
              parameters  x and y default to percentage of window
              down and in from the upper  left  hand  corner  (or
              number  of pixels down and in if 'p' is appended to
              the numbers).



       Wait <I>name</I>
              This built-in is intended  to  be  used  in  <I>fvwm95</I>
              functions  only.  It causes execution of a function
              to pause until a  new  window  name  <I>name</I>  appears.
              <I>Fvwm95</I>  remains  fully  functional  during  a wait.
              This is particularly useful in the InitFunction  if
              you  are  trying to start windows on specific desk-
              tops:

                   AddToFunc InitFunction "I" exec xterm -geometry 80x64+0+0
                   +                      "I" Wait xterm
                   +                      "I" Desk    0 2
                   +                      "I" Exec    xmh -font fixed -geometry 507x750+0+0
                   +                      "I" Wait xmh
                   +                      "I" Desk 0 0

              The above function starts an xterm on  the  current
              desk,  waits for it to map itself, then switches to
              desk 2 and starts an xmh.   After  the  xmh  window
              appears control moves to desk 0.



       WindowList <I>options</I>
              Generates  a  pop-up menu (and pops it up) in which
              the title and (optionally) the geometry of each  of
              the  windows  currently  on the desk top are shown.
              The geometry  of  iconified  windows  is  shown  in
              brackets.   Selecting  an item from the window list
              pop-up menu will cause that window to be moved onto
              the desktop if it is currently not on it, will move
              iconify the window if it  is  iconified,  and  will
              raise  the  window. The WindowList command can take
              an optional argument list of one  or  more  of  the
              following options, separated by spaces:

              <I>ShowAllDesks</I>  - All windows on all desktops (except
              those listed in WindowSkipList directives) will  be
              shown. This is the default.

              <I>ShowCurrentDesk</I> - Only windows on the current desk-
              top will be shown.

              <I>ShowDesk</I> <I>n</I> - Only windows on desktop number <I>n</I>  will
              be shown.

              <I>ShowGeometry</I> - When specified, the geometry of each
              window will be added to the list.  This  option  is
              off by default.

              <I>UseWindowNames</I>  -  The windows are listed using the
              window (titlebar) name. This is the default

              <I>UseIconNames</I> - The  window's  icon  names  is  used
              instead of the title name.



       WindowFont <I>fontname</I>
              Makes  <I>fvwm95</I>  use font <I>fontname</I> instead of "fixed"
              for window title-bars.



       WindowsDesk <I>new</I><B>_</B><I>desk</I>
              Moves the selected window the the desktop specified
              as <I>new</I><B>_</B><I>desk</I>.



       XORvalue <I>number</I>
              Changes  the  value with which bits are XOR'ed when
              doing rubber-band window moving or resizing.   Set-
              ting this value is a trial-and-error process.



       +      Used to continue adding to the last specified func-
              tion or menu.  See the discussion for AddToFunc and
              AddToMenu.



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




</PRE>
<H2>SUPPLIED CONFIGURATION</H2><PRE>
       A sample configuration file, .fvwm95rc, is  supplied  with
       the  <I>fvwm95</I> distribution.  It is well commented and can be
       used as a source of examples for <I>fvwm95</I> configuration.




</PRE>
<H2>USE ON MULTI-SCREEN DISPLAYS</H2><PRE>
       If the -s command line argument is not given, <I>fvwm95</I>  will
       automatically  start  up  on every screen on the specified
       display.  After <I>fvwm95</I> starts each screen is treated inde-
       pendently.   Restarts of <I>fvwm95</I> need to be performed sepa-
       rately on each screen.  The  use  of  EdgeScroll  0  0  is
       strongly recommended for multi-screen displays.

       You  may  need  to  quit on each screen to quit from the X
       session completely.




</PRE>
<H2>BUGS</H2><PRE>
       As of fvwm 0.99 there  were  exactly  39.342  unidentified
       bugs.   Identified  bugs  have  mostly been fixed, though.
       Since then 9.34 bugs have been fixed.  Assuming that there
       are  at  least  10  unidentified bugs for every identified
       one, that leaves us with 39.342 -  9.32  +  10  *  9.34  =
       123.402 unidentified bugs.  If we follow this to its logi-
       cal conclusion we will have an infinite number of  uniden-
       tified  bugs before the number of bugs can start to dimin-
       ish, at which point the program will be  bug-free.   Since
       this  is  a  computer program infinity = 3.4028e+38 if you
       don't insist on double-precision.  At the current rate  of
       bug  discovery  we  should expect to achieve this point in
       3.37e+27 years.  I guess I better  plan  on  passing  this
       thing on to my children....
       tion, and in the TO-DO list.




</PRE>
<H2>AUTHOR</H2><PRE>
       Robert Nation with help from many  people,  based  on  <I>twm</I>
       code,  which  was written by Tom LaStrange.  Rob has since
       'retired' from working on fvwm though,  so  Charles  Hines
       maintains it's care and feeding currently.











































</PRE>
<HR>
<ADDRESS>
Man(1) output converted with
<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
</ADDRESS>
</BODY>
</HTML>