Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
LUIT(1) 		     General Commands Manual			 LUIT(1)

NAME
     luit - Locale and ISO 2022 support for Unicode terminals

SYNOPSIS
     luit [ options ] [ -- ] [ program [ args ] ]

DESCRIPTION
     Luit  is  a  filter  that can be run between an arbitrary application and a
     UTF-8 terminal emulator.  It will convert application output from	the  lo-
     cale's  encoding into UTF-8, and convert terminal input from UTF-8 into the
     locale's encoding.

     Luit reads its input from the child process, i.e., an  application  running
     in  the  terminal.  Luit writes its output to the terminal.  The two (input
     and output) can have different encodings.

     An application may also request switching to a  different	output	encoding
     using  ISO 2022 and ISO 6429 escape sequences.  Use of this feature is dis-
     couraged: multilingual applications should be modified to directly generate
     UTF-8 instead.

     Luit is usually invoked transparently by the terminal emulator.  For infor-
     mation about running luit from the command line, see EXAMPLES below.

OPTIONS
     -V     Print luit's version and quit.

     -alias filename
	    the locale alias file
	    (default: /usr/local/lib/X11/locale/locale.alias).

     -argv0 name
	    Set the child's name (as passed in argv[0]).

     -c     Function as a simple converter from standard input to standard  out-
	    put.

     -encoding encoding
	    Set  up luit to use encoding rather than the current locale's encod-
	    ing.

     -g0 charset
	    Set the output charset initially selected in G0.   The  default  de-
	    pends on the locale, but is usually ASCII.

     -g1 charset
	    Set  the  output  charset initially selected in G1.  The default de-
	    pends on the locale.

     -g2 charset
	    Set the output charset initially selected in G2.   The  default  de-
	    pends on the locale.

     -g3 charset
	    Set  the  output  charset initially selected in G3.  The default de-
	    pends on the locale.

     -gl gn
	    Set the initial assignment of GL in the output.  The argument should
	    be one of g0, g1, g2 or g3.  The default depends on the locale,  but
	    is usually g0.

     -gr gk
	    Set the initial assignment of GR in the output.  The default depends
	    on the locale, and is usually g2 except for EUC locales, where it is
	    g1.

     -h     Display a usage and options message on the standard output and quit.

     -ilog filename
	    Log into filename all the bytes received from the child.

     -k7    Generate seven-bit characters for keyboard input.

     -kg0 charset
	    Set the input charset initially selected in G0.  The default depends
	    on the locale, but is usually ASCII.

     -kg1 charset
	    Set the input charset initially selected in G1.  The default depends
	    on the locale.

     -kg2 charset
	    Set the input charset initially selected in G2.  The default depends
	    on the locale.

     -kg3 charset
	    Set the input charset initially selected in G3.  The default depends
	    on the locale.

     -kgl gn
	    Set  the initial assignment of GL in the input.  The argument should
	    be one of g0, g1, g2 or g3.  The default depends on the locale,  but
	    is usually g0.

     -kgr gk
	    Set  the initial assignment of GR in the input.  The default depends
	    on the locale, and is usually g2 except for EUC locales, where it is
	    g1.

     -kls   Generate locking shifts (SO/SI) for keyboard input.

     +kss   Disable generation of single-shifts for keyboard input.

     +kssgr
	    Use GL codes after a single shift for keyboard input.   By	default,
	    GR	codes  are generated after a single shift when generating eight-
	    bit keyboard input.

     -list  List the supported charsets and encodings, then quit.  Luit uses its
	    internal tables for this, which are based on the fontenc library.

     -list-builtin
	    List the built-in encodings used as a fallback when data from  iconv
	    or fontenc is missing.

	    This  option relies on luit being configured to use iconv, since the
	    fontenc library does not supply a list of built-in encodings.

     -list-fontenc
	    List the encodings provided by ".enc" files  originally  distributed
	    with the fontenc library.

     -list-iconv
	    List the encodings and locales supported by the iconv library.  Luit
	    adapts its internal tables of fontenc names to iconv encodings.

	    To	make  scripting  simpler,  luit  ignores spaces, underscores and
	    ASCII minus-signs (dash) embedded in the names.  Luit  also  ignores
	    case when matching charset and encoding names.

	    This  option  lists only the encodings which are associated with the
	    locales supported on the current  operating  system.   The	portable
	    iconv  application	provides  a list of its supported encodings with
	    the -l option.  Other implementations may provide similar  function-
	    ality.   There  is	no portable library call by which an application
	    can obtain the same information.

     -olog filename
	    Log into filename all the bytes sent to the terminal emulator.

     +ols   Disable interpretation of locking shifts in application output.

     +osl   Disable interpretation of character set selection sequences  in  ap-
	    plication output.

     +oss   Disable interpretation of single shifts in application output.

     +ot    Disable  interpretation  of  all sequences and pass all sequences in
	    application output to the terminal unchanged.  This may lead to  in-
	    teresting results.

     -p     In	 startup,   establish  a  handshake  between  parent  and  child
	    processes.	This is needed for some older systems, e.g., to success-
	    fully copy the terminal settings to the pseudo-terminal.

     -prefer list
	    Set the lookup-order preference for character set information.   The
	    parameter  is a comma-separated list of keywords.  The default order
	    (listing all keywords) is

		   fontenc,builtin,iconv,posix

	    The default order uses fontenc first because  this	allows	luit  to
	    start  more rapidly (about 0.1 seconds) than using iconv for complex
	    encodings such as eucJP.  However, you may find that the  iconv  im-
	    plementation  is  more  accurate or complete.  In that case, you can
	    use the -show-iconv option to obtain a text file which can	be  used
	    as an encoding with the fontenc configuration.

	    This  option relies on luit being configured to use iconv, since the
	    fontenc library does not provide this choice.

     -show-builtin encoding
	    Show a built-in encoding, e.g., from a ".enc" file using the  ".enc"
	    format.

	    This  option relies on luit being configured to use iconv, since the
	    fontenc library does not supply a list of built-in encodings.

     -show-fontenc encoding
	    Show a given encoding, e.g., from a ".enc"	file  using  the  ".enc"
	    format.   If  luit	is configured to use the fontenc library, it ob-
	    tains the information using that library.  Otherwise luit reads  the
	    file directly.

	    Some of fontenc's encodings are built into the library.  The fontenc
	    library  uses  those  in  preference  to  an external file.  Use the
	    -show-builtin option to provide similar  information  when	luit  is
	    configured to use iconv.

     -show-iconv encoding
	    Show  a given encoding, using the ".enc" format.  If luit is config-
	    ured to use iconv, it obtains the information using that  interface.
	    If	iconv cannot supply the information, luit may use a built-in ta-
	    ble.

     -t     Initialize luit using the locale and command-line  options,  but  do
	    not  open  a pty connection.  This option is used for testing luit's
	    configuration.  It will exit with success  if  no  errors  were  de-
	    tected.   Repeat  the  -t  option  to  cause  warning messages to be
	    treated as errors.

     -v     Be verbose.  Repeating the option, e.g., "-v -v" makes it more  ver-
	    bose.  Luit does not use getopt, so "-vv" does not work.

     -x     Exit as soon as the child dies.  This may cause luit to lose data at
	    the end of the child's output.

     --     End of options.

ENVIRONMENT
     Luit uses these environment variables:

     FONT_ENCODINGS_DIRECTORY
	    overrides  the location of the "encodings.dir" file, which lists en-
	    codings in external ".enc" files.

     LC_ALL

     LC_CTYPE

     LANG   During initialization, luit calls setlocale to check if  the  user's
	    locale is supported by the operating system.  If setlocale returns a
	    failure,  luit looks instead at these variables in succession to ob-
	    tain any clues from the user's environment for locale preference.

     NCURSES_NO_UTF8_ACS
	    Luit sets this to tell ncurses to not rely upon VT100 SI/SO controls
	    for line-drawing.

     SHELL  This is normally set by shells other than the  Bourne  shell,  as  a
	    convention.   Luit will use this value (rather than the user's entry
	    in /etc/passwd) to decide which shell to execute.  If SHELL  is  not
	    set, luit executes /bin/sh.

FILES
     /usr/local/lib/X11/locale/locale.alias
	    The file mapping locales to locale encodings.

BUGS
   Limitations
     None  of  this  complexity should be necessary.  Stateless UTF-8 throughout
     the system is the way to go.

     Charsets with a non-trivial intermediary byte are not yet supported.

     Selecting alternate sets of control characters is not  supported  and  will
     never be.

   Security
     On  systems with SVR4 ("Unix-98") ptys (Linux version 2.2 and later, SVR4),
     luit should be run as the invoking user.

     On systems without SVR4 ("Unix-98") ptys (notably	BSD  variants),  running
     luit as an ordinary user will leave the tty world-writable; this is a secu-
     rity  hole,  and luit will generate a warning (but still accept to run).  A
     possible solution is to make luit suid root; luit	should	drop  privileges
     sufficiently  early  to  make this safe.  However, the startup code has not
     been exhaustively audited, and the author takes no responsibility	for  any
     resulting security issues.

     Luit  will  refuse  to run if it is installed setuid and cannot safely drop
     privileges.

EXAMPLES
     The most typical use of luit is to adapt an instance of XTerm  to	the  lo-
     cale's  encoding.	Current versions of XTerm invoke luit automatically when
     it is needed.  If you are using an older release of XTerm, or  a  different
     terminal emulator, you may invoke luit manually:

	    $ xterm -u8 -e luit

     If  you  are  running in a UTF-8 locale but need to access a remote machine
     that doesn't support UTF-8, luit can adapt the remote output to your termi-
     nal:

	    $ LC_ALL=fr_FR luit ssh legacy-machine

     Luit is also useful with applications that hard-wire an  encoding	that  is
     different	from  the  one normally used on the system or want to use legacy
     escape sequences for multilingual output.	In particular, versions of Emacs
     that do not speak UTF-8 well can use luit for multilingual output:

	    $ luit -encoding 'ISO 8859-1' emacs -nw

     And then, in Emacs,

	    M-x set-terminal-coding-system RET iso-2022-8bit-ss2 RET

AUTHORS
     Luit was written by Juliusz Chroboczek <jch@pps.jussieu.fr> for the XFree86
     project.

     Thomas E. Dickey has maintained luit for use by xterm since 2006.

SEE ALSO
     These are portable:

     *	 xterm(1),

     *	 ncurses(3X).

     These are Linux-specific:

     *	 unicode(1),

     *	 utf-8(1),

     *	 charsets(1).

     These are particularly useful:

     *	 Character Code Structure and Extension Techniques (ISO 2022, ECMA-35)

     *	 Control Functions for Coded Character Sets (ISO 6429, ECMA-48)

     *	 http://czyborra.com/charsets/

				 X Window System			 LUIT(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=luit&sektion=1&manpath=FreeBSD+15.1-RELEASE+and+Ports>

home | help