1*9a747e4fSDavid du ColombierRio is the Plan 9 window system. 2*9a747e4fSDavid du Colombier 3*9a747e4fSDavid du ColombierTo read more of this window, the up and down arrows 4*9a747e4fSDavid du Colombierscroll the text up and down half screens. 5*9a747e4fSDavid du Colombier 6*9a747e4fSDavid du ColombierTo effectively use rio, you need at least a three 7*9a747e4fSDavid du Colombierbutton mouse. If you only have a two button mouse you 8*9a747e4fSDavid du Colombiercan emulate the middle button by holding down shift key 9*9a747e4fSDavid du Colombierwhilst pressing the right button. 10*9a747e4fSDavid du Colombier 11*9a747e4fSDavid du ColombierButton 1, 2, and 3 are used to refer to the left, 12*9a747e4fSDavid du Colombiermiddle, and right buttons respectively. 13*9a747e4fSDavid du Colombier 14*9a747e4fSDavid du ColombierTHE POP-UP MENU 15*9a747e4fSDavid du Colombier 16*9a747e4fSDavid du ColombierPressing and holding down button 3 on the desktop or 17*9a747e4fSDavid du Colombiershell window will give you a menu with the following 18*9a747e4fSDavid du Colombieroptions: 19*9a747e4fSDavid du Colombier 20*9a747e4fSDavid du Colombier * New - create a new window 21*9a747e4fSDavid du Colombier * Resize - reshape a window 22*9a747e4fSDavid du Colombier * Move - move a window without reshaping it 23*9a747e4fSDavid du Colombier * Delete - close a window 24*9a747e4fSDavid du Colombier * Hide - hides a window from display (it will appear 25*9a747e4fSDavid du Colombier in this menu) 26*9a747e4fSDavid du Colombier * <label> - the label of a hidden window, 27*9a747e4fSDavid du Colombier selecting it unhides it 28*9a747e4fSDavid du Colombier 29*9a747e4fSDavid du ColombierYou select an item by releasing the button over the 30*9a747e4fSDavid du Colombiermenu item. rio uses the same button that started an 31*9a747e4fSDavid du Colombieraction throughout that operation. If you press another 32*9a747e4fSDavid du Colombierbutton during the action the operation is aborted and 33*9a747e4fSDavid du Colombierany intermediate changes are reversed. 34*9a747e4fSDavid du Colombier 35*9a747e4fSDavid du ColombierThe menu acts as a action verb selector which then 36*9a747e4fSDavid du Colombierrequires an object (i.e. window) to be picked to 37*9a747e4fSDavid du Colombierindicate which window the verb is to act on. A further 38*9a747e4fSDavid du Colombiermouse action may then be required. 39*9a747e4fSDavid du Colombier 40*9a747e4fSDavid du ColombierEXAMPLES 41*9a747e4fSDavid du Colombier 42*9a747e4fSDavid du ColombierAfter selecting New, the cursor will change into a 43*9a747e4fSDavid du Colombiercross. Using button 3 again, you should then drag out 44*9a747e4fSDavid du Colombiera rectangle to indicate the size and location of the 45*9a747e4fSDavid du Colombiernew window. When you release the button a new window 46*9a747e4fSDavid du Colombierwill be created. 47*9a747e4fSDavid du Colombier 48*9a747e4fSDavid du ColombierNew windows will contain the rc shell. Invoking a rio 49*9a747e4fSDavid du Colombierprogram from the shell will allow that program to take 50*9a747e4fSDavid du Colombierover the window. As there is no job control in the 51*9a747e4fSDavid du Colombiershell (e.g. &, fg, bg), you just create another window 52*9a747e4fSDavid du Colombierif you want to run another program concurrently. 53*9a747e4fSDavid du Colombier 54*9a747e4fSDavid du ColombierTo Resize a window, you select Resize, then click 55*9a747e4fSDavid du Colombier(remember using the same button that started the 56*9a747e4fSDavid du Colombieraction, i.e. button 3) on the window you want to 57*9a747e4fSDavid du Colombierresize. The cursor will change to a cross-hair theat 58*9a747e4fSDavid du Colombierwill allow you to drag out the desired shape of the 59*9a747e4fSDavid du Colombierwindow. 60*9a747e4fSDavid du Colombier 61*9a747e4fSDavid du ColombierAfter selecting Move, click and keep the button 62*9a747e4fSDavid du Colombierdepressed over the window you want to move, then move 63*9a747e4fSDavid du Colombierthe mouse to move the red rectangle that represents the 64*9a747e4fSDavid du Colombiernew location you want. Release the button to finish 65*9a747e4fSDavid du Colombierthe action. 66*9a747e4fSDavid du Colombier 67*9a747e4fSDavid du ColombierDelete and Hide both operate by requiring you to click 68*9a747e4fSDavid du Colombieron the window you wish to respectively Delete or Hide. 69*9a747e4fSDavid du Colombier 70*9a747e4fSDavid du ColombierWINDOW CONTROL TIPS 71*9a747e4fSDavid du Colombier 72*9a747e4fSDavid du ColombierClicking on a window brings it to the front. 73*9a747e4fSDavid du Colombier 74*9a747e4fSDavid du ColombierYou can directly change the shape of a window by 75*9a747e4fSDavid du Colombierclicking and dragging on the edge or corner of the 76*9a747e4fSDavid du Colombierwindow border. Button 1 or 2 will allow you to drag 77*9a747e4fSDavid du Colombierthe edge or corner to a new size, and Button 3 will 78*9a747e4fSDavid du Colombierallow you to move the window. 79*9a747e4fSDavid du Colombier 80*9a747e4fSDavid du ColombierThe pop-up menu remembers the last command chosen, so 81*9a747e4fSDavid du Colombieras a short cut you can just press and release button 3 82*9a747e4fSDavid du Colombierwithout moving the mouse between pressing and releasing 83*9a747e4fSDavid du Colombierto select the previous command again. 84*9a747e4fSDavid du Colombier 85*9a747e4fSDavid du ColombierBASIC TEXT CONTROL 86*9a747e4fSDavid du Colombier 87*9a747e4fSDavid du ColombierUnlike in other systems, the text cursor can only be 88*9a747e4fSDavid du Colombiercontrolled by the mouse or the side-effects of certain 89*9a747e4fSDavid du Colombiercommands. 90*9a747e4fSDavid du Colombier 91*9a747e4fSDavid du ColombierClicking with button 1 will move the text insertion 92*9a747e4fSDavid du Colombierpoint (indicated by an I-beam) to just before the 93*9a747e4fSDavid du Colombiercharacter closest to the mouse pointer. Dragging 94*9a747e4fSDavid du Colombieracross a section of text will select that portion of 95*9a747e4fSDavid du Colombiertext. It may be useful to know that the insertion 96*9a747e4fSDavid du ColombierI-beam represents an empty selection (between two 97*9a747e4fSDavid du Colombiercharacters). In text editors, the current selection is 98*9a747e4fSDavid du Colombierknown as "dot". 99*9a747e4fSDavid du Colombier 100*9a747e4fSDavid du ColombierIn the shell window button 2 will invoke a pop-up menu. 101*9a747e4fSDavid du ColombierMost of it's commands operate on dot. 102*9a747e4fSDavid du Colombier 103*9a747e4fSDavid du Colombier * cut - moves the contents of the dot to the clipboard 104*9a747e4fSDavid du Colombier if dot is non-empty 105*9a747e4fSDavid du Colombier * paste - replaces dot with the contents of the clipboard 106*9a747e4fSDavid du Colombier * snarf - copies dot to the clipboard 107*9a747e4fSDavid du Colombier * plumb - sends dot (or text surrounding dot, if dot is 108*9a747e4fSDavid du Colombier empty)to the plumber. 109*9a747e4fSDavid du Colombier * send - completes the current input line with the dot, 110*9a747e4fSDavid du Colombier if it is non-empty, or the contents of the clipboard. 111*9a747e4fSDavid du Colombier If the dot is non-empty it does a snarf at the same time. 112*9a747e4fSDavid du Colombier * scroll - toggles the automatic scrolling of the window 113*9a747e4fSDavid du Colombier on output. 114*9a747e4fSDavid du Colombier 115*9a747e4fSDavid du ColombierDouble-clicking will allow you to automatically select 116*9a747e4fSDavid du Colombiera section of text surrounding that point. The 117*9a747e4fSDavid du Colombierselection is made by an analysis of appropriate 118*9a747e4fSDavid du Colombierdelimeters. A whole line is selected by 119*9a747e4fSDavid du Colombierdouble-clicking at either end of the line. A quoted or 120*9a747e4fSDavid du Colombierbracketed selection is made by double-clicking just 121*9a747e4fSDavid du Colombierinside of the quote or bracket. 122*9a747e4fSDavid du Colombier 123*9a747e4fSDavid du ColombierSCROLLING 124*9a747e4fSDavid du Colombier 125*9a747e4fSDavid du ColombierThe arrow keys will let you scroll up or down by half a 126*9a747e4fSDavid du Colombierpage at a time. 127*9a747e4fSDavid du Colombier 128*9a747e4fSDavid du ColombierClicking button 1 on the scrollbar scrolls up by half a 129*9a747e4fSDavid du Colombierpage. Button 3 scrolls down by half a page. Button 2 130*9a747e4fSDavid du Colombierjumps to position in the document relative to the 131*9a747e4fSDavid du Colombierposition on the scrollbar clicked. Holding a button on 132*9a747e4fSDavid du Colombierthe scrollbar will have the effect of invoking the 133*9a747e4fSDavid du Colombierclicking action continuously. 134*9a747e4fSDavid du Colombier 135*9a747e4fSDavid du ColombierThe white elevator box on the scrollbar is sized 136*9a747e4fSDavid du Colombierproportionally to the proportion of the document that 137*9a747e4fSDavid du Colombieris currently visible. 138*9a747e4fSDavid du Colombier 139*9a747e4fSDavid du ColombierScrolling does not affect the text cursor. 140*9a747e4fSDavid du Colombier 141*9a747e4fSDavid du ColombierRIO AND THE RC SHELL WINDOW 142*9a747e4fSDavid du Colombier 143*9a747e4fSDavid du ColombierRc is a command interpreter for Plan 9 that provides 144*9a747e4fSDavid du Colombiersimilar facilities to UNIX's Bourne shell. See the 145*9a747e4fSDavid du Colombieradditional references at the end of this document for 146*9a747e4fSDavid du Colombierinformation specifically about rc. 147*9a747e4fSDavid du Colombier 148*9a747e4fSDavid du ColombierRio provides some additional features that enhance the 149*9a747e4fSDavid du Colombierinterface to programs that use the text console. The 150*9a747e4fSDavid du Colombierrc shell command interpreter is one such program. 151*9a747e4fSDavid du Colombier 152*9a747e4fSDavid du ColombierRc commands are typed after the prompt on the last line 153*9a747e4fSDavid du Colombierof the text buffer. The commands are sent to rc only 154*9a747e4fSDavid du Colombierafter each newline so line editing may be performed if 155*9a747e4fSDavid du Colombierdesired. You can move the cursor and edit the previous 156*9a747e4fSDavid du Colombierlines of commands and program output but none of this 157*9a747e4fSDavid du Colombierwill be interpreted by rc shell. 158*9a747e4fSDavid du Colombier 159*9a747e4fSDavid du ColombierThe interpretation of commands is supressed altogether 160*9a747e4fSDavid du Colombierwhen ESC is pressed to put the window in hold mode. 161*9a747e4fSDavid du ColombierThe window border and text will change to dark blue to 162*9a747e4fSDavid du Colombierindicate the hold mode is active. In this mode you can 163*9a747e4fSDavid du Colombiertype multiple lines of commands and edit them. 164*9a747e4fSDavid du ColombierPressing ESC again will release the hold and send the 165*9a747e4fSDavid du Colombierlines of text to the rc command interpreter. 166*9a747e4fSDavid du Colombier 167*9a747e4fSDavid du ColombierThe DEL key sends an 'interrupt' note to all processes 168*9a747e4fSDavid du Colombierin the window's process group. The usual intent is to 169*9a747e4fSDavid du Colombierterminate the execution of the current command. It is 170*9a747e4fSDavid du Colombieralso a convenient short cut for ensuring you have a 171*9a747e4fSDavid du Colombierfresh command prompt. 172*9a747e4fSDavid du Colombier 173*9a747e4fSDavid du ColombierFURTHER INFORMATION 174*9a747e4fSDavid du Colombier 175*9a747e4fSDavid du ColombierFor further information, try the rio(1) manual page. 176*9a747e4fSDavid du ColombierType "man rio" or click on rio(1) in either of these 177*9a747e4fSDavid du Colombiersentences and select plumb from the button 2 menu. 178*9a747e4fSDavid du Colombier 179