Peek/Spy allows a user to watch another user's screen and (optionally) type keyboard input for the user being watched. Terminals to be watched may be specified by process-name. process-id, terminal-name, or username. Nodenames and wildcard characters may be used. (See the PEEK Watching Subtopics: Node_Names and Wildcards.) Command Format: Example: $ PEEK process_name_list $ PEEK PROCESS12,PROCESS3% $ PEEK/IDENTIFIER=pid_list $ PEEK /ID=(12%,5F8,345) $ PEEK/TERMINAL=terminal_name_list $ PEEK /TERM=(LTA1262,TXA*) $ PEEK/USERNAME=user_name_list $ PEEK /USERNAME=(JONES*,BREWERJ) $ PEEK ! Enter command-prompting mode. PEEK> WATCH NODEA::* ! Watch all processes on NODEA. PEEK> WATCH/IDENTIFIER=NODEB::5F8 ! Watch PID 5F8 on NODEB. PEEK> WATCH/TERMINAL=*::LTA* ! Watch all LTA's on all nodes. PEEK> WATCH/USERNAME=*::VISITOR_* ! Watch users VISTOR_* on all nodes.
1 – Description
Peek/Spy allow one user to watch another user. Anything output to the terminal being watched will also be sent to the watcher's terminal. The watcher may also optionally enter keyboard input for the user he is watching. See the PEEK Watching Subtopic: /TOGGLE_INPUT. You may not watch another user unless you have SYSPRV and SECURITY privileges, or the system manager has specifically authorized you to watch that user, or the user himself has authorized you to watch him via the PEEK/ALLOW command (see the top-level PEEK Subtopic: Commands ALLOW).
2 – Ending Watching
To stop watching another terminal and return to the command prompt, enter the END_WATCH hot-key sequence. The END_WATCH hot-key sequence is displayed briefly on your screen just before you start watching someone. The END_WATCH hot-key value can be specified using the /END_WATCH qualifier on a PEEK, SPY or WATCH command. See the PEEK Watching Subtopic: /END_WATCH. The default values for hot-keys are taken from logical names. See the top-level PEEK Subtopic: Defaults. When the END_WATCH hot-key sequence is pressed while watching someone, the following message will be displayed on the watcher's terminal: %PEEK-I-ENDWATCH, you are no longer watching user <username> The following message will also be displayed on the terminal of the user who was being watched (if you were watching with PEEK, not SPY). %PEEK-I-WATCHEND, user <username> is no longer watching you If a list of targets was specified in the PEEK, SPY or WATCH command, or if wildcards were used, you can end watching one target and start watching the next or previous terminal through use of the NEXT or PREVIOUS hot-key sequences. See the PEEK Watching Subtopics: /NEXT and /PREVIOUS.
3 – Node Names
DECnet nodenames may be prefixed to the targets of a PEEK, SPY or WATCH command. Peek/Spy will attempt to watch the target on the specified DECnet node. A nodename may be prefixed to a process name parameter. For example: $ PEEK BOSTON::J_DOE. ! Watch process J_DOE on node BOSTON. Nodenames may also be prefixed to process-id or terminal- or user- name target specifications. Examples: $ PEEK/IDENTIFIER=NODEA::124 ! Watch PID 124 on NODEA. $ SPY/TERMINAL=NODEA::LTA* ! Watch all LTA terminals on NODEA. $ PEEK/USERNAME=NODEA::D* ! Watch all users named D* on NODEA. Peek/Spy must be running on the target node, and the PEEK and SPY objects/applications must be defined for DECnet on the target nodes. See the top-level PEEK Subtopic: Node_Names Set-up. Standard VMS % and * wildcards can be used in nodenames providing PEEK has been configured to use wildcards in nodenames. See the top-level PEEK Subtopic: Node_Names Wildcards. Different nodenames can be prepended to each target specification in a list. A prepended nodename applies only to the one target specification in a list to which it is prepended. For example: $ PEEK BOSTON::J_DOE,PHOENIX::B_SMITH,M_JONES The above command causes PEEK to attempt to watch the process J_DOE on node BOSTON, then the process B_SMITH on node PHOENIX, and then the process M_JONES on the current node. For more information, see the top-level PEEK Subtopic: Node_Names.
4 – Wildcards
If wildcards are used, or more than one process name is specified in the process-name list, then PEEK will begin watching the terminal which is owned by the first process found in the list. If watching of this terminal is terminated by the hot-key for NEXT or PREVIOUS then Peek will attempt to watch the terminal owned by the next or previous process found in the list. If the END_WATCH sequence is pressed, or if there is no next or previous processes to be watched, PEEK will stop watching.
5 – Parameters
process-name The name of the process which you wish to watch. The process name can have from 1 to 15 alphanumeric characters and may contain the standard VMS * and % wildcard characters. The process-name parameter and the /IDENTIFICATION, /TERMINAL and /USERNAME qualifiers are all mutually exclusive.
6 – Qualifiers
6.1 /APPEND
/[NO]APPEND This qualifier controls whether a new log file is created or whether an existing log file is appended to. The logical WATCHER$APPEND specifies the default value for a PEEK, SPY or WATCH command. Example: $ PEEK JONES /OUTPUT_LOG=JONES.LOG /APPEND or $ DEFINE WATCHER$APPEND TRUE $ PEEK JONES /OUTPUT_LOG=JONES.LOG In this example, a process named JONES will be watched, and a log file called JONES.LOG will be created if nonexistent, or appended to if already extant.
6.2 /AXPRTA_WATCHONLY
AXP-Only... It is possible on AXP to watch an RTA which has not done a PEEK/SAVE_SCREEN. This is accomplished by using the earlier, version-4.4 RTA feature. This feature is invoked for watching an unconverted RTA by using the /AXPRTA_WATCHONLY qualifier (or making /AXPRTA_WATCHONLY the default in PEEK_DEFAULTS.COM, or one of the default logical- name tables defined by PEEK_DEFAULTS.COM). You must first also enable use of this feature in PEEK_DEFAULTS.COM by setting ALLOW_EARLIER_AXP_RTA_INTERFACE to TRUE. (See the warnings in PEEK_DEFAULTS.COM before enabling this feature.) When using this EARLIER_AXP_RTA_INTERFACE, you will not get an initial-screen display. With this EARLIER_AXP_RTA_INTERFACE you can only watch the RTA, you cannot take over the keyboard. Bypass-output, chat-mode, etc, also do not work when watching RTAs with the EARLIER_AXP_RTA_INTERFACE. Because of the interface used by the EARLIER_AXP_RTA_INTERFACE, you will not see input characters typed by the user being watched until he completes his input with a carriage return or other input terminator. The tracking of the victim's screen is not always perfect with this EARLIER_AXP_RTA_INTERFACE. In particular, when the victim interrupts output with Ctrl-Y, the watcher's screen is liable have a somewhat different amount of interrupted output displayed than the victim's did. The watcher may also sometimes get more or less linefeed characters displayed than the victim, especially on broadcast messages. Because of the interface used by the EARLIER_AXP_RTA_INTERFACE, the victim's End-Watch hot-key must be a function-key, keypad-key or escape sequence. Control characters other than Escape (such as Ctrl-P) are not recognized for an RTA victim when that victim is being watched with the EARLIER_AXP_RTA_INTERFACE (the VMS RTA interface filters out control characters on the remote system before Peek/Spy gets to see them.)
6.3 /BACKGROUND
AXP-Only... /[NO]BACKGROUND /BACKGROUND is synonymous with the /SINGLE_WINDOW and /WINDOW qualifiers. See the PEEK Watching Subtopic: /SINGLE_WINDOW.
6.4 /BEEP_TERMINAL
/BEEP_TERMINAL = "hot-key-defintion" Defines a hot-key sequence which when pressed will cause both the watcher's and watchee's terminals to ring their bells. This may be used to get the other user's attention while watching him. The default value is defined in the logical WATCHER$BEEP_TERMINAL. With PEEK, the user being watched can also beep both terminals if he has input control. With SPY, only the watcher can beep both terminals. Example: $ PEEK/BEEP_TERMINAL="<F6>" USER1 or $ DEFINE WATCHER$BEEP_TERMINAL "<F6>" $ PEEK USER1 In either case, pressing the F6 function key will cause the bell to be rung on both terminals.
6.5 /BYPASS_OUTPUT_TOGGLE
/BYPASS_OUTPUT_TOGGLE = "hot-key-defintion" Defines a hot-key sequence which, when pressed by the watcher, causes output going to the terminal being watched to cease being displayed on that terminal. The output does, however, continue to go to the watcher's terminal, only. This allows one to watch output to a terminal despite it having gone into an XOFF state due to being put on hold-screen. This is particu- larly useful for watching disconnected sessions on a terminal server, which would otherwise be hung, waiting to be reconnected to a physical terminal. It can also be useful when watching a terminal on a slow modem line as one does not have to wait while the output goes out over the modem. The logical WATCHER$BYPASS_OUTPUT defines the default hot-key value. A user can disable this feature when he issues a PEEK/ALLOW command to allow a non-privileged user to watch him. See the top-level PEEK Subtopic: Commands ALLOW /BP_OUTPUT. Caution should be used when enabling BYPASS_OUTPUT as it may violate the security standards at your installation. However, BYPASS_OUTPUT may be turned off on a per-user or system-wide basis by defining the logical WATCHER$BP_OUTPUT as FALSE in the appropriate logical name table. See the top-level PEEK Subtopic: Defaults. Example: $ PEEK/BYPASS_OUTPUT_TOGGLE="<CTRL-K>" USER1 or $ DEFINE WATCHER$BYPASS_OUTPUT_TOGGLE "<CTRL-K>" $ PEEK USER1 In either case when the watcher presses Control-K, Peek/Spy will cause output to the terminal of the person being watched to cease going to that terminal, but to go only to the watcher's terminal instead. This cessation of output to the watched terminal continues until Control-K is pressed a second time. For a complete description of the syntax used for specifying hot-key definitions, see the top-level PEEK Subtopic: Hot-Keys. When the BYPASS_OUTPUT feature is used while watching a MultiSessions terminal (or a terminal on which the PEEK_ONLY screen-saver has been activated), output which has been sent to the terminal prior to invoking BYPASS_OUTPUT will not be seen until some new non-broadcast output is sent to the terminal. This may be done by the watcher if he has keyboard control of the user's process (see the PEEK Watching Subtopics: /TOGGLE_INPUT and /SIMULTANEOUS_INPUT).
6.6 /CHAT_TOGGLE
/CHAT_TOGGLE = "hot-key-defintion" Allows the watcher and user to enter a chat, where they can type back and forth to each other, but the keystrokes typed are not entered as input to whatever program the user process is running. Specify a sequence which when pressed by the watcher will cause Peek/Spy to enter a mode which is similar to "local mode" on a standard terminal. In other words, what the watcher types while watching a user will be echoed on both terminals, but will NOT be placed into the typeahead buffer or passed to any other program. This prevents this type of activity from causing program or command errors. The logical WATCHER$CHAT_TOGGLE defines the default hot-key value. Example: $ PEEK JONESIE /CHAT="<F14>" or $ DEFINE WATCHER$CHAT_TOGGLE "<F14>" $ PEEK JONESIE Whenever the watcher presses F14, both terminals will go into chat mode. You may at this point type whatever you wish, and it will be displayed on both screens. If it appears not to work and your terminal just beeps when you type, this is because you do not have keyboard input control (see the PEEK Watching Subtopic: /TOGGLE_INPUT, which is still active during chat mode unless /SIMULTANEOUS_INPUT is in effect). The keys which are useful while in chat mode are the alphanumeric keys, carriage-return, delete and the arrow keys. You should press carriage-return to end a line, since if the other terminal is not in auto-wrap mode, the other user may not be able to see what you are typing after you reach the margin and your terminal does do an autowrap. If your terminal displays "hieroglyphics" in chat mode, it is likely that the terminal has the line-drawing character set selected. In this case, pressing the shift lock key will cause subsequent characters to be displayed normally.
6.7 /CLEAR
/[NO]CLEAR The /CLEAR qualifier clears the watcher's screen just after the STARTWATCH message is displayed, and /NOCLEAR specifies that the screen should not be cleared. The logical WATCHER$CLEAR specifies the default value. AXP Only - If the user being watched has the PEEK/SAVE_SCREEN feature enabled then this qualifier is ignored as the watcher's screen is always cleared prior to displaying what is currently on the user's screen. VAX Only - If the user being watched has MultiSessions enabled (with or without the PEEK_ONLY option) then the watcher's screen will be cleared regardless of the /NOCLEAR option, before the user's initial-screen contents are displayed on the watcher's terminal. Example: $ PEEK/CLEAR */CONFIRM
6.8 /CONFIRM
/NOCONFIRM (default) This qualifier causes PEEK or SPY to ask the watcher for a confirmation before it starts watching a user. This allows the watcher to decide, after reviewing the initial-data screen displayed by PEEK, if he really wants to watch that user. (The initial-data screen shows the user's name, process, image name and the number of open files.) The default value is defined in the logical WATCHER$CONFIRM. Example: $ PEEK/CONFIRM * PEEK Version 2.2.00 Demo. Copyright (c) 1988-1993. An unpublished and proprietary software product of Networking Dynamics Corporation (NDC). All rights reserved. In a moment you will begin watching: 19-FEB-1992 15:59:48.95 Username: JJONES Process: JJONES__LTA2341 Terminal: LTA2341: (VT300_Series) Image name: DUA0:[SYS0.SYSCOMMON.SYSEXE]TPU.EXE;1 Open files: 1 END_WATCH sequence to stop watching: "<CTRL-P>X" TOGGLE_INPUT sequence to take over keyboard control: "<BS>" Begin watching user? (Yes/No/Quit) [N] _ This qualifier is most useful with Peek/Spy's wildcard options, as it will allow you to skip watching users you do not want to watch. CTRL-Z is equivalent to the Quit answer, and will return you to the DCL or PEEK> prompt.
6.9 /DISPLAY_TYPE
/DISPLAY_TYPE=keyword Used with /INPUT_ONLY to chose the format in which control characters are displayed on the watcher's screen, or in the input-keystroke log file. CHARACTER - Displays control-characters as-is. DISPLAY - Displays control characters in a reverse-video character format. 8-bit control characters are displayed in reverse-video and underlined. The Delete character is displayed as a bold, reverse-video lower-case d. HEXIDECIMAL - Displays control characters in a reverse video <xx> format. PLAIN_HEX - Displays control characters in <xx> format. (Default). A default keyword-value may be specified in the logical WATCHER$DISPLAY_TYPE. Example: $ SPY/INPUT_ONLY/DISPLAY_TYPE=DISPLAY J_DOE The above command watches process J_DOE but displays only the input keystrokes entered at the terminal. Any control characters produced by a keystroke are displayed in reverse video on the watcher's screen. For more information, see the PEEK Watching Subtopic: /INPUT_ONLY.
6.10 /END_WATCH
/END_WATCH = "hot-key-defintion" Defines a hot-key sequence which when pressed by the watcher will cause Peek/Spy to stop watching and exit back to the prompt. The default value for the END_WATCH hot-key is taken from the logical name WATCHER$END_WATCH, usually defined system-wide by PEEK_DEFAULTS.COM. An END_WATCH hot-key must be defined before Peek/Spy will begin watching. Example: $ PEEK/END_WATCH="<CTRL-]>" USER1 or $ DEFINE WATCHER$END_WATCH "<CTRL-]>" $ PEEK USER1 In either case when the watcher presses Control-], the PEEK session will be terminated. (For information on the user being watched (with PEEK) also using END_WATCH, see the top-level PEEK Subtopic: Commands ALLOW /END_WATCH.) For a complete description of the syntax used for specifying hot-key definitions, see the top-level PEEK Subtopic: Hot-Keys.
6.11 /EXCLUDE_LIST
/EXCLUDE_LIST = (terminal-name [,terminal-name ,... ,terminal_name]) /NOEXCLUDE Used to specify terminals which should be skipped over during a wildcard operation. The default is specified via the logical WATCHER$EXCLUDE_LIST. You can override the defaults by specifying /NOEXCLUDE. Example: $ PEEK /EXCLUDE=NTY* */CONFIRM AXP Only... /NOEXCLUDE is used mainly to allow watching MS30 NDC terminals, which are skipped by default during wildcard operations so that only the MS30 Server, which tracks the current session, is watched. Note that /SINGLE_WINDOW acts as an implicit, temporary /NOEXCLUDE for _NDC*: terminals.
6.12 /FINISH_SEQUENCE
/FINISH_SEQUENCE=(keyword[,keyword,...,keyword]) Used to specify terminal-control sequences which will be sent to the watcher's terminal when he has finished watching someone. This can be used to reset the watcher's terminal to some particular state after he has finished watching someone. The default value is taken from the logical WATCHER$FINISH_SEQUENCE. This logical name may be specified in any of the logical-name tables specified in LNM$PEEK_TABLE_SEARCH_LIST which is defined by PEEK_DEFAULTS.COM. See the top-level PEEK Subtopic: Defaults. The PEEK_DEFAULTS.COM file contains an example of specifying a default value for WATCHER$FINISH_SEQUENCE. For more information, see the PEEK Watching Subtopic: Init_and_Finish_Sequences Example: $ PEEK/FINISH_SEQUENCE=NOINVERSE */CONF
6.13 /FORCE_NETWORK_ACCESS
/[NO]FORCE_NETWORK_ACCESS When using wildcards in nodenames, PEEK will skip accessing the network to watch processes on the current node. (An exception to skipping network access for the local node is when there is an access control string in the wildcarded nodename specification which does not match the current username. In this case, because the access requests a different username to do the watching, PEEK will use network access to PEEK on the local node.) One can force access across the network for the local node during a wildcarded nodename operation by specifying /FORCE_NETWORK_ACCESS on the command line or by specifying the logical name WATCHER$FORCE_NETWORK_ACCESS as TRUE. This logical may be defined system-wide by PEEK_DEFAULTS.COM, or may be locally defined in any of the logical-name tables specified by LNM$PEEK_TABLE_SEARCH_LIST, which is defined in PEEK_DEFAULTS.COM. See the top-level PEEK Subtopic: Defaults. Example: $ PEEK/FORCE_NETWORK_ACCESS *::*
6.14 /HANGUP
/[NO]HANGUP (Spy-Only WATCH command qualifier) /NOHANGUP has been discontinued in PEEK 5.1. Most of the equivalent functionality can be achieved by invoking PEEK_LOGIN.COM from SYLOGIN.COM. /HANGUP remains the default and causes SPY to stop watching when the user being watched logs off the system. The /NOHANGUP qualifier caused SPY to continue watching a terminal even after it had been logged off (or after there were no more channels opened to it). One could then view or log the next login which occurs on the terminal. /NOHANGUP had no effect on terminals which are deleted at logout such as LTAs or FTAs, etc. Example: $ SPY/TERMINAL=TTA1/NOHANGUP/LOG=TTA1.LOG
6.15 /IDENTIFICATION
/IDENTIFICATION = (process-ID [,process-ID ,... ,process-ID]) This qualifier is used to specify processes to watch by their process identifications (PIDs). If more than one PID is specified, parentheses must be used. When more than one process is specified, either in a list or by wildcards, the processes are watched one at a time in sequence, by using the /NEXT and /PREVIOUS hot-keys. A DECnet nodename may also be prefixed to each process-ID using the :: syntax. Different nodenames can be used for different process-IDs in the list, and standard VMS * and % wildcards are supported in nodenames. Node names apply only to the single PID in a list to which they are prepended. (See the PEEK Watching Subtopic: Node_Names.) Example: $ PEEK/ID=6A In this example, the watcher will watch the terminal connected to the process whose PID is 0000006A. $ PEEK/ID=BOSTON::6A The above command attempts to watch a process on DECnet node BOSTON which has a PID of 6A. $ PEEK/ID=(BOSTON::6A,71B, ... ,PHOENIX::9AC) In this example the watcher would watch the processes, in sequence, based on the list of PIDs. First PID 6A on node BOSTON, then PID 71B on the current node, and finally PID 9AC on DECnet node PHOENIX would be watched. The process ID of any process may be obtained using the PEEK/SHOW USERS command. PID's of processes on other nodes can be gotten using a node name in the PEEK/SHOW USERS command. E.g. PEEK/SHOW USERS NODEA:: or PEEK/SHOW USERS NODEB::G%X etc. You can omit any leading zeros in specifying a PID. Note: On Alpha with MS30 you can (by watching the MS Server process for a user) track with the user as he switches NDC sessions, or you can watch an individual NDC session by using the Peek/Spy /SINGLE_WINDOW qualifier.
6.16 /INIT_SEQUENCE
/INIT_SEQUENCE=(keyword[,keyword,...,keyword]) Used (when the initial-screen-display feature is not in use) to specify terminal-control sequences which will be sent to the watcher's terminal before he starts watching someone. A default value may be specified in the logical WATCHER$INIT_SEQUENCE. This logical may be defined in any of the logical-name tables specified by LNM$PEEK_TABLE_SEARCH_LIST which is defined by PEEK_DEFAULTS.COM. PEEK_DEFAULTS.COM contains an example of specifying a default value via WATCHER$INIT_SEQUENCE. /INIT_SEQUENCE is really only useful when the Peek/Spy initial-screen- display feature is not in use. When initial-screen-display is in use, the terminal-control sequences output by most of the keywords have little effect since they are immediately superceded by the control sequences which put the watcher's terminal into a state matching that of the terminal being watched. For more information, see the PEEK Watching Subtopic: Init_and_Finish_Sequences Example: $ PEEK/INIT_SEQ=132COLUM */CONFIRM
6.17 /INPUT_ONLY
/[NO]INPUT_ONLY Used with SPY to skip watching terminal output and instead watch only the user's input keystrokes, E.g. SPY/INPUT_ONLY/TERMINAL=FTA10 or SPY/INPUT_ONLY/USER=J_JONES The default value is taken from the logical WATCHER$INPUT_ONLY. Your site must be licensed for Input-Only. Any watcher and any user being watched or logged must have been authorized by the system manager for input-only watching or logging since passwords and other non-echoed input are displayed during input watching or logging. You can specify the format in which control characters are displayed by using the /DISPLAY_TYPE qualifier. For more information, see the top-level PEEK Subtopic: INPUT_ONLY_watching_and_logging
6.18 /LOG_FILE
/LOG_FILE [= file_spec] This a synonymous with the /OUTPUT_LOG_FILE qualifier. See the PEEK Watching Subtopic: /OUTPUT_LOG_FILE.
6.19 /NEXT
/NEXT="hot-key-defintion" This qualifier is used to define a hot-key sequence which causes PEEK to stop watching the current target and start watching the next target (if there is another target which matches the specification(s) given). If there is no next targets to watch, the NEXT hot-key performs an END_WATCH. The default hot-key value is taken from the logical WATCHER$NEXT. Example: $ PEEK/NEXT="<CTRL-P>N" GROUP1* or $ DEFINE WATCHER$NEXT "<CTRL-P>N" $ PEEK GROUP1* In either case when the watcher presses Control-P followed by the letter N, PEEK will stop watching the current user and try to watch a next user, if any.
6.20 /NOBEEP
Normally if a user being watched tries to type when he does not have keyboard control, Peek/Spy will ring his terminal bell to inform him that the watcher currently has control of his keyboard. /NOBEEP keeps this warning bell from ringing on the terminal being watched. A default value can be specified in the logical WATCHER$NOBEEP. With NOBEEP, when the user being watched does not have keyboard control, his keyboard will just appear to "go dead" instead of beeping when he tries to type.
6.21 /OUTPUT_LOG_FILE
/OUTPUT_LOG_FILE [ = file_spec ] (WATCH and SAVE_SCREEN qualifier) This qualifier creates a log file of the Peek/Spy session. It can be used with the PEEK, SPY and WATCH verbs. It can also be used with the SAVE_SCREEN command to start terminal logging. See the top-level PEEK Subtopic: Commands SAVE_SCREEN /OUTPUT_LOG_FILE. When used with the WATCH subcommand, this qualifier specifies that Peek/Spy should create an output log file containing everything which is output during the period of time in which the watcher is observing the user's screen. The default file spec is taken from the logical WATCHER$OUTPUT_LOG_FILE. If nothing is specified by this default and if /OUTPUT_LOG_FILE is specified without the optional file_spec, then PEEK will generate a log file in the current default directory using a default log-file name in one of the following formats: PEEK_username_terminal_name.LOG PEEK_terminal_name.LOG The first of these is used when you begin watching a terminal which is owned by some process. The second format is used by SPY only when watching an unowned terminal. Logging is continued until watching is terminated by one of the END_WATCH, NEXT or PREVIOUS sequences. /LOG and /OUTPUT_LOG are synonymous. Examples: $ PEEK JONES /OUTPUT=SAVE_OUTPUT.JONES - or - $ DEFINE WATCHER$OUTPUT_LOG_FILE SAVE_OUTPUT.JONES $ PEEK JONES /LOG
6.22 /PERMIT_INPUT
/PERMIT_INPUT="hot-key-defintion" Hot-key used to permit a watcher (who is not normally able to have keyboard control) to acquire temporary keyboard control through use of his REQUEST_INPUT hot-key. PERMIT_INPUT can be issued by the user being watched, or by a primary watcher who currently has keyboard control. To successfully grant PERMIT_INPUT, the user granting it must currently have keyboard control (via either SIMULTANEOUS_INPUT or TOGGLE_INPUT). If a PERMIT_INPUT request is rejected (due to not currently having control of the keyboard) then the terminal bell will beep. Once PERMIT_INPUT has been enabled and a watcher then accepts it (by using his REQUEST_INPUT hot-key), the watcher and the user who permitted him may either toggle input between themselves using their TOGGLE_INPUT hot-keys, or may both type simultanously if the PSIMUL qualifier (or default) is in effect for the permitted watcher. (See also PNOBEEP.) Once granted, PERMIT_INPUT can be revoked again at any time by issuing another PERMIT_INPUT. (The PERMIT_INPUT key toggles PERMIT_INPUT on and back off.) A PERMIT_INPUT granted by the user being watched is also revoked whenever the primary watcher (if any) toggles input. Likewise, a PERMIT_INPUT granted by a primary watcher is revoked whenever the user being watched toggles input. Thus input-ability gained through PERMIT_INPUT/REQUEST_INPUT is very temporary. The logical WATCHER$PERMIT_INPUT specifies the default hot-key value for a primary watcher, and the logical USER$PERMIT_INPUT specifies the default hot-key value for use when being watched. Note that PERMIT_INPUT and REQUEST_INPUT may be used to temporarily grant input-ability to a watcher who otherwise would not be able to gain keyboard control due to keyboard-control licensing-option or ALLOW-command restrictions.
6.23 /PNOBEEP
This qualifier is for use with the PERMIT_INPUT and REQUEST_INPUT hot-keys which temporarily grant keyboard control to a watcher who would not otherwise be able to have it. (See the PEEK Watching Subtopics: /PERMIT_INPUT and /REQUEST_INPUT.) When a watcher has been permitted temporary keyboard control, this qualifier determines whether or not the bell is rung on the terminal of the person being watched when he tries to type after control of his keyboard has been taken over (and PSIMUL_INPUT has not been specified). As with NOBEEP, when the user being watched does not have keyboard control, his keyboard will just appear to "go dead" instead of beeping when he tries to type. The logical WATCHER$PNOBEEP specifies the default value for this qualifier. /PNOBEEP is provided in addition to /NOBEEP to make it possible to have a different nobeep value which applies only when one is a permitted-input watcher.
6.24 /PREVIOUS
/PREVIOUS="hot-key-defintion" This qualifier is used to define a hot-key sequence which causes PEEK to stop watching the current target and start watching the previous target. If there is no previous, matching target specification then PREVIOUS is equivalent to END_WATCH. The default hot-key value is taken from the logical WATCHER$PREVIOUS. Example: $ PEEK/PREVIOUS="<CTRL-P>P" GROUP1* or $ DEFINE WATCHER$PREVIOUS "<CTRL-P>P" $ PEEK GROUP1* In either case when the watcher presses Control-P followed by the letter P, PEEK will stop watching the current user and try to watch a previous user. For a complete description of the syntax used for specifying hot-key definitions, see the top-level PEEK Subtopic: Hot-Keys.
6.25 /PROCESS_NAME
/PROCESS_NAME=(process_name [,process_name ,... ,proccess_name]) This parameter specifies targets to watch by their process names. Parentheses are required if more than one process name is specified. If a list is given or wildcards are used then the NEXT and PREVIOUS hot-keys are used to end watching the current process and start watching the next or previous one. The standard VMS * and % wildcard characters may be used in the process name(s). Standard VMS DECnet nodenames may also be prefixed to the process names for watching processes on other nodes. (See the PEEK Watching Subtopic: Node_Names.) Different nodenames can be used with different process names in the list. Standard VMS * and % wildcards are supported in nodenames. A prepended nodename applies only to the one process-name in the list to which it is prepended. For example the command: $ PEEK BOSTON::J_DOE,PHOENIX::B_SMITH,M_JONES causes PEEK to attempt to watch the process J_DOE on node BOSTON, then the process B_SMITH on node PHOENIX, and then the process M_JONES on the current node. Note that the following two syntaxes will produce identical results: $ PEEK USER1 $ PEEK /PROCESS_NAME=USER1 In either case USER1 will be watched. In this example a list of users is specified: $ PEEK USER1,USER2,USER3 $ PEEK/PROCESS_NAME=(USER1,USER2,USER3) Note: On Alpha with MS30 you can (by watching the "MS Server*" process for a user) track with the user as he switches NDC sessions, or you can watch an individual NDC session by using the Peek/Spy /SINGLE_WINDOW qualifier.
6.26 /PSIMUL_INPUT
/[NO]PSIMUL_INPUT This qualifier is for use with the PERMIT_INPUT and REQUEST_INPUT hot-keys which temporarily grant keyboard control to a watcher who would not otherwise have it. (See the PEEK Watching Subtopics: /PERMIT_INPUT and /REQUEST_INPUT.) When a watcher has been permitted temporary keyboard control, the /PSIMUL_INPUT qualifier specifies whether or not both the watcher and watchee will be able to enter keyboard input to the user's process simultaneously, without having to use the TOGGLE_INPUT hot-key. The logical WATCHER$PSIMUL_INPUT specifies the default value. When simultaneous input is allowed, the TOGGLE_INPUT hot-key will have no effect on the user being watched. TOGGLE_INPUT's by the watcher will just enable/disable his own keyboard input. The watcher starts with keyboard input enabled when simultaneous input is in effect. The logical WATCHER$PSIMUL specifies the default value for this qualifier. For examples see /SIMULTANEOUS_INPUT. /PSIMUL_INPUT is provided in addition to /SIMULTANEOUS_INPUT to make it possible to have a different simultaneous value which applies only when one is a permitted-input watcher.
6.27 /QUOTE
/QUOTE = "hot-key-defintion" /QUOTE is used to specify a hot-key which when recognized tells Peek/Spy that the following keystroke is NOT to be interpreted as part of a hot-key sequence, but is to be passed through to the terminal as normal input. This allows the user to enter this hot-key and follow it with some other Peek/Spy hot-key keystroke which he wishes to pass to the program as input. (Of course whether or not it is passed to the user's program is still controlled by TOGGLE_INPUT, if input is not simultaneous.) The QUOTE hot-key should be entered by the watcher immediately before the hot-key keystroke which he wishes to pass to the user's process. The default hot-key value is taken from the logical WATCHER$QUOTE. Example: $ PEEK/QUOTE="<F7>"/BEEP_TERMINAL="<F6>" USER1 or $ DEFINE WATCHER$QUOTE "<F7>" $ PEEK/BEEP_TERMINAL="<F6>" USER1 In either case, if the watcher presses F6, the bell will be rung on the user's terminal. However, if he presses F7 followed by F6, then the F6 sequence will be passed to the user's process (if watcher keyboard input is enabled, see the PEEK Watching Subtopics: /SIMULTANEOUS_INPUT and /TOGGLE_INPUT, and the top-level PEEK Subtopic: Commands ALLOW /NOKB_CONTROL). For a complete description of the syntax used for specifying hot-key definitions, see the top-level PEEK Subtopic: Hot-Keys.
6.28 /REQUEST_INPUT
/REQUEST_INPUT="hot-key-defintion" Hot-key used to gain temporary ability to control the keyboard of the user being watched when the watcher wouldn't normally be able to gain keyboard control due to licensing or ALLOW-command restrictions. Use of the REQUEST_INPUT hot-key by a watcher only succeeds if the user being watched (or primary watcher) has first successfully issued a PERMIT_INPUT by using his PERMIT_INPUT hot-key. A second REQUEST_INPUT issued by the watcher after his REQUEST_INPUT has been granted, toggles his REQUEST_INPUT back off again. A REQUEST_INPUT request will fail if another watcher has already accepted the PERMIT_INPUT, or if REQUEST_INPUT hasn't first been permitted by a successful PERMIT_INPUT issued by the user being watched or primary watcher. If a REQUEST_INPUT is unsuccessful, the terminal will just beep. When a REQUEST_INPUT is successful, the watcher who did the successful REQUEST_INPUT may temporarily provide input. The TOGGLE_INPUT key may need to be used, unless the PSIMUL qualifier (or default) is in effect. The user (or primary watcher) who issued the PERMIT_INPUT may revoke it again at any time by again typing his PERMIT_INPUT hot-key sequence. A PERMIT_INPUT by the user being watched is also revoked if a primary watcher does a TOGGLE_INPUT to take keyboard control from the user. Likewise, a PERMIT_INPUT by the primary watcher is revoked if the user being watched does a TOGGLE_INPUT to take keyboard control back from the primary watcher. Thus input-ability gain through REQUEST_INPUT is very temporary. Note that PERMIT_INPUT and REQUEST_INPUT may be used to temporarily grant input-ability to a watcher who otherwise would not be able to gain keyboard control due to licensing option or ALLOW-command restrictions. The logical WATCHER$REQUEST_INPUT specifies the default hot-key value.
6.29 /SIMULTANEOUS_INPUT
/[NO]SIMULTANEOUS_INPUT Specifying /SIMULTANEOUS_INPUT allows both the watcher and the watchee to enter keyboard input to the watchee's process at the same time without having to switch back and forth by using the TOGGLE_INPUT hot-key. The logical WATCHER$SIMULTANEOUS_INPUT specifies the default value. When simultaneous input is in effect, the TOGGLE_INPUT hot-key will have no effect on the user being watched. TOGGLE_INPUT's by the watcher will just enable/disable his own keyboard input. The watcher starts with keyboard input enabled when simultaneous input is in effect. NOTE: There is a licensing option which will prevent the watcher from ever providing input to the user's terminal, for use in banking and other high-security environments. Thus if the SIMULTANEOUS_INPUT feature appears not to work for your site, you should check to see if your license specifies NOKB_CONTROL. Example 1: $ PEEK JONES /SIMULTANEOUS_INPUT or $ DEFINE WATCHER$SIMULTANEOUS_INPUT TRUE $ PEEK JONES This will allow both the watcher and the user being watched (JONES) to be able to do keyboard input at the same time. Example 2: $ PEEK JONES /NOSIMULTANEOUS_INPUT or $ DEFINE WATCHER$SIMULTANEOUS_INPUT FALSE $ PEEK JONES This will allow only one of either the watcher or the user being watched (JONES) to be able to do keyboard input. They must take turns typing by using the TOGGLE_INPUT hot-key sequence.
6.30 /SINGLE_WINDOW
AXP-Only... /[NO]SINGLE_WINDOW Determines whether an MS Server process or individual MultiSessions NDC-terminal windows will be watched. The default for a PEEK, SPY or WATCH command is determined by the logical WATCHER$BACKGROUND usually defined by PEEK_DEFAULTS.COM. You can override the default by using this command qualifier. Note that the default behavior without /SINGLE_WINDOW is to see the screen of the MS Server process, whether or not wildcards are used. Examples: $ PEEK/TERM=-NDC21 /SINGLE_WINDOW ! Watch terminal NDC21: $ PEEK/TERM=NDC* /SINGLE_WINDOW ! Watch all NDC terminals. $ PEEK * /NOSINGLE_WINDOW ! Only watch MS Servers, don't ! watch any NDC terminals.
6.31 /TERMINAL
/TERMINAL=(terminal_name [,terminal_name ,... ,terminal_name]) This qualifier is used to specify targets to be watched by using their terminal names. If more than one terminal name is specified then the list must be enclosed in parenthesis. The standard VMS wildcards (* and %) may be specified for any part of the terminal name, if desired. Standard DECnet nodenames may also be prefixed to the terminal names for watching terminals on other nodes. (See the PEEK Watching Subtopic: Node_Names.) Different nodenames can be used for different terminal names in the list, and standard VMS * and % wildcards are supported in nodenames. A nodename prepended to a terminal name applies only to that one terminal name in the list. The /NEXT and /PREVIOUS hot-keys are used to end watching one target and start watching the next or previous one. The terminal names used may be any of the names which are associated with the physical terminal: the physical terminal name (e.g. LTA3451: or TXA5:) or the virtual terminal name (e.g., VTA127:). If MultiSessions is in use, then the terminal name may be any of the MultiSessions pseudo-terminal units (e.g., NDC22:) which are currently active on that terminal, or the physical terminal being used by MultiSessions. Examples: $ PEEK/TERMINAL=LTA*. In the above example, the lowest numbered terminal with the name LTA will be watched. When the /NEXT hot-key sequence is entered, then the next LTA terminal unit will be watched, etc. $ PEEK/TERMINAL=TXA5 In the above example, the watcher will watch the process which is connected with terminal TXA5. Note: On Alpha with MS30 you can (by watching the physical terminal associated with the MS Server process) track with the user as he switches NDC sessions, or you can watch individual NDC sessions by using the Peek/Spy /SINGLE_WINDOW qualifier.
6.32 /TIME_LIMIT
/TIME_LIMIT=nnn Using this qualifier causes the NEXT hot-key sequence to be simulated when the specified time duration expires. The "nnn" time value is specified in seconds. The default value is taken from the logical WATCHER$TIME_LIMIT.
6.33 /TOGGLE_INPUT
/TOGGLE_INPUT = "hot-key-defintion" /NOTOGGLE_INPUT Defines a hot-key sequence which will toggle control of the keyboard of the user being watched between the user and the watcher. If this command qualifier is NOT specified (either on the command line or as a WATCHER$TOGGLE_INPUT logical), then the watcher will not be able to enter any input for the user unless /SIMULTANEOUS_INPUT is in effect. If SIMULTANEOUS_INPUT has been specified, pressing the TOGGLE_INPUT hot-key will have no effect on the user being watched, but will toggle on and off the watcher's ability to type for the user. NOTE: There is a licensing option which will prevent the watcher from ever providing input to the user's terminal, for use in banking and other high-security environments. Thus if the TOGGLE_INPUT feature appears not to work for your site, you should check to see if your license specifies NOKB_CONTROL. The rest of this section will assume that SIMULTANEOUS_INPUT has not been specified. When PEEK is run, at first the watcher is not allowed to enter input to the user's process. If he types anything other than one of his hot-key sequences, then PEEK will throw the watcher's attempted input away and just ring the bell on his terminal instead. The watcher may press TOGGLE_INPUT to switch keyboard control, taking it away from the user being watched. At this point, the bell on the terminal of the user being watched will ring if he attempts to type anything other his defined hot-key sequences. (For defining hot-keys for use when being watched, see the top-level PEEK Subtopic: Commands ALLOW.) Example: $ PEEK/TOGGLE_INPUT="<F10>" USER1 or $ DEFINE WATCHER$TOGGLE_INPUT "<F10>" $ PEEK USER1 In this case, if the watcher presses F10 while watching, then he will take over keyboard control from USER1 (or give it back, if he already has control of the USER1's keyboard). For a complete description of the syntax used for specifying hot-key definitions, see the top-level PEEK Subtopic: Hot-Keys. If you don't want a TOGGLE_INPUT hot-key defined then /NOTOGGLE_INPUT may be used to override the existence of a default TOGGLE_INPUT hot-key. NOTE: Use of the /NOTOGGLE_INPUT qualifier means there will be no TOGGLE_INPUT hot-key defined for whoever issues the command containing the /NOTOGGLE_INPUT. The PEEK ALLOW-command's /NOKB_CONTROL qualifier refers to whether an ALLOWed watcher will be able to have keyboard control.
6.34 /USERNAME
/USERNAME=(user_name [,user_name ,... ,user_name]) This qualifier is used to specify targets to be watched by username. If more than one username is specified, the list must be enclosed in parenthesis. Usernames may contain the standard VMS * and % wildcard characters. Standard DECnet nodenames may also be prefixed to the usernames, for watching users on other nodes. (See the PEEK Watching Subtopic: Node_Names.) Different nodenames can be used for each different username in the list, and standard VMS * and % wildcards are supported in nodenames. A nodename applies only to the one username in the list to which it is prepended. The NEXT and PREVIOUS hot-keys are used to end watching one process and start watching the next or previous one matching the specifications. Examples: $ PEEK /USERNAME=(JONES,NODEA::SMITH,BROWN) In this example, a process belonging to the first user in the list will be watched first. When the /NEXT hot-key sequence is entered, watching will begin on the next process belonging to that user (if any). After all the first user's processes have been watched, PEEK will begin watching the first process for the next user in the list, in this case on DECnet node NODEA. When all of SMITH's processes on NODEA have been watched, the first process for user BROWN on the current node will be watched. $ PEEK /USERNAME=D* In this example, a process will be watched whose username starts with the letter "D". When the /NEXT hot-key sequence is entered, watching will begin on the next process beginning with the letter "D", if any, etc. Note: On Alpha with MS30 you can (by watching the MS Server process for a user) track with the user as he switches NDC sessions, or you can watch an individual NDC session by using the Peek/Spy /SINGLE_WINDOW qualifier.
6.35 /WAIT_TIME
/WAIT_TIME=nn.n This qualifier specifies the time in seconds which will elapse before starting to watch a user. This allows time for one to read the "In a moment you will begin watching...." message. The "nn.n" time value is specified in seconds, and can contain a decimal point. Interactive control over how long this message displays may be achieved by using the /CONFIRM qualifier instead of /WAIT_TIME. The default value is taken from the logical WATCHER$WAIT_TIME.
6.36 /WINDOW
AXP-Only... /[NO]WINDOW /WINDOW is synonymous with the /BACKGROUND and /SINGLE_WINDOW qualifiers. See the PEEK Watching Subtopic: /SINGLE_WINDOW.
7 – Init and Finish Sequences
When watching a terminal, it is desirable to set the proper modes on the watcher's terminal before displaying output from the watched terminal. Ideally, the watcher's terminal should have the same modes set as the terminal which is being watched. This ensures the output will display correctly. This is not a problem when using Peek/Spy's initial-screen-display feature since the correct initial settings for the watcher's terminal will be output to it as part of the initial-screen display. However when the screen-saver is NOT in use by the person being watched, it may be desirable to set some initial terminal modes on your terminal before you begin watching. In addition you may also want to restore your own terminal modes when finished watching another terminal. The Peek/Spy /INIT_SEQUENCE=() qualifier may be used to specify an initial modes-setting sequence which is sent to your terminal just before you start watching. The /FINISH_SEQUENCE=() qualifier specifies a modes-setting sequence which will be sent to your terminal after you finish watching someone. Each of these qualifiers accepts a list of keywords. Each keyword causes a particular sequence to be sent to the watcher's terminal.
7.1 – Keywords
These are the keywords available for /INIT_SEQUENCE and /FINISH_SEQUENCE. Each keyword causes a particular sequence to be sent to the watcher's terminal. The order in which these sequences are output is fixed and does not depend on the order in which they appear on the command line. For information on the fixed-ordering of these sequences, see the PEEK Watching Init_and_Finish_Sequences Subtopic: Sequence_Ordering.
7.1.1 – 132COLUMN
Outputs "<ESC>[?3h"
7.1.2 – 80COLUMN
Outputs "<ESC>[?3l"
7.1.3 – APPLICATION
Outputs "<ESC>="
7.1.4 – CHARACTER_SET=()
CHARACTER_SET takes a list of the keywords HANJI, KANJI, KATAKANA, MULTINATIONAL, STANDARD, or G0=keyword, G1=keyword, G2=keyword, G3=keyword, GL=keyword, GR=keyword. The fixed order in which these terminal control sequences are output allows one to use the STANDARD, MULTINATIONAL, KANJI, or KATAKANA keywords and then customize that settings using one of the G0, G1, G2, G3, GL, GR keywords.
7.1.5 – MULTINATIONAL
The keyword STANDARD or MULTINATIONAL equates to the command: CHARACTER_SET=(G0=ASCII,G1=ASCII,G2=DECSUPGR,G3=DECSUPGR,- GL=G0,GR=G2) It outputs "<ESC>(B<ESC>)B<ESC>*%5<ESC>+%5<SI><ESC>}"
7.1.6 – STANDARD
The keyword STANDARD or MULTINATIONAL equates to the command: CHARACTER_SET=(G0=ASCII,G1=ASCII,G2=DECSUPGR,G3=DECSUPGR,- GL=G0,GR=G2) It outputs "<ESC>(B<ESC>)B<ESC>*%5<ESC>+%5<SI><ESC>}"
7.1.7 – HANJI
The keyword HANJI equates to the following command which might be used on a Korean HANJI terminal: CHARACTER_SET=(G0=KS_ROMAN,G1=DECSPEC,G2=KOREAN,G3=KOREAN,- GL=G0,GR=G3) It outputs "<ESC>\(%?\<ESC>\)0\<ESC>\*4\<ESC>\+4\<SI><ESC>\|\".
7.1.8 – KANJI
The keyword KANJI equates to the following command which might be used on a Japanese fullset KANJI terminal: CHARACTER_SET=(G0=JIS_ROMAN,G1=DECSPEC,G2=JIS_KATAKANA,- G3=DEC_KANJI,GL=G0,GR=G3) It outputs "<ESC>(J<ESC>)0<ESC>*I<ESC>+"0<SI><ESC>|".
7.1.9 – KATAKANA
The keyword KATAKANA equates to the following command which might be used on a Japanese KATAKANA terminal: CHARACTER_SET=(G0=JIS_ROMAN,G1=JIS_KATAKANA,- G2=JIS_KATAKANA,G3=DECSPEC,GL=G0,GR=G2) It outputs "<ESC>(J<ESC>)I<ESC>*I<ESC>+0<SI><ESC>}".
7.1.10 – G0-G3_KEYWORDS
The G0, G1, G2, G3 keywords take one of the following character-set keywords: Keyword Character set description Internal name ------ ------------------------- ------------- ASCII ASCII character set B DECSPEC DEC Special Graphic 0 DECSUPGR DEC Supplemental Graphic %5 DECTECH DEC Technical > ISOLATIN1 ISO Latin-1 supplemental A JIS_KATAKANA JIS-Katakana (Japanese terminal) I JIS_ROMAN JIS-Roman (Japanese terminal) J KANJI DEC Kanji (Japanese terminal) "0 (or 1 or 3) KOREAN Hanji (Korean terminal) 4 KS_ROMAN KS Roman (Korean terminal) %? LINEDRAWING DEC Line Drawing 0 USERPREF User-preferred supplemental < Or you can specify your own G0, G1, G2, or G3 94-character set final sequence by using the STRING= keyword. G0=STRING="xx" outputs "<ESC>(xx". G1=STRING="xx" outputs "<ESC>)xx". G2=STRING="xx" outputs "<ESC>*xx". G3=STRING="xx" outputs "<ESC>+xx". E.g. CHARACTER_SET=(G0=STRING="B") would be the same as CHARACTER_SET=(G0=ASCII) and CHARACTER_SET=(G0=DECSUPGR) would be the same as CHARACTER_SET=(G0=STRING="%5")
7.1.11 – G1-G3_96_KEYWORDS
The G1, G2, G3 keywords can also take one of the following additional 96-character-set keywords: BRITISH British national A CANADIAN French Canadian national 9 (or Q) DANISH Danish/Norwegian national ` (or E or 6) DECTECH DEC Technical > DUTCH Dutch national 4 FINNISH Finnish national 5 (or C) FRENCH French national R GERMAN German national K ITALIAN Italian national Y NORWEGIAN Norwegian/Danish national ` (or E or 6) PORTUGESE Portugese national %6 SPANISH Spanish national Z SWEDISH Swedish national 7 (or H) SWISS Swiss national = Or you can specify your own G1, G2, or G3 96-character set final sequence by using the 96STRING= keyword. G1=96STRING="xx" outputs "<ESC>-xx". G2=96STRING="xx" outputs "<ESC>.xx". G3=96STRING="xx" outputs "<ESC>/xx". E.g. CHARACTER_SET=(G1=96STRING=7) would be the same as CHARACTER_SET=(G1=SWEDISH) and CHARACTER_SET=(G2=DECTECH) would be the same as CHARACTER_SET=(G2=96STRING=">")
7.1.12 – GL
The GL and GR keywords take one of the following keyword values: G0, G1, G2, G3. E.g. CHARACTER_SET=(GL=G0,GR=G2). GL=G0 outputs "<SI>". GL=G1 outputs "<SO>". GL=G2 outputs "<ESC>n". GL=G3 outputs "<ESC>o".
7.1.13 – GR
The GL and GR keywords take one of the following keyword values: G0, G1, G2, G3. E.g. CHARACTER_SET=(GL=G0,GR=G2). GR=G1 outputs "<ESC>~". GR=G2 outputs "<ESC>}". GR=G3 outputs "<ESC>|".
7.1.14 – CLEAR
Outputs "<ESC>[H<ESC>[J"
7.1.15 – EIGHT_BIT
Outputs "<ESC> G"
7.1.16 – INSERT
Outputs "<ESC>[4h"
7.1.17 – NOINSERT
Outputs "<ESC>[4l"
7.1.18 – INVERSE
Outputs "<ESC>[?5h"
7.1.19 – NOINVERSE
Outputs "<ESC>[?5l"
7.1.20 – NATIONAL
Outputs "<CSI>?42h"
7.1.21 – NONATIONAL
Outputs "<CSI>?42l"
7.1.22 – NONE
The keyword NONE is used to specify that there is no /INIT or /FINISH sequence.
7.1.23 – NUMERIC
Outputs "<ESC>>"
7.1.24 – ORIGIN
Outputs "<ESC>[?6h"
7.1.25 – NOORIGIN
Outputs "<ESC>[?6l"
7.1.26 – PREFIX="string"
PREFIX takes a string parameter and outputs it before any other sequences. Parameter is a user specified string in "hot-key" format. E.g. /INIT=(PREFIX="<ESC>[2J")
7.1.27 – PREF_DEC
Outputs "<DCS>0!u%5<ST>"
7.1.28 – PREF_ISO
Outputs "<DCS>1!uA<ST>"
7.1.29 – REGIS
Outputs "<ESC>Pp"
7.1.30 – SCROLL=(top row,bottom row)
SCROLL takes two numeric parameters, top_row and bottom_row. These are substituted into the "$[t;br" escape sequence exactly as they are given on the command line. E.g. /INIT=(SCROLL=(5,20)) generates "<ESC>[5;20r".
7.1.31 – NOSCROLL
Outputs "<ESC>[r"
7.1.32 – SEVEN_BIT
Outputs "<ESC> F"
7.1.33 – STRING="string"
The string specified with /INIT=(STRING="string") or /FINISH=(STRING="string") is output after all the other sequences specified have been output, except for the REGIS, TEXTRONIX and VT52 sequences. The parameter is a user specified string in "hot-key" format. E.g. /INIT=(STRING="<ESC>[2J")
7.1.34 – STATUS_INDICATOR
Outputs "<ESC>[1$~"
7.1.35 – STATUS_LINE
Outputs "<ESC>[2$~"
7.1.36 – NOSTATUS_LINE
Outputs "<ESC>[0$~"
7.1.37 – STATUS START[="string"]
Outputs "<ESC>[1$}" then the optional string. This may be used to put text on the status line. It should be followed by a STATUS_END to return the cursor to the main display.
7.1.38 – STATUS_END
Outputs "<ESC>[0$}"
7.1.39 – SUFFIX="string"
The string specified with /INIT=(SUFFIX="string") or /FINISH=(SUFFIX="string") is output after all the other sequences specified have been output. The parameter is a user specified string in "hot-key" format. E.g. /INIT=(SUFFIX="<ESC>[2J")
7.1.40 – TEKTRONIX
Outputs "<ESC>[?38h"
7.1.41 – NOTEKTRONIX
Outputs "<ESC>[?38l"
7.1.42 – TEKTRONIX2
Outputs "<ESC>%!0"
7.1.43 – NOTEKTRONIX2
Outputs "<ESC>%!2"
7.1.44 – VT100
Outputs "<ESC><"
7.1.45 – VT200
Outputs "<ESC><<ESC>["62;1p"
7.1.46 – VT300
Outputs "<ESC><<ESC>["63;1p"
7.1.47 – VT400
Outputs "<ESC><<ESC>["64;1p"
7.1.48 – VT52
Outputs "<ESC>[?2l<ESC>\"
7.2 – Sequence Ordering
The sequences are output as follows and in the following order regardless of the sequence of the keywords on the command line: PREFIX="string" user specified string in "hot-key" format. SCROLL=(5,20) <ESC>[5;20r VT100 <ESC>< VT200 <ESC><<ESC>["62;1p VT300 <ESC><<ESC>["63;1p VT400 <ESC><<ESC>["64;1p SEVEN_BIT <ESC> F EIGHT_BIT <ESC> G STATUS_INDICATOR <ESC>[1$~ STATUS_LINE <ESC>[2$~ NOSTATUS_LINE <ESC>[0$~ STATUS_START <ESC>[1$} STATUS_END <ESC>[0$} PREF_DEC <DCS>0!u%5<ST> PREF_ISO <DCS>1!uA<ST> CHARACTER_SET=MULTINATIONAL <ESC>(B<ESC>)B<ESC>*%5<ESC>+%5<SI><ESC>} CHARACTER_SET=STANDARD <ESC>(B<ESC>)B<ESC>*%5<ESC>+%5<SI><ESC>} CHARACTER_SET=KATAKANA <ESC>(J<ESC>)I<ESC>*I<ESC>+0<SI><ESC>} CHARACTER_SET=KANJI <ESC>(J<ESC>)0<ESC>*I<ESC>+"0<SI><ESC>| CHARACTER_SET=G0=STRING="xx" <ESC>(xx CHARACTER_SET=G1=STRING="xx" <ESC>)xx CHARACTER_SET=G2=STRING="xx" <ESC>*xx CHARACTER_SET=G3=STRING="xx" <ESC>+xx CHARACTER_SET=G1=96STRING="xx" <ESC>-xx CHARACTER_SET=G2=96STRING="xx" <ESC>.xx CHARACTER_SET=G3=96STRING="xx" <ESC>/xx CHARACTER_SET=G0=94_charset_kw <ESC>(<94-charset-final> CHARACTER_SET=G1=94_charset_kw <ESC>)<94-charset-final> CHARACTER_SET=G2=94_charset_kw <ESC>*<94-charset-final> CHARACTER_SET=G3=94_charset_kw <ESC>+<94-charset-final> NATIONAL <CSI>?42h NONATIONAL <CSI>?42l CHARACTER_SET=G1=96_charset_kw <ESC>-<96-charset-final> CHARACTER_SET=G2=96_charset_kw <ESC>.<96-charset-final> CHARACTER_SET=G3=96_charset_kw <ESC>/<96-charset-final> CHARACTER_SET=GL=G0 <SI> CHARACTER_SET=GL=G1 <SO> CHARACTER_SET=GL=G2 <ESC>n CHARACTER_SET=GL=G3 <ESC>o CHARACTER_SET=GR=G1 <ESC>~ CHARACTER_SET=GR=G2 <ESC>} CHARACTER_SET=GR=G3 <ESC>| APPLICATION <ESC>= NUMERIC <ESC>> INSERT <ESC>[4h NOINSERT <ESC>[4l 132COLUMN <ESC>[?3h 80COLUMN <ESC>[?3l INVERSE <ESC>[?5h NOINVERSE <ESC>[?5l ORIGIN <ESC>[?6h NOORIGIN <ESC>[?6l NOSCROLL <ESC>[r CLEAR <ESC>[H<ESC>[J STRING="string" user specified string in "hot-key" format. REGIS <ESC>Pp TEKTRONIX <ESC>[?38h NOTEKTRONIX <ESC>[?38l TEKTRONIX2 <ESC>%!0 NOTEKTRONIX2 <ESC>%!2 VT52 <ESC>[?2l<ESC>\ SUFFIX="string" user specified string in "hot-key" format.
7.3 – Default
The following sequences are sent to the watcher's terminal to reset its state before the /FINISH_SEQUENCE (if any) is output: VT200/300/400: 1 ESC \ String terminator for DCS. 2 ESC < Switch into ANSI mode. 3 ESC [ ! p Reset everything. 4 ESC [ 1 3 2 H Go to bottom of screen. 5a ESC > Turn off application keypad. 5b ESC = Turn on application keypad. 6a ESC [ ? 3 l Switch to 80 column mode. 6b ESC [ ? 3 h Switch to 132 column mode. VT100: 1 ESC \ String terminator for DCS. 2 ESC < Switch into ANSI mode. 3 ESC ( B Set G0 to US ASCII. 4 SI Switch into G0. 5 ESC [ r Reset scrolling region. 6 ESC [ m Turn off graphic rendition. 7 ESC [ 1 3 2 H Go to bottom of screen. 8a ESC > Turn off application keypad. 8b ESC = Turn on application keypad. 9a ESC [ ? 3 l Switch to 80 column mode. 9b ESC [ ? 3 h Switch to 132 column mode. VT52 mode: As above based on type of terminal (VT100 vs VT200/300/400) plus the following: ESC [ ? 2 l Switch from ANSI mode into VT52 mode Where there is an (a) or (b) choice, just the one which corresponds to the terminal driver setting when Peek was started will be output.