|
|
1.1 root 1: .TH WM 1 "13 June 1987" "X Version 11"
2: .UC 4
3: .SH NAME
4: wm \- a simple real-estate-driven window manager
5: .SH SYNOPSIS
6: .B wm
7: .SH DESCRIPTION
8: .I Wm
9: is a very primitive overlapping window manager for
10: .I X11.
11: It was developed to help with the debugging of the
12: .I X11
13: server and thus we do not advocate the user interface presented here as
14: a desired one.
15: .PP
16: .I Wm
17: decorates each mapped appliction window with a
18: banner. The banner consists of four fields. Left-to-right, they are:
19: .in 6
20: .PP
21: .I Circulate button -
22: A command button which causes the window to change its position in the stacking
23: order.
24: .PP
25: .I Title region
26: - An area in which an applications name or other
27: specified information is displayed. It is also used by the user to move the
28: window.
29: .PP
30: .I Iconize button
31: - A command button which causes the window to be replaced by an icon.
32: .PP
33: .I Resize button
34: - A command button which allows the user to change the size of the window.
35: .in -6
36: .PP
37: .I Wm
38: supports the following user actions:
39: .PP
40: Raising or lowering a window in the stack of windows
41: .br
42: .in 6
43: Locating the mouse cursor in the Circulate box of a partially obscured window
44: and clicking with any mouse button will raise this window to the top of the
45: stack of windows so that it is no longer obscured. Locating a mouse cursor in the
46: Circulate box of a window which is currently on top of the window stack will
47: send the window to the bottom of the stack.
48: .in -6
49: .PP
50: Iconizing a window
51: .br
52: .in 6
53: Locating the mouse cursor in the Iconize box and clicking any mouse button
54: will cause the window to be unmapped, and the associated icon to become
55: mapped. The icon will appear at its last location, or, if this window has
56: never been iconized, under the cursor. However, if the client program
57: initially set an icon position in the WM_HINTS property,
58: then that icon position will be used instead as the initial icon position.
59: To position an icon
60: while iconizing the window, locate the cursor in the Iconize box and press
61: down any mouse button. A rubber-band outline of the icon will appear under the
62: cursor. While holding down the mouse button, drag the cursor to the desired
63: location for the icon. The outline will follow the cursor on the screen.
64: When the outline moves to the desired location for the icon, release the
65: mouse button. The client window will be unmapped, and its icon will appear
66: at the desired location.
67: To cancel this operation while
68: the mouse button is down, click another mouse button.
69: .in -6
70: .PP
71: Deiconizing an icon
72: .br
73: .in 6
74: Locating the mouse cursor in an icon and clicking any mouse button will cause
75: the icon to be unmapped, and the associated window to become mapped.
76: To cancel this operation while
77: the mouse button is down, click another mouse button.
78: .in -6
79: .PP
80: Moving a window on the screen
81: .br
82: .in 6
83: Locating mouse cursor in the area of the title region and pressing any mouse
84: button causes a "rubber-band" outline of the window to appear.
85: As the user moves ("drags") the cursor (while holding down the mouse button),
86: the outline moves accordingly. When the button is released, the
87: window is repainted in the last location of the rubber-band outline.
88: If the user presses another mouse button
89: during the drag, the operation is cancelled, the rubber-band outline
90: disappears, and the window is not moved. Note that a portion of the title
91: region is constrained to remain on the screen.
92: .in -6
93: .PP
94: Resizing a window.
95: .br
96: .in 6
97: Locating the mouse cursor in the resize box and pressing any mouse button
98: initiates the spring-loaded resize mode. Then as soon a the cursor
99: touches a border (while the mouse button is down),
100: that border becomes a rubber-band line which follows the
101: cursor until the button is released. If the cursor then touches an adjacent
102: border, that border also becomes a rubber-band line, and the window can be
103: resized in two dimensions at once. If the cursor touches a border after
104: having touched the opposite border, the first border touched reverts to its
105: original location, and the other one becomes a rubber-band line which follows
106: the cursor. If the user presses another mouse button
107: during the drag, the operation is cancelled, the rubber-band outline
108: disappears, and the window does not change size. Note that the mouse cursor
109: has to touch a border to initiate th resize action. As in the move operation,
110: a protion of the title region is constrained to remain on the screen.
111: .in -6
112: .PP
113: Moving an icon on the screen
114: .br
115: .in 6
116: To move an icon, press the Shift key and hold it, then position the mouse cursor
117: in the icon, press any mouse button, and proceed dragging an outline of the
118: icon around by moving the mouse cursor (with the mouse button down). When the
119: outline moves to the desired position, release the mouse button and the Shift key.
120: To cancel, click another mouse button during the drag; the icon will not move.
121: .in -6
122: .SH NOTES FOR CLIENT PROGRAMS
123: .I Wm
124: uses the WM_ICON_NAME, WM_NAME, and WM_HINTS properties. It keeps
125: the name in the Title region updated as the WM_NAME property changes. It
126: keeps the name in the icon updated as the WM_ICON_NAME property changes;
127: if a client does not set the WM_ICON_NAME property,
128: .I wm
129: will use the WM_NAME property for the icon name.
130: .I Wm
131: allows only text icons, and sets the icon sizes to accommodate the icon name.
132: The maximum name length for both the icon name and the Title region name
133: is 100 characters.
134: .PP
135: Of the WMHints,
136: .I wm
137: ignores all but icon_x and icon_y, which it uses for initial icon placement.
138: These need to be set by the client before its window is mapped, because
139: .I wm
140: reads them only once, when it first encounters the window.
141: .SH ERRORS
142: If you try to run
143: .I wm
144: while you are already running a window manager,
145: .I wm
146: will let you know.
147: .SH AUTHOR
148: Hania Gajewska, DEC WSL
149: .SH BUGS
150: There are no known bugs. There are lots of lacking features.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.