1.\" Copyright (c) 1985, 1990, 1993 2.\" The Regents of the University of California. All rights reserved. 3.\" 4.\" This code is derived from software contributed to Berkeley by 5.\" Edward Wang at The University of California, Berkeley. 6.\" 7.\" %sccs.include.redist.roff% 8.\" 9.\" @(#)window.1 8.1 (Berkeley) 06/06/93 10.\" 11.Dd 12.Dt WINDOW 1 13.Os BSD 4.3 14.Sh NAME 15.Nm window 16.Nd window environment 17.Sh SYNOPSIS 18.Nm window 19.Op Fl t 20.Op Fl f 21.Op Fl d 22.Op Fl e Ar escape-char 23.Op Fl c Ar command 24.Sh DESCRIPTION 25.Nm Window 26implements a window environment on 27.Tn ASCII 28terminals. 29.Pp 30A window is a rectangular portion of the physical terminal 31screen associated with a set of processes. Its size and 32position can be changed by the user at any time. Processes 33communicate with their window in the same way they normally 34interact with a terminal\-through their standard input, output, 35and diagnostic file descriptors. The window program handles the 36details of redirecting input an output to and from the 37windows. At any one time, only one window can receive 38input from the keyboard, but all windows can simultaneously send output 39to the display. 40.Pp 41When 42.Nm window 43starts up, the commands (see long commands below) 44contained in the file 45.Pa .windowrc 46in the user's home directory are 47executed. If it does not exist, two equal sized windows spanning 48the terminal screen are created by default. 49.Pp 50The command line options are 51.Bl -tag -width Fl 52.It Fl t 53Turn on terse mode (see 54.Ic terse 55command below). 56.It Fl f 57Fast. Don't perform any startup action. 58.It Fl d 59Ignore 60.Pa .windowrc 61and create the two default 62windows instead. 63.It Fl e Ar escape-char 64Set the escape character to 65.Ar escape-char . 66.Ar Escape-char 67can be a single character, or in the form 68.Ic ^X 69where 70.Ar X 71is any character, meaning 72.No control\- Ns Ar X . 73.It Fl c Ar command 74Execute the string 75.Ar command 76as a long command (see below) 77before doing anything else. 78.El 79.Pp 80Windows can overlap and are framed as necessary. Each window 81is named by one of the digits ``1'' to ``9''. This one-character 82identifier, as well as a user definable label string, are displayed 83with the window on the top edge of its frame. A window can be 84designated to be in the 85.Ar foreground , 86in which case it will always be 87on top of all normal, non-foreground windows, and can be covered 88only by other foreground windows. A window need not be completely 89within the edges of the terminal screen. Thus a large window 90(possibly larger than the screen) may be positioned to show only 91a portion of its full size. 92.Pp 93Each window has a cursor and a set of control functions. Most intelligent 94terminal operations such as line and 95character deletion and insertion are supported. Display modes 96such as underlining and reverse video are available if they are 97supported by the terminal. In addition, 98similar to terminals with multiple pages of memory, 99each window has a text buffer which can have more lines than the window 100itself. 101.Ss Process Environment 102With each newly created window, a shell program is spawned with its 103process environment tailored to that window. Its standard input, 104output, and diagnostic file descriptors are bound to one end of either 105a pseudo-terminal 106.Xr (pty 4 ) 107or a 108.Ux 109domain socket 110.Xr (socketpair 4 ) . 111If a pseudo-terminal is used, then its special 112characters and modes (see 113.Xr stty 1 ) 114are copied from the physical 115terminal. A 116.Xr termcap 5 117entry tailored to this window is created 118and passed as environment 119.Xr (environ 5 ) 120variable 121.Ev TERMCAP . 122The termcap entry contains the window's size and 123characteristics as well as information from the physical terminal, 124such as the existence of underline, reverse video, and other display 125modes, and the codes produced by the terminal's function keys, 126if any. In addition, the window size attributes of the pseudo-terminal 127are set to reflect the size of this window, and updated whenever 128it is changed by the user. In particular, the editor 129.Xr vi 1 130uses 131this information to redraw its display. 132.Ss Operation 133During normal execution, 134.Nm window 135can be in one of two states: 136conversation mode and command mode. In conversation mode, the 137terminal's real cursor is placed at the cursor position of a particular 138window--called the current window--and input from the keyboard is sent 139to the process in that window. The current window is always 140on top of all other windows, except those in foreground. In addition, 141it is set apart by highlighting its identifier and label in reverse video. 142.Pp 143Typing 144.Nm window Ns 's 145escape character (normally 146.Ic ^P ) 147in conversation 148mode switches it into command mode. In command mode, the top line of 149the terminal screen becomes the command prompt window, and 150.Nm window 151interprets input from the keyboard as commands to manipulate windows. 152.Pp 153There are two types of commands: short commands are usually one or two 154key strokes; long commands are strings either typed by the user in the 155command window (see the 156.Dq Ic \&: 157command below), or read from a file (see 158.Ic source 159below). 160.Ss Short Commands 161Below, 162.Ar \&# 163represents one of the digits ``1'' to ``9'' 164corresponding to the windows 1 to 9. 165.Ic ^X 166means 167.No control\- Ns Ar X , 168where 169.Ar X 170is any character. In particular, 171.Ic ^^ 172is 173.Li control\-^. 174.Ar Escape 175is the escape key, or 176.Ic ^\&[ . 177.Bl -tag -width Ds 178.It Ar # 179Select window 180.Ar # 181as the current window 182and return to conversation mode. 183.It Ic \&% Ns Ar # 184Select window 185.Ar # 186but stay in command mode. 187.It Ic ^^ 188Select the previous window and return to conversation 189mode. This is useful for toggling between two windows. 190.It Ic escape 191Return to conversation mode. 192.It Ic ^P 193Return to conversation mode and write 194.Ic ^P 195to the 196current window. Thus, typing two 197.Ic ^P Ns 's 198in conversation 199mode sends one to the current window. If the 200.Nm window 201escape is changed to some other character, that 202character takes the place of 203.Ic ^P 204here. 205.It Ic ? 206List a short summary of commands. 207.It Ic ^L 208Refresh the screen. 209.It Ic q 210Exit 211.Nm window . 212Confirmation is requested. 213.It Ic ^Z 214Suspend 215.Nm window . 216.It Ic w 217Create a new window. The user is prompted for the positions 218of the upper left and lower right corners of the window. 219The cursor is placed on the screen and the keys ``h'', ``j'', 220``k'', and ``l'' 221move the cursor left, down, up, and right, respectively. 222The keys ``H'', ``J'', ``K'', and ``L'' move the cursor to the respective 223limits of the screen. Typing a number before the movement keys 224repeats the movement that number of times. Return enters the cursor position 225as the upper left corner of the window. The lower right corner 226is entered in the same manner. During this process, 227the placement of the new window is indicated by a rectangular 228box drawn on the screen, corresponding to where the new window 229will be framed. Typing escape at any point 230cancels this command. 231.Pp 232This window becomes the current window, 233and is given the first available ID. The default buffer size 234is used (see 235.Ar default_nline 236command below). 237.Pp 238Only fully visible windows can be created this way. 239.It Ic c Ns Ar # 240Close window 241.Ar # . 242The process in the window is sent 243the hangup signal (see 244.Xr kill 1 ) . 245.Xr Csh 1 246should 247handle this signal correctly and cause no problems. 248.It Ic m Ns Ar # 249Move window 250.Ar # 251to another location. A box in the shape 252of the window is drawn on 253the screen to indicate the new position of the window, and the same keys as 254those for the 255.Ic w 256command are used to position the box. The 257window can be moved partially off-screen. 258.It Ic M Ns Ar # 259Move window 260.Ar # 261to its previous position. 262.It Ic s Ns Ar # 263Change the size of window 264.Ar # . 265The user is prompted 266to enter the new lower right corner of the window. A box 267is drawn to indicate the new window size. The same 268keys used in 269.Ic w 270and 271.Ic m 272are used to enter the position. 273.It Ic S Ns Ar # 274Change window 275.Ar # 276to its previous size. 277.It Ic ^Y 278Scroll the current window up by one line. 279.It Ic ^E 280Scroll the current window down by one line. 281.It Ic ^U 282Scroll the current window up by half the window size. 283.It Ic ^D 284Scroll the current window down by half the window size. 285.It Ic ^B 286Scroll the current window up by the full window size. 287.It Ic ^F 288Scroll the current window down by the full window size. 289.It Ic h 290Move the cursor of the current window left by one column. 291.It Ic j 292Move the cursor of the current window down by one line. 293.It Ic k 294Move the cursor of the current window up by one line. 295.It Ic l 296Move the cursor of the current window right by one column. 297.It Ic y 298Yank. The user is prompted to enter two points within the current 299window. Then the content of the current window between those two points 300is saved in the yank buffer. 301.It Ic p 302Put. The content of the yank buffer is written to the current 303window as input. 304.It Ic ^S 305Stop output in the current window. 306.It Ic ^Q 307Start output in the current window. 308.It Ic : 309Enter a line to be executed as long commands. 310Normal line 311editing characters (erase character, erase word, erase line) 312are supported. 313.El 314.Ss Long Commands 315Long commands are a sequence of statements 316parsed much like a programming language, with a syntax 317similar to that of C. Numeric and string expressions and variables 318are supported, as well as conditional statements. 319.Pp 320There are two data types: string and number. A string is a sequence 321of letters or digits beginning with a letter. ``_'' and ``.'' are 322considered letters. Alternately, non-alphanumeric characters can 323be included in strings by quoting them in ``"'' or escaping them 324with ``\\''. In addition, the ``\\'' sequences of C are supported, 325both inside and outside quotes (e.g., ``\\n'' is a new line, 326``\\r'' a carriage return). For example, these are legal strings: 327abcde01234, "&#$^*&#", ab"$#"cd, ab\\$\\#cd, "/usr/ucb/window". 328.Pp 329A number is an integer value in one of three forms: 330a decimal number, an octal number preceded by ``0'', 331or a hexadecimal number preceded by ``0x'' or ``0X''. The natural 332machine integer size is used (i.e., the signed integer type 333of the C compiler). As in C, a non-zero number represents 334a boolean true. 335.Pp 336The character ``#'' begins a comment which terminates at the 337end of the line. 338.Pp 339A statement is either a conditional or an expression. Expression 340statements are terminated with a new line or ``;''. To continue 341an expression on the next line, terminate the first line with ``\\''. 342.Ss Conditional Statement 343.Nm Window 344has a single control structure: 345the fully bracketed if statement in the form 346.Pp 347.Bd -literal -offset indent -compact 348if <expr> then 349\t<statement> 350\t... 351elsif <expr> then 352\t<statement> 353\t... 354else 355\t<statement> 356\t... 357endif 358.Ed 359.Pp 360The 361.Ic else 362and 363.Ic elsif 364parts are optional, and the latter can 365be repeated any number of times. 366<Expr> 367must be numeric. 368.Ss Expressions 369Expressions in 370.Nm window 371are similar to those in the 372C language, with most C operators supported on numeric 373operands. In addition, some are overloaded to operate on strings. 374.Pp 375When an expression is used as a statement, its value is discarded 376after evaluation. Therefore, only expressions with side 377effects (assignments and function calls) are useful as statements. 378.Pp 379Single valued (no arrays) variables are supported, of both 380numeric and string values. Some variables are predefined. They 381are listed below. 382.Pp 383The operators in order of increasing precedence: 384.Bl -tag -width Fl 385.It Xo 386.Aq Va expr1 387.Ic = 388.Aq Va expr2 389.Xc 390Assignment. The variable of name 391.Aq Va expr1 , 392which must be string valued, 393is assigned the result of 394.Aq Va expr2 . 395Returns the value of 396.Aq Va expr2 . 397.It Xo 398.Aq Va expr1 399.Ic ? 400.Aq Va expr2 401.Ic : 402.Aq Va expr3 403.Xc 404Returns the value of 405.Aq Va expr2 406if 407.Aq Va expr1 408evaluates true 409(non-zero numeric value); returns the value of 410.Aq Va expr3 411otherwise. Only 412one of 413.Aq Va expr2 414and 415.Aq Va expr3 416is evaluated. 417.Aq Va Expr1 418must 419be numeric. 420.It Xo 421.Aq Va expr1 422.Ic \&|\&| 423.Aq Va expr2 424.Xc 425Logical or. Numeric values only. Short circuit evaluation is supported 426(i.e., if 427.Aq Va expr1 428evaluates true, then 429.Aq Va expr2 430is not evaluated). 431.It Xo 432.Aq Va expr1 433.Ic \&&\&& 434.Aq Va expr2 435.Xc 436Logical and with short circuit evaluation. Numeric values only. 437.It Xo 438.Aq Va expr1 439.Ic \&| 440.Aq Va expr2 441.Xc 442Bitwise or. Numeric values only. 443.It Xo 444.Aq Va expr1 445.Ic ^ 446.Aq Va expr2 447.Xc 448Bitwise exclusive or. Numeric values only. 449.It Xo 450.Aq Va expr1 451.Ic \&& 452.Aq Va expr2 453.Xc 454Bitwise and. Numeric values only. 455.It Xo 456.Aq Va expr1 457.Ic == 458.Aq Va expr2 , 459.Aq Va expr1 460.Ic != 461.Aq expr2 462.Xc 463Comparison (equal and not equal, respectively). The boolean 464result (either 1 or 0) of the comparison is returned. The 465operands can be numeric or string valued. One string operand 466forces the other to be converted to a string in necessary. 467.It Xo 468.Aq Va expr1 469.Ic < 470.Aq Va expr2 , 471.Aq Va expr1 472.Ic > 473.Aq Va expr2 , 474.Aq Va expr1 475.Ic <= 476.Aq Va expr2 , 477.Xc 478Less than, greater than, less than or equal to, 479greater than or equal to. Both numeric and string values, with 480automatic conversion as above. 481.It Xo 482.Aq Va expr1 483.Ic << 484.Aq Va expr2 , 485.Aq Va expr1 486.Ic >> 487.Aq Va expr2 488.Xc 489If both operands are numbers, 490.Aq Va expr1 491is bit 492shifted left (or right) by 493.Aq Va expr2 494bits. If 495.Aq Va expr1 496is 497a string, then its first (or last) 498.Aq Va expr2 499characters are 500returns (if 501.Aq Va expr2 502is also a string, then its length is used 503in place of its value). 504.It Xo 505.Aq Va expr1 506.Ic + 507.Aq Va expr2 , 508.Aq Va expr1 509.Ic - 510.Aq Va expr2 511.Xc 512Addition and subtraction on numbers. For ``+'', if one 513argument is a string, then the other is converted to a string, 514and the result is the concatenation of the two strings. 515.It Xo 516.Aq Va expr1 517.Ic \&* 518.Aq Va expr2 , 519.Aq Va expr1 520.Ic \&/ 521.Aq Va expr2 , 522.Aq Va expr1 523.Ic \&% 524.Aq Va expr2 525.Xc 526Multiplication, division, modulo. Numbers only. 527.It Xo 528.Ic \- Ns Aq Va expr , 529.Ic ~ Ns Aq Va expr , 530.Ic \&! Ns Aq Va expr , 531.Ic \&$ Ns Aq Va expr , 532.Ic \&$? Ns Aq Va expr 533.Xc 534The first three are unary minus, bitwise complement and logical complement 535on numbers only. The operator, ``$'', takes 536.Aq Va expr 537and returns 538the value of the variable of that name. If 539.Aq Va expr 540is numeric 541with value 542.Ar n 543and it appears within an alias macro (see below), 544then it refers to the nth argument of the alias invocation. ``$?'' 545tests for the existence of the variable 546.Aq Va expr , 547and returns 1 548if it exists or 0 otherwise. 549.It Xo 550.Ao Va expr Ac Ns Pq Aq Ar arglist 551.Xc 552Function call. 553.Aq Va Expr 554must be a string that is the unique 555prefix of the name of a builtin 556.Nm window 557function 558or the full name of a user defined alias macro. In the case of a builtin 559function, 560.Aq Ar arglist 561can be in one of two forms: 562.Bd -literal -offset indent 563<expr1>, <expr2>, ... 564argname1 = <expr1>, argname2 = <expr2>, ... 565.Ed 566.Pp 567The two forms can in fact be intermixed, but the result is 568unpredictable. Most arguments can be omitted; default values will 569be supplied for them. The 570.Ar argnames 571can be unique prefixes 572of the the argument names. The commas separating 573arguments are used only to disambiguate, and can usually be omitted. 574.Pp 575Only the first argument form is valid for user defined aliases. Aliases 576are defined using the 577.Ic alias 578builtin function (see below). Arguments 579are accessed via a variant of the variable mechanism (see ``$'' operator 580above). 581.Pp 582Most functions return value, but some are used for side effect 583only and so must be used as statements. When a function or an alias is used 584as a statement, the parenthesis surrounding 585the argument list may be omitted. Aliases return no value. 586.El 587.Ss Builtin Functions 588The arguments are listed by name in their natural 589order. Optional arguments are in square brackets 590.Sq Op . 591Arguments 592that have no names are in angle brackets 593.Sq <> . 594An argument meant to be a boolean flag (often named 595.Ar flag ) 596can be one of 597.Ar on , 598.Ar off , 599.Ar yes , 600.Ar no , 601.Ar true , 602or 603.Ar false , 604with 605obvious meanings, or it can be a numeric expression, 606in which case a non-zero value is true. 607.Bl -tag -width Fl 608.It Xo 609.Ic alias Ns Po Bq Aq Ar string , 610.Bq Aq Ar string\-list Pc 611.Xc 612If no argument is given, all currently defined alias macros are 613listed. Otherwise, 614.Aq Ar string 615is defined as an alias, 616with expansion 617.Aq Ar string\-list > . 618The previous definition of 619.Aq Ar string , 620if any, is returned. Default for 621.Aq Ar string\-list 622is no change. 623.It Ic close Ns Pq Aq Ar window\-list 624Close the windows specified in 625.Aq Ar window\-list . 626If 627.Aq Ar window\-list 628is the word 629.Ar all , 630than all windows are closed. No value is returned. 631.It Ic cursormodes Ns Pq Bq Ar modes 632Set the window cursor to 633.Ar modes . 634.Ar Modes 635is the bitwise 636or of the mode bits defined as the variables 637.Ar m_ul 638(underline), 639.Ar m_rev 640(reverse video), 641.Ar m_blk 642(blinking), 643and 644.Ar m_grp 645(graphics, terminal dependent). Return 646value is the previous modes. Default is no change. 647For example, 648.Li cursor($m_rev$m_blk) 649sets the window cursors to blinking 650reverse video. 651.It Ic default_nline Ns Pq Bq Ar nline 652Set the default buffer size to 653.Ar nline . 654Initially, it is 65548 lines. Returns the old default buffer size. Default is 656no change. Using a very large buffer can slow the program down 657considerably. 658.It Ic default_shell Ns Pq Bq Aq Ar string\-list 659Set the default window shell program to 660.Aq Ar string\-list . 661Returns 662the first string in the old shell setting. Default is no change. Initially, 663the default shell is taken from the environment variable 664.Ev SHELL . 665.It Ic default_smooth Ns Pq Bq Ar flag 666Set the default value of the 667.Ar smooth 668argument 669to the command 670.Nm window 671(see below). The argument 672is a boolean flag (one of 673.Ar on , 674.Ar off , 675.Ar yes , 676.Ar no , 677.Ar true , 678.Ar false , 679or a number, 680as described above). Default is no change. 681The old value (as a number) is returned. 682The initial value is 1 (true). 683.It Xo 684.Ic echo Ns ( Op Ar window , 685.Bq Aq Ar string\-list ) 686.Xc 687Write the list of strings, 688.Aq Ar string-list , 689to 690.Nm window , 691separated 692by spaces and terminated with a new line. The strings are only 693displayed in the window, the processes in the window are not 694involved (see 695.Ic write 696below). No value is returned. Default 697is the current window. 698.It Ic escape Ns Pq Bq Ar escapec 699Set the escape character to 700.Ar escape-char . 701Returns the old 702escape character as a one-character string. Default is no 703change. 704.Ar Escapec 705can be a string of a single character, or 706in the form 707.Fl ^X , 708meaning 709.No control\- Ns Ar X . 710.It Xo 711.Ic foreground Ns ( Bq Ar window , 712.Bq Ar flag ) 713.Xc 714Move 715.Nm window 716in or out of foreground. 717.Ar Flag 718is a boolean value. The old foreground flag 719is returned. Default for 720.Nm window 721is the current window, 722default for 723.Ar flag 724is no change. 725.It Xo 726.Ic label Ns ( Bq Ar window , 727.Bq Ar label ) 728.Xc 729Set the label of 730.Nm window 731to 732.Ar label . 733Returns the old 734label as a string. Default for 735.Nm window 736is the current 737window, default for 738.Ar label 739is no change. To turn 740off a label, set it to an empty string (""). 741.It Ic list Ns Pq 742No arguments. List the identifiers and labels of all windows. No 743value is returned. 744.It Ic select Ns Pq Bq Ar window 745Make 746.Nm window 747the current window. The previous current window 748is returned. Default is no change. 749.It Ic source Ns Pq Ar filename 750Read and execute the long commands in 751.Ar filename . 752Returns \-1 if the file cannot be read, 0 otherwise. 753.It Ic terse Ns Pq Bq flag 754Set terse mode to 755.Ar flag . 756In terse mode, the command window 757stays hidden even in command mode, and errors are reported by 758sounding the terminal's bell. 759.Ar Flag 760can take on the same 761values as in 762.Ar foreground 763above. Returns the old terse flag. 764Default is no change. 765.It Ic unalias Ns Pq Ar alias 766Undefine 767.Ar alias . 768Returns -1 if 769.Ar alias 770does not exist, 7710 otherwise. 772.It Ic unset Ns Pq Ar variable 773Undefine 774.Ar variable . 775Returns -1 if 776.Ar variable 777does not exist, 7780 otherwise. 779.It Ic variables Ns Pq 780No arguments. List all variables. No value is returned. 781.It Xo 782.Ic window Ns ( Bq Ar row , 783.Bq Ar column , 784.Bq Ar nrow , 785.Bq Ar ncol , 786.Bq Ar nline , 787.Bq Ar label , 788.Bq Ar pty , 789.Bq Ar frame , 790.Bq Ar mapnl , 791.Bq Ar keepopen , 792.Bq Ar smooth , 793.Bq Ar shell ) . 794.Xc 795Open a window with upper left corner at 796.Ar row , 797.Ar column 798and size 799.Ar nrow , 800.Ar ncol . 801If 802.Ar nline 803is specified, 804then that many lines are allocated for the text buffer. Otherwise, 805the default buffer size is used. Default values for 806.Ar row , 807.Ar column , 808.Ar nrow , 809and 810.Ar ncol 811are, respectively, 812the upper, left-most, lower, or right-most extremes of the 813screen. 814.Ar Label 815is the label string. 816.Ar Frame , 817.Ar pty , 818and 819.Ar mapnl 820are flag values 821interpreted in the same way as the argument to 822.Ar foreground 823(see above); 824they mean, respectively, put a frame around this window (default true), 825allocate pseudo-terminal for this window rather than socketpair (default 826true), and map new line characters in this window to carriage return 827and line feed (default true if socketpair is used, false otherwise). 828Normally, a window is automatically closed when its process 829exits. Setting 830.Ar keepopen 831to true (default false) prevents this 832action. When 833.Ar smooth 834is true, the screen is updated more frequently 835(for this window) to produce a more terminal-like behavior. 836The default value of 837.Ar smooth 838is set by the 839.Ar default_smooth 840command (see above). 841.Ar Shell 842is a list of strings that will be used as the shell 843program to place in the window (default is the program specified 844by 845.Ar default_shell , 846see above). The created window's identifier 847is returned as a number. 848.It Xo 849.Ic write Ns ( Bq Ar window , 850.Bq Aq Ar string\-list ) 851.Xc 852Send the list of strings, 853.Aq Ar string-list , 854to 855.Nm window , 856separated 857by spaces but not terminated with a new line. The strings are actually 858given to the window as input. No value is returned. Default 859is the current window. 860.El 861.Ss Predefined Variables 862These variables are for information only. Redefining them does 863not affect the internal operation of 864.Nm window . 865.Bl -tag -width modes 866.It Ar baud 867The baud rate as a number between 50 and 38400. 868.It Ar modes 869The display modes (reverse video, underline, blinking, graphics) 870supported by the physical terminal. The value of 871.Ar modes 872is the bitwise or of some of the one bit values, 873.Ar m_blk , 874.Ar m_grp , 875.Ar m_rev , 876and 877.Ar m_ul 878(see below). 879These values are useful 880in setting the window cursors' modes (see 881.Ar cursormodes 882above). 883.It Ar m_blk 884The blinking mode bit. 885.It Ar m_grp 886The graphics mode bit (not very useful). 887.It Ar m_rev 888The reverse video mode bit. 889.It Ar m_ul 890The underline mode bit. 891.It Ar ncol 892The number of columns on the physical screen. 893.It Ar nrow 894The number of rows on the physical screen. 895.It Ar term 896The terminal type. The standard name, found in the second name 897field of the terminal's 898.Ev TERMCAP 899entry, is used. 900.Sh ENVIRONMENT 901.Nm Window 902utilizes these environment variables: 903.Ev HOME , 904.Ev SHELL , 905.Ev TERM , 906.Ev TERMCAP , 907.Ev WINDOW_ID . 908.Sh FILES 909.Bl -tag -width /dev/[pt]ty[pq]? -compact 910.It Pa ~/.windowrc 911startup command file. 912.It Pa /dev/[pt]ty[pq]? 913pseudo-terminal devices. 914.El 915.Sh HISTORY 916The 917.Nm window 918command appeared in 919.Bx 4.3 . 920.Sh DIAGNOSTICS 921Should be self explanatory. 922