summaryrefslogtreecommitdiff
path: root/man/1/wm
diff options
context:
space:
mode:
Diffstat (limited to 'man/1/wm')
-rw-r--r--man/1/wm216
1 files changed, 216 insertions, 0 deletions
diff --git a/man/1/wm b/man/1/wm
new file mode 100644
index 00000000..06b70145
--- /dev/null
+++ b/man/1/wm
@@ -0,0 +1,216 @@
+.TH WM 1
+.SH NAME
+wm \- window manager
+.SH SYNOPSIS
+.B wm/wm
+[
+.I command
+[
+.IR arg ...
+]
+]
+.SH DESCRIPTION
+.I Wm
+is an inferno window manager, providing the control mechanism for
+the user to manage to order and position of a dynamic collection
+of application windows.
+When started, it runs
+.IR command ,
+(by default
+.BR wm/toolbar ,
+see
+.IR toolbar (1))
+By itself,
+.I wm
+does not provide any means for starting new applications;
+that facility must be provided by an auxilliary program,
+.B wm/toolbar
+being one such example.
+.SS Control Inferface
+.I Wm
+provides a control interface to programs running inside it
+through the
+.B Wmcontext
+adt that can be obtained from via the
+.B Draw->Context
+that it passes to applications that it starts
+(see
+.IR draw-context (2)).
+Control messages it understands include:
+.TP
+.B start \fIwhat\fP
+Start input on
+.IR what .
+.I What
+can be
+.BR ptr
+(pointer events),
+.BR kbd
+(keyboard events)
+and
+.BR control
+(window manager control events, see below).
+.TP
+.B key \fIcharval\fP
+Simulate a key event.
+.I Charval
+is the decimal value of the character that has been
+pressed. The character will be sent exactly as if it
+had been typed on the keyboard. This facility
+is used by
+.IR keyboard (2).
+.TP
+.B !reshape \fItag\fP \fIreqid\fP \fIminx miny maxx maxy\fI \fR[\fIhow\fR]
+Reshape or create the window named
+.IR tag .
+.I Reqid
+is ignored;
+.I minx..maxy
+give the desired bounding rectangle of the
+new window.
+If
+.I how
+is not given, or is
+.BR exact ,
+then
+.I wm
+will attempt to satisfy the request exactly.
+Otherwise,
+.I how
+tells
+.I wm
+how to determine the rectangle of the resulting image;
+it can be one of
+.B place
+(choose some appropriate position and size on screen),
+.B onscreen
+(modify the requested rectangle only so as to bring
+it on screen), or
+.B max
+(request the maximum available rectangle).
+.TP
+.B delete \fItag\fP
+Delete the window named by \fItag\fP.
+.TP
+.B raise
+Raise all windows for the current context above the others.
+.TP
+.B lower
+Send all windows for the current context to the bottom.
+.TP
+.B !move \fItag\fP \fIreqid\fP \fIstartx\fP \fIstarty\fP
+Drag window
+.I tag
+interactively.
+.I Reqid
+is ignored.
+.I Startx
+and
+.I starty
+give the location of the pointer when the drag was initiated.
+.TP
+.B !size \fItag\fP \fIreqid\fP
+Interactively resize window \fItag\fP.
+.TP
+.B fixedorigin
+By default, if a window changes position but not size,
+.I wm
+changes the origin of the window without creating a new image.
+Sending
+.B fixedorigin
+caused
+.I wm
+always to create a new image in that case.
+.TP
+.B kbdfocus \fR[\fIin\fR]
+If the decimal integer
+.I in
+is non-zero, request the keyboard focus,
+otherwise lose the keyboard focus.
+.PP
+.I Wm
+generates control messages to inform applications of
+things that have happened. These include:
+.TP
+.B rect \fIminx miny maxx maxy\fP
+The screen rectangle has changed.
+.I "minx..maxy"
+gives the new bounding box of the screen.
+.TP
+.B haskbdfocus \fIin\fP
+Informs an application of its current keyboard focus state.
+This message is generated in response to pointer events,
+and due to
+.B kbdfocus
+requests.
+.TP
+.B exit
+The window manager is closing down.
+.SS Controlling Application
+The first application that starts under
+.I wm
+is given the privilege of being able to control
+other applications running under the same
+.IR wm .
+If it sends a
+.B start control
+message, then it will also see any control requests
+sent by applications that
+.I wm
+itself does not understand and information about applications
+starting and leaving.
+.I Wm
+accepts several other control messages from its
+controlling application:
+.TP
+.B ctl \fIid\fP \fImsg\fP
+Send message
+.I msg
+to application
+.IR id .
+.TP
+.B endcontrol
+Relinquish controller status.
+The next application that starts will get control status.
+This is used, for instance, to segue smoothly between
+.IR logon (1)
+and
+.IR toolbar (1).
+.PP
+If the controlling application has started control messages,
+.I wm
+sends it the following messages:
+.TP
+.B newclient \fIid\fP
+A new client has connected, identified by
+.IR id .
+.TP
+.B delclient \fIid\fP
+Client
+.I id
+has left.
+.TP
+.B request \fIid\fP \fImsg\fP
+Client
+.I id
+sent the request
+.I msg
+to the window manager, which it did not understand.
+This facility is used, for instance, by
+.IR toolbar (1)
+to implement the
+.B task
+and
+.B untask
+requests.
+.SH FILES
+.TP
+.B /chan/wmrect
+File holding current screen rectangle.
+.SH SOURCE
+.B /appl/wm/wm.b
+.SH "SEE ALSO"
+.IR toolbar (1),
+.IR logon (1),
+.IR tkclient (2),
+.IR wmclient (2)