3 rio, label, window, wloc \- window system
28 .I minx miny maxx maxy
64 manages asynchronous layers of text, or windows, on a raster display.
65 It also serves a variety of files for communicating with
66 and controlling windows; these are discussed in section
71 command starts a new instance of the window system.
74 option names a startup script, which typically contains several
84 at startup and allow it to provide characters as keyboard input; the
92 option initializes windows so that text scrolls;
93 the default is not to scroll.
96 argument names a font used to display text, both in
99 and as a default for any programs running in its windows; it also
107 uses the imported value of
109 if set; otherwise it imports the default font from the underlying graphics
110 server, usually the terminal's operating system.
114 command changes a window's identifying name.
118 command creates a window.
119 By default, it creates a shell window and sizes and places it automatically.
120 The geometry arguments control the size
128 the units are pixels with the
129 upper left corner of the screen at (0, 0).
132 option causes the window to be created off-screen.
137 options set the scroll mode.
140 option sets the working directory.
141 The optional command and arguments
142 define which program to run in the window.
150 to create the window and run the command. Therefore, the window and command
153 and run in a new file name space, just as if the window had been created using the interactive menu.
156 option uses the file server properties of
162 the new window's name space within the name space of the program calling
164 This means, for example, that running
166 in a CPU window will create another window whose command runs on the terminal, where
171 will create another window whose command runs on the CPU server.
175 command prints the coordinates and label of each window in its instance of
177 and is used to construct arguments for
180 Each window behaves as a separate terminal with at least one process
182 When a window is created, a new process (usually a shell; see
184 is established and bound to the window as a new process group.
185 Initially, each window acts as a simple terminal that displays character text;
186 the standard input and output of its processes
189 Other special files, accessible to the processes running in a window,
190 may be used to make the window a more general display.
191 Some of these are mentioned here; the complete set is
197 and is indicated with a dark border and text;
198 characters typed on the keyboard are available in the
200 file of the process in the current window.
201 Characters written on
203 appear asynchronously in the associated window whether or not the window
206 Windows are created, deleted and rearranged using the mouse.
207 Clicking (pressing and releasing) mouse button 1 in a non-current
208 window makes that window current and brings it in front of
209 any windows that happen to be overlapping it.
210 When the mouse cursor points to the background area or is in
211 a window that has not claimed the mouse for its own use,
212 pressing mouse button 3 activates a
213 menu of window operations provided by
215 Releasing button 3 then selects an operation.
216 At this point, a gunsight or cross cursor indicates that
217 an operation is pending.
218 The button 3 menu operations are:
223 Press button 3 where one corner of the new rectangle should
224 appear (cross cursor), and move the mouse, while holding down button 3, to the
225 diagonally opposite corner.
226 Releasing button 3 creates the window, and makes it current.
227 Very small windows may not be created.
230 Change the size and location of a window.
231 First click button 3 in the window to be changed
233 Then sweep out a window as for the
236 The window is made current.
239 Move a window to another location.
240 After pressing and holding button 3 over the window to be moved (gunsight cursor),
241 indicate the new position by dragging the rectangle to the new location.
242 The window is made current.
243 Windows may be moved partially off-screen.
246 Delete a window. Click in the window to be deleted (gunsight cursor).
247 Deleting a window causes a
249 note to be sent to all processes in the window's process group
254 Hide a window. Click in the window to be hidden (gunsight cursor);
255 it will be moved off-screen.
256 Each hidden window is given a menu entry in the button 3 menu according to the
266 Restore a hidden window.
269 Windows may also be arranged by dragging their borders.
270 Pressing button 1 or 2 over a window's border allows one to
271 move the corresponding edge or corner, while button 3
272 moves the whole window.
275 Characters typed on the keyboard or written to
277 collect in the window to form
278 a long, continuous document.
283 a contiguous string marked on the screen by reversing its color.
284 If the selected text is a null string, it is indicated by a hairline cursor
285 between two characters.
287 may be edited by mousing and typing.
288 Text is selected by pointing and clicking button 1
289 to make a null-string selection, or by pointing,
290 then sweeping with button 1 pressed.
291 Text may also be selected by double-clicking:
292 just inside a matched delimiter-pair
297 on the right, it selects all text within
298 the pair; at the beginning
299 or end of a line, it selects the line; within or at the edge of an alphanumeric word,
302 Characters typed on the keyboard replace the selected text;
303 if this text is not empty, it is placed in a
305 common to all windows but distinct from that of
308 Programs access the text in the window at a single point
309 maintained automatically by
313 is the location in the text where the next character written by
316 will appear; afterwards, the output point is the null string
317 beyond the new character.
318 The output point is also the location in the text of the next character
319 that will be read (directly from the text in the window,
320 not from an intervening buffer)
323 When such a read will occur is, however, under control of
327 In general there is text in the window after the output point,
328 usually placed there by typing but occasionally by the editing
329 operations described below.
332 will block until the text after the output point contains
333 a newline, whereupon the read may
334 acquire the text, up to and including the newline.
335 After the read, as described above, the output point will be at
336 the beginning of the next line of text.
337 In normal circumstances, therefore, typed text is delivered
338 to programs a line at a time.
339 Changes made by typing or editing before the text is read will not
340 be seen by the program reading it.
341 If the program in the window does not read the terminal,
342 for example if it is a long-running computation, there may
343 accumulate multiple lines of text after the output point;
344 changes made to all this text will be seen when the text
346 This means, for example, that one may edit out newlines in
347 unread text to forestall the associated text being read when
348 the program finishes computing.
349 This behavior is very different from most systems.
351 Even when there are newlines in the output text,
353 will not honor reads if the window is in
356 which is indicated by a white cursor and blue text and border.
357 The ESC character toggles hold mode.
358 Some programs, such as
360 automatically turn on hold mode to simplify the editing of multi-line text;
361 type ESC when done to allow
365 An EOT character (control-D) behaves exactly like newline except
366 that it is not delivered to a program when read.
367 Thus on an empty line an EOT serves to deliver an end-of-file indication:
368 the read will return zero characters.
369 Like newlines, unread EOTs may be successfully edited out of the text.
370 The BS character (control-H) erases the character before the selected text.
371 The ETB character (control-W) erases any nonalphanumeric characters, then
372 the alphanumeric word just before the selected text.
373 `Alphanumeric' here means non-blanks and non-punctuation.
374 The NAK character (control-U) erases the text after the output point,
375 and not yet read by a program, but not more than one line.
376 All these characters are typed on the keyboard and hence replace
377 the selected text; for example, typing a BS with a word selected
378 places the word in the snarf buffer, removes it from the screen,
379 and erases the character before the word.
381 An ACK character (control-F) or Insert character triggers file name completion
382 for the preceding string (see
385 Typing a left or right arrow moves the cursor one character in that direction.
386 Typing an SOH character (control-A) moves the cursor to the beginning of the
387 current line; an ENQ character (control-E) moves to the end.
389 Text may be moved vertically within the window.
390 A scroll bar on the left of the window shows in its clear portion what fragment of the
391 total output text is visible on the screen, and in its gray part what
392 is above or below view;
393 it measures characters, not lines.
394 Mousing inside the scroll bar moves text:
395 clicking button 1 with the mouse pointing inside the scroll bar
396 brings the line at the top of the
397 window to the cursor's vertical location;
398 button 3 takes the line at the cursor to the top of the window;
399 button 2, treating the scroll bar as a ruler, jumps to the indicated portion
401 Holding a button pressed in the scroll bar will cause the text
402 to scroll continuously until the button is released.
406 half a window, and page up or up-arrow scrolls back.
407 Typing the home key scrolls to the top of the window; typing the end key scrolls
410 The DEL character sends an
412 note to all processes in the window's process group.
413 Unlike the other characters, the DEL, VIEW, and up- and down-arrow
414 keys do not affect the selected text.
415 The left (right) arrow key moves the selection to one character
416 before (after) the current selection.
418 Normally, written output to a window blocks when
419 the text reaches the end of the screen;
420 a button 2 menu item toggles scrolling.
422 Other editing operations are selected from a menu on button 2.
425 operation deletes the selected text
426 from the screen and puts it in the snarf buffer;
428 copies the selected text to the buffer without deleting it;
430 replaces the selected text with the contents of the buffer;
433 copies the snarf buffer to just after the output point, adding a final newline
438 will always place text after the output point; the text so placed
439 will behave exactly as described above. Therefore when pasting
440 text containing newlines after the output point, it may be prudent
441 to turn on hold mode first.
445 menu item sends the contents of the selection (not the snarf buffer) to the
447 If the selection is empty, it sends the white-space-delimited text
448 containing the selection (typing cursor).
449 A typical use of this feature is to tell the editor to find the source of an error
450 by plumbing the file and line information in a compiler's diagnostic.
452 Opening or manipulating certain files served by
454 suppresses some of the services supplied to ordinary text windows.
457 is open, any mouse operations are the responsibility of another program
458 running in the window. Thus,
460 refrains from maintaining
462 supplying text editing or menus, interpreting the
463 VIEW key as a request to scroll, and also turns scrolling on.
467 controls interpretation of keyboard input.
468 In particular, a raw mode may be set:
469 in a raw-input window, no typed keyboard characters are special,
470 they are not echoed to the screen, and all are passed
471 to a program immediately upon reading, instead of being gathered into
478 open after putting the console in raw mode
479 has complete control of the window:
480 it interprets all mouse events, gets all keyboard characters,
481 and determines what appears on the screen.
483 .TF /srv/riowctl.\fIuser\fP.\fIpid\fP
493 in a window's name space, before the terminal's real
497 .B /srv/rio.\fIuser\fP.\fIpid\fP
501 .B /srv/riowctl.\fIuser\fP.\fIpid\fP
531 The standard input of
533 is redirected to the newly created window, so there is no way to pipe the output
534 of a program to the standard input of the new window.
537 can be used to work around this limitation.