Use the correct border hints to calculate screen width.
[fvwm.git] / doc / fvwm / virtualDesktop.xml
blobcd2b337f8d365d26c47498f3334413d5b812db41
1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE part PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
3   "../docbook-xml/docbookx.dtd"
5 ]>
7 <section id='virtual_desktop'>
8 <title>The Virtual Desktop</title>
9 <para>Fvwm provides multiple virtual desktops for users who wish to use
10 them.  The screen is a viewport onto a
11 <emphasis remap='I'>desktop</emphasis>
12 which may be larger than the screen.  Several distinct desktops
13 can be accessed (concept: one desktop for each project, or one
14 desktop for each application, when view applications are
15 distinct).  Since each desktop can be larger than the physical
16 screen, divided into m by n
17 <emphasis remap='I'>pages</emphasis>
18 which are each the size of the physical screen, windows which are
19 larger than the screen or large groups of related windows can
20 easily be viewed.</para>
22 <para>The (m by n) size (i.e. number of pages) of the virtual desktops
23 can be changed any time, by using the
24 <fvwmref cmd="DesktopSize"/>
25 command.  All virtual desktops must be (are) the same
26 size.  The total number of distinct desktops does not need to be
27 specified, but is limited to approximately 4 billion total. All
28 windows on a range of desktops can be viewed in the
29 <fvwmref mod="FvwmPager"/>,
30 a miniature view of the desktops.  The pager is an accessory
31 program, called a module, which is not essential for the window
32 manager to operate.  Windows may also be listed, along with their
33 geometries, in a window list, accessible as a pop-up menu, or as a
34 separate window, called the
35 <fvwmref mod="FvwmWinList"/>
36 (another module).</para>
38 <para>Fvwm keeps the windows on the desktop in a layered stacking order;
39 a window in a lower layer never obscures a window in a higher
40 layer. The layer of a window can be changed by using the
41 <fvwmref cmd="Layer"/>
42 command.  The concept of layers is a generalization of the
43 <fvwmref cmd="Style" opt="StaysOnTop"/>
44 flag of older fvwm versions. The
45 <fvwmref cmd="Style" opt="StaysOnTop"/> and
46 <fvwmref cmd="Style" opt="StaysPut"/>
47 <fvwmref cmd="Style"/>
48 options are now implemented by putting the windows in suitable
49 layers and the previously missing
50 <fvwmref cmd="Style" opt="StaysOnBottom"/>
51 <fvwmref cmd="Style"/>
52 option has been added.</para>
54 <para>
55 <fvwmref cmd="Style" opt="Sticky"/>
56 windows are windows which transcend the virtual desktop by
57 "Sticking to the screen's glass".  They always stay put on the
58 screen. This is convenient for things like clocks and xbiffs, so
59 you only need to run one such gadget and it always stays with you.
60 Icons can also be made to stick to the glass, if desired.</para>
62 <para>Window geometries are specified relative to the current viewport.
63 That is:</para>
65 <command>xterm -geometry +0+0</command>
67 <para>creates a window in the upper left hand corner of the visible
68 portion of the screen.  It is permissible to specify geometries
69 which place windows on the virtual desktop, but off the screen.
70 For example, if the visible screen is 1000 by 1000 pixels, and the
71 desktop size is 3x3, and the current viewport is at the upper left
72 hand corner of the desktop, invoking:</para>
74 <command>xterm -geometry +1000+1000</command>
76 <para>places a window just off of the lower right hand corner of the
77 screen.  It can be found by moving the mouse to the lower right
78 hand corner of the screen and waiting for it to scroll into view.
79 A geometry specified as something like:</para>
81 <command>xterm -geometry -5-5</command>
83 <para>places the window's lower right hand corner 5 pixels from the
84 lower right corner of the visible portion of the screen.  Not all
85 applications support window geometries with negative offsets.
86 Some applications place the window's upper right hand corner 5
87 pixels above and to the left of the upper left hand corner of the
88 screen; others may do just plain bizarre things.</para>
90 <para>There are several ways to cause a window to map onto a desktop or
91 page other than the currently active one. The geometry technique
92 mentioned above (specifying x,y coordinates larger than the
93 physical screen size), however, suffers from the limitation of
94 being interpreted relative to the current viewport: the window may
95 not consistently appear on a specific page, unless you always
96 invoke the application from the same page.</para>
98 <para>A better way to place windows on a different page, screen or desk
99 from the currently mapped viewport is to use the
100 <fvwmref cmd="Style" opt="StartsOnPage"/> or
101 <fvwmref cmd="Style" opt="StartsOnScreen"/>
102 style specification (the successors to the older
103 <fvwmref cmd="Style" opt="StartsOnDesk"/>
104 style) in your
105 <filename>config</filename>
106 file.  The placement is consistent: it does
107 not depend on your current location on the virtual desktop.</para>
109 <para>Some applications that understand standard Xt command line
110 arguments and X resources, like xterm and xfontsel, allow the user
111 to specify the start-up desk or page on the command line:</para>
113 <command>xterm -xrm "*Desk:1"</command>
115 <para>starts an xterm on desk number 1;</para>
117 <command>xterm -xrm "*Page:3 2 1"</command>
119 <para>starts an xterm two pages to the right and one down from the upper
120 left hand page of desk number 3.  Not all applications understand
121 the use of these options, however.  You could achieve the same
122 results with the following lines in your
123 <filename>.Xdefaults</filename>
124 file:</para>
126 <command>XTerm*Desk: 1</command>
128 <para>or</para>
130 <command>XTerm*Page: 3 2 1</command>
132 </section>