Man Linux: Main Page and Category List

NAME

       wy60 - curses based emulator for the Wyse 60™ terminal

SYNOPSIS

       wy60   [ -c | --command command ]     [ -h | --help ]     [ -j | --job-
              control { on | off } ]                          [ -l | --login ]
              [ -o | --option key=value ]             [ -t | --term terminal ]
              [ -v | --version ] [ -- ] shell arguments

DESCRIPTION

       The wy60 utility program invokes a new shell or command and adjusts the
       $TERM  environment  variable  to  have a value of wyse60.  All commands
       executed within this shell or any of its child processes  automatically
       have  their terminal escape sequences translated to be processed by the
       terminal that wy60 was invoked from.

       Unless a different command was requested, the user’s default  shell  as
       determined  by the value of the $SHELL environment variable is invoked.
       If the environment variable has not been set, then the  default  system
       shell  /bin/sh  is  used  instead.  This value can be overridden in the
       configuration file.

OPTIONS

       Parameters are parsed until the first unknown parameter is encountered,
       or  until  the  special  parameter  --  is  found.  All  the  following
       parameters are passed on to the inferior shell or to the user specified
       command.   Check  the  manual  page  for  sh(1)  for a detailed list of
       options.

       The following parameters are directly understood by wy60 and  will  not
       be  forwarded  to  any  child  process  unless they appear after the --
       marker or after another set of unknown parameters:

       -c | --command command
            Rather than invoking the user’s shell, run the specified  command,
            instead.

       -h | --help
            Display  a  brief  usage  message  showing  the valid command line
            parameters.

       -j | --job-control { on | off }
            Enable or disable job control. If the parent process  is  a  shell
            that supports job control then wy60 can enable this capability for
            its children by  forking  an  additional  process  monitoring  the
            children. By default, this option is enabled.

       -l | --login
            Invoke  the  inferior  shell  as  a  login  shell. This is done by
            prepending  a  minus  character  to  the  application  name.  This
            convention is supported by all shells but probably gets ignored by
            most other applications. The --login parameter is ignored  if  the
            --command parameter has also been given.

            As  a  special  case, it is possible to make wy60 a user’s default
            login shell. To do so, wy60 must be  entered  into  the  shells(5)
            file and you must call chsh(1) to change the user’s default shell.
            If the emulator detects that it is invoked  as  a  wrapper  for  a
            shell,  it  ignores  all  command  line parameters. It then resets
            $SHELL to the value specified in  the  configuration  file  or  to
            /bin/sh  and  launches  that shell passing all the parameters that
            were given to wy60.

       -o | --option key=value
            All of the configuration variables listed later in  this  document
            can also be overriden on the command line. The syntax is identical
            to the one used in the configuration files.

            When using this option,  it  might  be  neccessary  to  quote  the
            key/value   pair  to  prevent  the  shell  from  expanding  escape
            sequences.

       -t | --term terminal
            Override the value of the  $TERM  environment  variable.  If  this
            parameter  is  not  present, then a default of wyse60 will be used
            for the value that is passed to the inferior shell.

       -v | --version
            Display the version number of the program and the date when it was
            compiled.

       --   All parameters following this argument will be literally passed to
            the inferior shell.

EXAMPLES

       wy60 If invoked without parameters, an interactive shell is invoked.

       wy60 -c emacs -nw README
            The -c parameter can be used to  directly  invoke  an  interactive
            application  that  should  run  in  an  emulated  environment. The
            emulator will terminate when the invoked application has quit.

       wy60 -c infocmp
            use infocmp(1M)  to  verify  that  the  terminfo(5)  database  has
            appropriate entries for the emulated wyse60 terminal.

CONFIGURATION FILES

       Some   of   the   execution   parameters   can  be  controlled  through
       configuration files. Every user can have a private  configuration  file
       in  $HOME/.wy60rc  that  overrides any system-wide settings. The system
       administrator can also set global parameters in /etc/wy60.rc.

       All configuration  files  are  in  plain  ASCII  format.  Comments  are
       introduced  by  the  hash mark # character and extend to the end of the
       line. Blank lines are ignored. All lines are of  the  form  variable  =
       value.  Variable names are case insensitive. Leading and trailing white
       space for both the variables  and  the  values  is  stripped  prior  to
       processing. Non ASCII characters have to be escaped:

       \ooo  Up  to  three  octal digits can be used to specify a character in
             the range \001 through \177.

       \xXX  Up to two hexadecimal digits can be used to specify  a  character
             in the range \x01 through \xFF.

       \a    The BEL character (ASCII 7).

       \b    The BS character (ASCII 8).

       \e    The ESC character (ASCII 27).

       \f    The FF character (ASCII 12).

       \n    The NL character (ASCII 10).

       \r    The CR character (ASCII 13).

       \t    The TAB character (ASCII 9).

       \v    The VT character (ASCII 11).

       Please  note  that continuation lines are not supported and that is not
       possible to input a NUL character (ASCII 0).

       The configuration file supports the following parameters:

       IDENTIFIER
                 The terminal identifier string that is reported when  an  ENQ
                 (ASCII  5)  is  received,  can  be  overridden by setting the
                 IDENTIFIER configuration variable. If this option is not set,
                 then the emulator replies with an ACK (ASCII 6).

       PRINTCOMMAND
                 Programs can print to a local printer by sending escape codes
                 to wy60.  If this variable is set to "auto"  then  wy60  will
                 try  to  print to either lp(1) or to lpr(1).  Otherwise, this
                 variable should contain the name of a script that can  accept
                 data on its standard input.

       RESIZE    If  you want to use an external script to resize the console,
                 then you can specify the absolute  path  to  this  script  by
                 setting  the  RESIZE  configuration variable. For example, if
                 you have SVGATextMode(8) installed and you want to  run  wy60
                 from  the  Linux  text  console,  then  you might try using a
                 script such as this one:

                 #!/bin/sh
                 PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin
                 egrep ’.+’ /proc/fb >&2 && exit 0
                 (tty <&3 | egrep ’^/dev/tty[0-9]*$’ >&2) 3<&1
                 if test "$?" -eq 0; then
                   SVGATextMode "$1x$2"   <&1 >&2 ||
                   SVGATextMode "$1x$2x9" <&1 >&2 ||
                   SVGATextMode "$1x$2x8" <&1 >&2
                 fi
                 exit 0
                 Make  sure  that  SVGATextMode(8)  understands  these  modes:
                 80x24, 80x25, 80x42, 80x43, 132x24, 132x25, 132x42, 132x43.

       SHELL     If neither a command has been passed on the command line, nor
                 the user’s $SHELL environment variable was set, then use this
                 variable  to  determine the default shell. If the variable is
                 not set, then a value of /bin/sh is used instead.

       TERM      If no terminal type has been specified on the  command  line,
                 the  program  defaults  to wyse60.  This default value can by
                 overridden by setting the TERM configuration variable.

       WRITEPROTECT
                 The default attribute for indicating  write-protect  mode  is
                 REVERSE.   This  value  can  be  overridden  by  setting  the
                 WRITEPROTECT configuration variable to one of  these  values:
                 NORMAL, BLANK, BLINK, REVERSE, UNDERSCORE, DIM.           The
                 attributes  can  be  combined  with  each  other  by  listing
                 multiple in the same line.

       All the other variables specify character sequences that should be sent
       whenever the user presses a function key. The following table lists the
       variable  name,  the  default  value,  and the terminfo(5) name for the
       function key.

              Variable Name       Default Key Sequence   Terminfo Name
              A1                                         ka1
              A3                                         ka3

              B2                                         kb2
              C1                                         kc1
              C3                                         kc2
              Backspace           \b                     kbs
              Backtab             \eI                    kcbt
              Begin                                      kbeg
              Cancel                                     kcan
              Clear                                      kclr
              Clear All Tabs                             ktbc
              Clear Tab                                  kctab
              Close                                      kclo
              Command                                    kcmd
              Copy                                       kcpy
              Create                                     kcrt
              Delete              \eR                    kdch1
              Delete Line         \eW                    kdl1
              Down                \n                     kcud1
              End                 \eT                    kend
              End Of Line         \eY                    kel
              End Of Screen       \eT                    ked
              Enter               \e7                    kent
              Exit                                       kext
              Exit Insert Mode                           krmir
              Find                                       kfnd
              Help                                       khlp
              Home                \x1E                   khome
              Insert              \eE                    kich1
              Insert Line         \eQ                    kil1
              Left                \b                     kcub1
              Lower Left                                 kll
              Mark                                       kmrk
              Message                                    kmsg
              Move                                       kmov
              Next                \eK                    knxt
              Open                                       kopn
              Options                                    kopt
              Page Down           \eK                    knp
              Page Up             \eJ                    kpp
              Previous            \eJ                    kprv
              Print               \eP                    kprt
              Redo                                       krdo
              Reference                                  kref
              Refresh                                    krfr
              Replace             \er                    krpl
              Restart                                    krst
              Resume                                     kres
              Right               \f                     kcuf1
              Save                                       ksav
              Scroll Down                                kind
              Scroll Up                                  kri
              Select                                     kslt
              Set Tab                                    khts
              Suspend             \x1A                   kspd
              Undo                                       kund
              Up                  \v                     kcuu1
              Shift Begin                                kBEG
              Shift Cancel                               kCAN
              Shift Command                              kCMD
              Shift Copy                                 kCPY
              Shift Create                               kCRT
              Shift Delete        \eR                    kDC
              Shift Delete Line   \eW                    kDL
              Shift End           \eT                    kEND
              Shift End Of Line   \eT                    kEOL
              Shift Exit                                 kEXT
              Shift Find                                 kFND

              Shift Help                                 kHLP
              Shift Home          \e{                    kHOM
              Shift Insert        \eQ                    kIC
              Shift Left          \b                     kLFT
              Shift Message                              kMSG
              Shift Move                                 kMOV
              Shift Next          \eK                    kNXT
              Shift Options                              kOPT
              Shift Previous      \eJ                    kPRV
              Shift Print         \eP                    kPRT
              Shift Redo                                 kRDO
              Shift Replace       \er                    kRPL
              Shift Resume                               kRES
              Shift Right         \f                     kRIT
              Shift Save                                 kSAV
              Shift Suspend                              kSPD
              Shift Undo                                 kUND
              F0                                         kf0
              F1                  \001@\r                kf1
              F2                  \001A\r                kf2
              F3                  \001B\r                kf3
              F4                  \001C\r                kf4
              F5                  \001D\r                kf5
              F6                  \001E\r                kf6
              F7                  \001F\r                kf7
              F8                  \001G\r                kf8
              F9                  \001H\r                kf9
              F10                 \001I\r                kf10
              F11                 \001J\r                kf11
              F12                 \001K\r                kf12
              F13                 \001‘\r                kf13
              F14                 \001a\r                kf14
              F15                 \001b\r                kf15
              F16                 \001c\r                kf16
              F17                 \001d\r                kf17
              F18                 \001e\r                kf18
              F19                 \001f\r                kf19
              F20                 \001g\r                kf20
              F21                 \001h\r                kf21
              F22                 \001i\r                kf22
              F23                 \001j\r                kf23
              F24                 \001k\r                kf24
              F25                 \001L\r                kf25
              F26                 \001M\r                kf26
              F27                 \001N\r                kf27
              F28                 \001O\r                kf28
              F29                 \001l\r                kf29
              F30                 \001m\r                kf30
              F31                 \001n\r                kf31
              F32                 \001o\r                kf32
              F33                                        kf33
              F34                                        kf34
              F35                                        kf35
              F36                                        kf36
              F37                                        kf37
              F38                                        kf38
              F39                                        kf39
              F40                                        kf40
              F41                                        kf41
              F42                                        kf42
              F43                                        kf43
              F44                                        kf44
              F45                                        kf45
              F46                                        kf46
              F47                                        kf47
              F48                                        kf48

              F49                                        kf49
              F50                                        kf50
              F51                                        kf51
              F52                                        kf52
              F53                                        kf53
              F54                                        kf54
              F55                                        kf55
              F56                                        kf56
              F57                                        kf57
              F58                                        kf58
              F59                                        kf59
              F60                                        kf60
              F61                                        kf61
              F62                                        kf62
              F63                                        kf63

EXIT STATUS

       0      Successful program execution.

       125    The inferior shell or command terminated abnormally.

       126    The emulator has been terminated by an unexpected signal.

       127    Some fatal error prevented or aborted the execution of wy60.

       Other  The inferior shell or command returned a non-zero exit status.

DIAGNOSTICS

       The most common cause for the emulator to fail is the $TERM environment
       variable   not   being   set   or   the  terminal  having  insufficient
       capabilities. If this happens, try using a more powerful terminal  type
       and  also  use  infocmp(1M) to verify that your terminfo(5) database is
       configured correctly.

       You might also see an error message saying that the terminal size could
       not  be determined.  wy60 requires that the terminal settings have been
       configured properly  prior  to  invoking  the  emulator.  This  usually
       happens  at  the  time  when  you log into the system, but you can also
       adjust the values by calling stty(1).

       If the emulator complains that it cannot launch the child process  then
       verify that $SHELL is set and points to a valid shell.

FILES

       $HOME/.wy60rc           Per-user configuration settings.

       /etc/wy60.rc            System-wide  configuration  settings (this file
                               must be  created  manually  and  does  not  get
                               overwritten when upgrading wy60).

       /usr/share/terminfo/?/* Files containing terminal descriptions.

ENVIRONMENT

       The $TERM environment variable must be set for the emulator to work. If
       the $SHELL environment variable is set, its  value  will  be  used  for
       launching  the  inferior  shell.  Otherwise a default filename is taken
       from the configuration files or /bin/sh is used.

       The emulator sets the $TERM, $COLUMNS, and $LINES environment variables
       for its child processes.

SEE ALSO

       chsh(1),   infocmp(1M),   lp(1),  lpr(1),  sh(1),  shells(5),  stty(1),
       SVGATextMode(8), terminfo(5), tput(1), xterm(1).

SECURITY

       The program can be executed with normal user privileges. As  such,  the
       amount of damage that a malicious application could cause is limited to
       the user’s account. To the best of the author’s knowledge  the  current
       version  of  wy60  does  not have any security issues, but common sense
       should still be used whenever running any untrusted software within the
       emulator.

AUTHOR

       Copyright      (C)      2001,      2002      by     Markus     Gutschke
       <markus+wy60@wy60.gutschke.com>.

       This program is free software; you can redistribute it and/or modify it
       under  the  terms of the GNU General Public License as published by the
       Free Software Foundation; either version 2 of the License, or (at  your
       option) any later version.

       This  program  is  distributed  in the hope that it will be useful, but
       WITHOUT  ANY  WARRANTY;  without   even   the   implied   warranty   of
       MERCHANTABILITY  or  FITNESS  FOR  A  PARTICULAR  PURPOSE.  See the GNU
       General Public License for more details.

       You should have received a copy of the GNU General Public License along
       with this program; if not, write to the Free Software Foundation, Inc.,
       59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

MAILING LIST

       There is a low-traffic mailing list for the discussion of this  program
       at http://gutschke.com/cgi-bin/mailman/listinfo/Wy60.

TRADEMARKS

       Wyse  and  Wyse  60  are  trademarks  or  registered trademarks of Wyse
       Technology, Inc.

BUGS

       The emulator attempts to seamlessly switch to  wyse60  emulation.  This
       requires the ability to query the host terminal for its cursor position
       at the time when the emulator  is  started.  As  terminfo(5)  does  not
       provide  this capability, wy60 can only support seamless switching on a
       small number of well known terminal types. If it does not recognize the
       terminal type, then the screen will be cleared at startup.

       The  escape sequences for setting the screen size can only be processed
       if the host terminal supports dynamic resizing under  program  control.
       Currently,  xterm(1)  appears  to  be  the  only  program that has this
       capability.

       Function keys  work  only  if  the  host  terminal  generates  distinct
       character  sequences  for each of them and if the terminfo(5) entry for
       the host terminal is correct. Frequently one or the other  is  not  the
       case  which  limits  the  usability of the emulator. Testing has shown,
       that the most correct implementation appears to be  available  in  very
       recent versions of xterm(1).

       The current version of the emulator supports only a small subset of the
       full features offered by a real  Wyse  60  terminal.  Several  of  the
       advanced features are missing. Most notably this means that there is no
       support  for  reprogrammable  function  keys  (but  you  can  use   the
       configuration  file  to  assign  strings to individual keys) or for the
       status bar. Frequently,  the  supported  set  of  escape  sequences  is
       sufficient  to  run an application within the emulated environment, but
       if that does not work, you should consider either filing a detailed bug
       report  with  the  author  or  you  should  switch  to using a hardware
       terminal.

                                 Jun 02, 2002