MLTERM(1)

NAME
mlterm - Multi Lingual TERMinal emulator on X

SYNOPSIS
mlterm [options]

DESCRIPTION
mlterm is a multi-lingual terminal emulator written from scratch, which supports various character sets and encodings in the world and complex characters such as double width for East Asian, combining for Thai, Vietnamese, and so on, and bi-direction for Arabic and Hebrew. Indic scripts in ISCII encoding are experimentally supported using libind library. It also supports various unique feature such as anti-alias using FreeType, multiple XIM, multiple windows, scrollbar API, scroll by mouse wheel, automatic selection of encoding, daemon mode, and so on.

Supported encodings are: ISO-8859-[1-11], ISO-8859-[13-16], TIS-620 (same as ISO-8859-11), KOI8-R, KOI8-U, KOI8-T, GEORGIAN-PS, TCVN5712, VISCII, CP1251, CP1255, EUC-JP, EUC-JISX0213, Shift_JIS, Shift_JISX0213, ISO-2022-JP[1-3], EUC-KR, UHC, JOHAB, ISO-2022-KR, GB2312 (EUC-CN), GBK, GB18030, ISO-2022-CN, HZ, EUC-TW, BIG5, BIG5HKSCS, and UTF-8. If you have already set locale (for example LANG variable; see locale(7) for detail) mlterm will automatically select proper encoding.

OPTIONS
Note that bool is to be substituted by true or false.

-A, --aa(=bool)
    Use anti-aliased fonts by using Xft. The default is false. Note that if mlterm encoding is not a subset of Unicode like ISO-2022-JP-2 or EUC-TW, characters which are regarded as a same character in Unicode are displayed with the same glyph and you cannot distinguish these characters. This is because Xft library which is used for anti-alias font rendering is based on Unicode.

-B, --sbbg=color
    Specify background color of the scrollbar. Valid values for color are color names defined in rgb.txt and "color" configuration file and color rgb string whose format is "#RRGGBB".

-C, --iscii=language
    Specify a language to be used in ISCII encoding. Valid names of language are Assamese, Bengali, Gujarati, Hindi, Kannada, Malayalam, Oriya, Punjabi, Roman, Tamil, and Telugu. Please read documents of libind for detail.

-D, --bi(=bool)
    Use BiDi (bi-direction) rendering on UTF8 encoding to support RTL (right-to-left) languages such as Arabic and Hebrew. The default is true.

-E, --km=encoding
    Specify encoding. Valid encodings were shown in DESCRIPTION section above in this man page. AUTO means that encoding is determined properly by using locale information (default AUTO).

-F, --sbfg=color
    Specify foreground color of the scrollbar. Valid values for color are color names defined in rgb.txt and "color" configuration file and color rgb string whose format is "#RRGGBB".

-G, --vertical=mode
    Specify vertical writing mode. cjk for RTL vertical writing and mongol for LTR one. The default is none which means horizontal writing mode.

-H, --bright=value
    Brightness of background image in percent. You can specify values either above 100 (lightening) or below 100 (darkening). See -p option for detail of background image. The default is 100.

-I, --icon=name
    Specify icon name. The default is "mlterm".

-J, --dyncomb(=bool)
    Enable dynamic character combining. Dynamic combining means that combining characters are processed as if they are not combining characters and that they are combined only when they are displayed. This affects calculation of column position, i.e., a pair of base character and combining character is counted to be two columns in this mode, while it is counted to be one column in the normal mode. This treatment establishes one-to-one correspondence between (logical) column and character even for combining characters (though not for fullwidth characters; see -Z/--multicol option for fullwidth characters). Thus, this mode enables you to use combining characters with softwares which do not support combining characters. When specifying this option, please do not forget to enable -m/--comb option together. The default is false. See MULTIPLE PTY section for detail.

-K, --metakey=value
    Specify a key to be regarded as META. Valid values are: alt, meta, hyper, super, mod1, mod2, mod3, mod4, and none. The default is none. See -k option also.

-L, --ls(=bool)
    Whether to use login shell or not. The default is false.

-M, --menu=path
    Specify path name for the GUI configurator command. The default depends on compilation or "/usr/local/libexec/mlconfig". See GUI CONFIGURATOR section for detail.

-N, --name=name
    Specify application name. The default is "mlterm".

-O, --sbmod=value
    Specify scrollbar position. left for left side and right for right side. The default is none which turns off scrollbar.

-P, --ptys=value
    Specify number of ptys (sessions) to be used in start up. The default is 1. These sessions share one screen and can be switched using the GUI Configurator, while -@/--screens option opens one window for each session. See MULTIPLE PTY section for detail.

-Q, --vcur(=bool)
    Use cursor movement natural for vertical writing. This means that up and down arrow keys are treated as backward (left arrow in horizontal LTR) and forward (right arrow in horizontal LTR), respectively. In cjk -G/--vertical mode, left and right arrow keys are also treated as next line (down arrow in horizontal LTR) and previous line (up arrow in horizontal LTR), respectively, while vice versa in mongol mode. The default is false.

-R, --fsrange=range
    Range of size of usable fonts. The format is "minsize-maxsize", where minsize and maxsize are font sizes in pixel (default 6-30). You cannot choose font sizes in GUI configurator against this range.

-S, --sbview=name
    Specify name of scrollbar. See SCROLLBAR section below for detail. The default is "simple" which means the built-in simple scrollbar. Scrollbars are supplied as libraries and this version of mlterm contains following scrollbar libraries: "sample", "sample2", "sample3", "athena", "motif", "mozmodern", and "next".

-T, --title=name
    Specify title name. The default is "mlterm".

-U, --viaucs(=bool)
    If the received selection (i.e., copy-and-paste strings) is not UTF8_STRING type, convert the selection into Unicode and then to the current mlterm encoding, in order to identify equivalent characters (i.e., characters which share the same code point in Unicode) from various character sets. See SELECTION section below for detail. The default is false.

-V, --varwidth(=bool)
    Use variable column width. You may want to use this option when you use proportional fonts. This option is automatically turned on when using ISCII encoding. The default is false.

-W, --sep=characterlist
    Delimiter characters used for word selection, which are consulted when you double-clicked mlterm, to define what is a word. The default is " ,.:;/@")

-Y, --decsp(=bool)
    Use dynamically composed line drawing character set. This overrides DEC_SPECIAL in "font" configuration file. The default is false.

-Z, --multicol(=bool)
    Treat fullwidth characters (east Asicn characters in most cases; which occupies two columns on the screen) as they occupy two logical columns. This is same as the de-facto standard handling of fullwidth characters in east Asian terminal emulators such as XFree86 xterm, kterm, cxterm, hanterm, rxvt, eterm, and so on, and other systems such as MS-DOS, PC-9801, and so on. Otherwise, fullwidth characters are treated as one column while they occupy two columns on the screen. The default is true.

-0, --crbg=color
    Specify background color for cursor (default is same to foreground color). Valid values for color are color names defined in rgb.txt and "color" configuration file and color rgb string whose format is "#RRGGBB".

-1, --wscr=value
    Specify actual window width, by percentage against calculated value by multiplying font width by column number. This is useful when you use a proportional font which includes some glyphs with excepsionally large width, i.e., much larger "maximum width" than your expectation. The default is 100.

-2, --hscr=value
    Specify actual screen height, like -1/--wscr does for width. The default is 100.

-3, --contrast=value)
    Contrast of background image in percent. See -p option for detail of background image. The default is 100.

-4, --gamma=value)
    Gamma of background image in percent. See -p option for detail of background image. The default is 100.

-5, --big5bug(=bool)
    Support Big5 CTEXT bugs (which exist in XFree86 4.1.0 or before). This affects Big5 selections (i.e., copy-and-paste strings) in COMPOUND_TEXT format which mlterm sends. The default is false.

-6, --stbs(=bool)
    Don't exit backscroll mode when console applications output something. The default is false.

-7, --bel=mode
    Behavior when BEL (0x07) is received. sound for beep and visual for blanking screen. The default is none which ignores BEL.

-8, --88591(=bool)
    Use ISO8859-1 fonts for US-ASCII part of various encodings.

-9, --crfg=color
    Specify foreground color for cursor (default is same to background color). Valid values for color are color names defined in rgb.txt and "color" configuration file and color rgb string whose format is "#RRGGBB".

-$, --mc=value
    Doubleclick/tripleclick interval in millisecond. The default is 250.

-&, --borderless=bool
    Asks the window manager to use no decorations at all. Warning: You will not be able to resize the window. You probably want to use --geometry as well. The default is false.

-@, --screenss=value
    Specify number of screens (sessions) to be used in start up. The default is 1. Even when a part of these screens are closed, sessions which were connected to the screens continue to live. You can use such sessions by using GUI Configurator from remaining screens. See MULTIPLE PTY section for detail.

-*, --type=value
    Specify the rendering engine to be used to draw fonts. xcore is conventional X11 core font mechanism and xft means Xft mechanism. The default is xcore.

-a, --ac=value
    Specify number of columns of Unicode characters with EastAsianAmbiguous property. The default is 1 and some of Asian people may want to specify 2. See Unicode Standard Annex (UAX) #11 East Asian Width found at Unicode web site for detail.

-b, --bg=color
    Specify background color (default white). Valid values for color are color names defined in rgb.txt and "color" configuration file and color rgb string whose format is "#RRGGBB".

-c, --cp932(=bool)
    Use CP932 mapping table to convert from JIS X 0208 to Unicode when displaying JIS X 0208 characters using Unicode font in anti-alias (Xft) mode. This is useful when you use proprietary Japanese true type fonts which are intended to be used with Microsoft Windows, with mlterm with encodings (such as EUC-JP, Shift_JIS, ISO-2022-JP, and so on) which contain JIS X 0208 as a coded character set. The reason is, such proprietary fonts may have glyphs only for Unicode code points into which JIS X 0208 code points are converted using CP932 mapping table. (CP932 is a name of mapping table which is used by Microsoft to convert from Shift_JIS [plus Microsoft private extended characters] into Unicode. In Unicode's point of view, CP932 is a name of encoding which is similar to Shift_JIS and is used by Japanese version of Microsoft Windows.) If you use such fonts for encodings such as EUC-JP and Shift_JIS with JIS0208.TXT mapping table which mlterm adopts as the standard, a few characters are mapped into Unicode code points where the fonts don't have glyphs. Both of CP932.TXT and JIS0208.TXT mapping tables are supplied by Unicode Consortium, though they are regarded to be obsolete. The default is true.

-d, --display=string
    Specify X display to connect with.

-e program [ arguments ... ]
    Invoke the command in the mlterm window. This option must be the last option on the command line.

-f, --fg=color
    Foreground color (default black). Valid values for color are color names defined in rgb.txt and "color" configuration file and color rgb string whose format is "#RRGGBB".

-g, --geometry=geometry
    Specify size and position of the window; see X(7).

-h, --help(=bool)
    Show help messages.

-i, --xim(=bool)
    Whether to use XIM (X Input Method). Most east Asian people will want to enable this option. Other people can also safely enable this. The default is true. The name of the XIM server to be connected is specified by standard way (i.e., XMODIFIERS environmental variable).

-j, --daemon=value
    Start as a daemon process. If blend is specified, mlterm exits as soon as the last terminal window is closed, but genuine specified, it works with no terminal windows and even without X server. Please read the chapter of DAEMON MODE for detail. The default is none.

-k, --meta=mode
    Behavior of META key. esc for sending ESC and none for ignoreing META key. The default is 8bit which sets the most significant bit. See -K option also.

-l, --sl=value
    Specify number of lines of backlog. The default is 128.

-m, --comb(=bool)
    Enable combining characters by overstriking glyphs (recommended for TIS-620, TCVN5712, and UTF-8). Note that fonts which contain combining characters which extend backward cannot be used, since mlterm does combine characters by controlling the writing positions. The default is true.

-n, --noucsfont(=bool)
    Use non-Unicode fonts even when mlterm encoding is UTF-8. Useful when you don't have ISO10646-1 fonts and you want to use UTF-8 encoding. The default is false.

-o, --lsp(=value)
    Specify number of extra dots between lines. The default is 0.

-p, --pic=path
    Path for wallpaper (background) image. Note that wallpaper cannot be used with transparent background.

-q, --extkey(=bool)
    Enable extended keys for backscroll mode. The default is false. Extended scroll keys are SCROLL_UP, up arrow, and "k" (for scrolling one line backword) and SCROLL_DOWN, down arrow, and "j" (for scrolling one line forward). Please note that concrete keys for symbols of SCROLL_UP and SCROLL_DOWN are specified in key configuration file. Only keys of PAGE_UP and PAGE_DOWN (which are specified in key configuration file) are available by default.

-r, --fade=ratio
    Specify fading ratio when window is unfocused. 100 means no fading and 0 means darkest. The default is 100

-s, --sb(=bool)
    Whether to use scrollbar. The default is true.

-t, --transbg(=bool)
    Whether to use transparent background. Note that transparent background cannot be used with wallpaper. The default is false.

-u, --onlyucsfont(=bool)
    Use Unicode fonts even when mlterm encoding is not UTF-8. Useful when you have ISO10646 fonts but you don't have other fonts and want to use non-UTF-8 encodings. Note that if mlterm encoding is not a subset of Unicode like ISO-2022-JP-2 or EUC-TW, characters which are regarded as a same character in Unicode are displayed with the same glyph and you cannot distinguish these characters. Since Xft library which is used for anti-alias font rendering is based on Unicode, anti-alias has the same problem. The default is false.

-v, --version
    Show version message.

-w, --fontsize=value
    Specify font size in pixel. The default is 16.

-x, --tw=value
    Specify tab width. The default is 8.

-y, --term=string
    Specify terminal type, i.e., the value of TERM variable. Please specify the value whose terminfo/termcap database fits to the behavior of mlterm. Since mlterm is designed to generally have a behavior like kterm, values which can be used for kterm can be used. If your system doesn't have any terminfo/termcap entries which fits the behavior of mlterm or if you want to use specific value of TERM which doesn't fit the behavior of mlterm, you may want to edit the termcap file to configurate the behavior of mlterm. Please consult the chapter of CONFIGURATION for detail. The default is xterm.

-z, --largesmall=size
    Specify the step of change of font size in pixel when you pushed "Font size larger" or "Font size smaller" button on GUI configurator. The default is 1.

--im= input method : [ arguments ... ]
    Specify input method.

    Examples:

    --im=xim
        Use XIM with the default XIM server specified by standard way (i.e., XMODIFIERS environmental variable).

    --im=xim:Ami
        Use XIM with Ami on the system locale.

    --im=xim:kinput2:ja_JP.EUC-JP
        Use XIM with kinput2 on ja_JP.EUC-JP locale.

    --im=kbd
        Use keyboard mapping input method for Arabic or Indic.

    --im=uim
        Use uim with the default conversion engine.

    --im=uim:prime
        Use uim with prime conversion engine.

    --im=iiimf
        Use IIIMF in the system language.

    --im=iiimf:ar
        Use IIIMF in Arabic.

    --im=iiimf:ja:CannaLE
        Use IIIMF in Japanese using CannaLE language engine.

    --im=m17nlib:ru
        Use m17n library in Russian.

    --im=m17nlib:or:itrans
        Use m17n library in Oriya using ITRANS method.

    --im=none
        Don't use input method.

GUI CONFIGURATOR
Pushing control key and mouse button 3 invokes GUI configurator (mlconfig). It can modify encoding, foreground and background color, tab size, backlog size, font size, usage of combining character, and so on.

GUI configurator has five pages (Encoding, Appearance, Color, Scrollbar, and Others), OK/Apply/Cancel buttons, and three special buttons.

Note this feature needs GTK+ 1.2 or later.

  Encoding page
Encoding-related configurations are located in this page. Note that configurations will be enabled when you push Apply button.

Encoding
    Specify encoding. (-E, --km)

ISCII language
    Specify ISCII language. (-C, --iscii)

Input Method
    Specify which input method to be used. (--im)

    XIM:

    XIM Server
        Specify the name of XIM server to be connected. You can input from your keyboard or you can choose one of registered XIM servers. This doesn't have equivalent command option. See the section of XIM Configuration File for registration of XIM servers.

    XIM locale
        Specify the name of the locale to be used for connection to the XIM server. Popular XIM servers usually have acceptable locales to be used for connection. If you choose registered XIM server in Input Method, this will be set automatically. You can also input the locale name from your keyboard.

    uim:

    Option
        Specify the name of the conversion engine to be used. If you choose auto, the conversion engine will be automatically selected according to the current locale.

    Note this feature needs uim library.

    IIIMF:

    Option
        Specify the language id (RFC1766) and the language engine to be used. If you choose auto, the language id/engine will be automatically selected according to the current locale.

    Note this feature needs IIIMCF library.

    m17n library:

    Option
        Specify the language and the input method to be used. If you choose auto, the language and input method will be automatically selected according to the current locale.

    Note this feature needs m17n library and m17n-db.

Bidi (UTF-8 only)
    Whether to support BiDi (bi-direction). (-D, --bi)

Combining
    Whether to support combining characters by overstriking. (-m, --comb)

Process received strings via Unicode
    When you paste some strings into mlterm, the strings are converted into Unicode and then to mlterm encoding. (-U, --viaucs)

  Appearance page
Configurations related to appearance (or look&feel) are located in this page.

Font size
    Font size in pixel. (-w, --fontsize)

Line space
    Specify number of extra dots between lines. (-o, --lsp)

Width ratio
    Specify actual screen width. (-1, --wscr)

Height ratio
    Specify actual screen height. (-2, --hscr)

Anti alias
    Use anti-alias fonts by using Xft. (-A, --aa)

Variable column width
    Use variable column width. (-V, --varwidth)

  Color page
Configurations related to color and background are located in this page.

Foreground color
    Foreground color for letters. (-f, --fg)

Background color
    Background color. (-b, --bg)

Fade ratio on unfocus
    Fading ratio when window is unfocused. (-r, --fade)

Wall picture
    Specify the image file to be used for background image. (-p, --pic)

Wall picture brightness
    Brightness of the background image. (-H, --bright)

Transparent background
    Transparent background. (-t, --transbg)

  Scrollbar page
Configurations related to scrollbar are located in this page.

Position
    Specify scrollbar position. (-O, --sbmod)

View
    Specify name of scrollbar. (-S, --sbview)

Foreground color
    Specify foreground color of scrollbar. (-F, --sbfg)

Background color
    Specify background color of scrollbar. (-B, --sbbg)

  Others page
Other configurations are located in this page.

Tab size
    Column number of tab. (-x, --tw)

Backog size
    Number of lines of backlog. (-l, --sl)

Meta key outputs
    Behavior of META key. (-k, --meta)

Bel mode
    Behavior when mlterm receives BEL (0x07) code. (-7, --bel)

Combining = 1 (or 0) logical column(s)
    Processing combining characters as if it occupies one column logically while it occupies zero column on the screen. (-J, --dyncomb)

Fullwidth = 2 (or 1) logical column(s)
    Processing CJK fullwidth characters as it occupies two columns logically since it occupies two columns on the screen. (-Z, --multicol)

  Buttons
There are buttons which is independent from OK/Apply/Cancel buttons.

OK/Apply/Cancel
    OK button applies the modified configuration to the current mlterm session, saves it to "~/.mlterm/main" configuration file, and quits the GUI Configurator. Apply button just applies the modified configuration to the current mlterm session.

Font size (Larger and Smaller)
    Change font size.

PTY List
    One process of mlterm may have multiple sessions and screens. The sessions may or may not have corresponding screen, i.e., the number of sessions can be more than the number of screens. Such situation can be achieved by using -P/--ptys option or closing a part of multiple screens from -@/--screens option. In such case, the screen-less session can be designated to one of screens by choosing the session (pty) from this list and push "select" button.

Full reset
    Reset internal status.

CONFIGURABLE MENU
Pushing control key and mouse button 1 invokes configurable menu displayer (mlterm-menu). It displays a menu with items such as "Larger Font" or "UTF-8 encoding". Though a default menu definition is supplied, you can freely define menu items by writing a menu configuration file. See Menu Configuration File section for detail.

Note this feature needs GTK+ 1.2 or later.

MULTIPLE XIM
mlterm can use multiple XIM (X Input Method) servers. The current XIM is specified by the GUI configurator. Using this feature you can input multiple complex languages such as Japanese and Korean. Locale to be used for communication with XIM can also be specified for each XIM. In the GUI configurator, you can choose one of registered pair of XIM and its locale or you can input your favorite XIM and its locale.

The locale for XIM is only used for communication with the XIM and is not related to the current mlterm locale. You have to properly configure the XIM locale only when your XIM has preference on the locale of XIM client (i.e., mlterm in this case). mlterm automatically convert the inputed string into proper encoding and you don't have to care about it.

Of course the initial XIM is chosen by using standard configuration, i.e., using XMODIFIERS environmental variable. See X(7) for detail on XIM and XMODIFIERS variable.

DAEMON MODE
mlterm can be invoked in daemon mode by using -j/--daemon command line option. In this mode, mlterm sessions are handled in the daemon (server) process and screens (clients) run as another processes. New screen processes can be created by using mlclient(1) command. The sessions are kept living even if the screen processes are killed. You can recall the screen processes by using mlclient(1) command.

SCROLLBAR
mlterm supports scrollbar API so that users can develop scrollbar libraries with arbitrary look and feel. The scrollbar libraries can be used by putting the libraries at the specified directory (determined on the compilation process) and invoke mlterm with -s -S name option. Scrollbar libraries named "sample", "sample2", "athena", "motif", "mozmodern", and "next" are supplied.

ANTI-ALIAS
mlterm can use True Type fonts using -A option via FreeType library when it has been compiled with anti-alias option.

Note this feature needs XFree86 4.0.2 or above and FreeType 2.0.2 or above.

WALLPAPER
mlterm can use background image (as known as wallpaper), by using -p/--pic option. You can also specify the brightness of the image by using -H/--bright option.

Note this feature needs imlib or gdk-pixbuf.

MULTIPLE PTY
This is one of most unique features of mlterm. The number of windows can be specified using -P option. Typing control + F1 opens another window which shares the same process. The maximum number of windows depends on your platform. Mostly it is 32 or 64.

BACKSCROLL MODE
mlterm enters into backscroll mode by typing Shift + up or Shift + PageUp key. In the mode, you can use the following keys.

j or Down
    Scroll down one line.

k or Up
    Scroll up one line.

d or PageDown
    Scroll down one page.

u or PageUp
    Scroll up one page.

Shift + space
    Initialize XIM.

Shift + Insert
    Insert selection.

Control + F1
    Open a new pty window.

keys defined in key configuration file
    PAGE_UP, PAGE_DOWN, SCROLL_UP, and SCROLL_DOWN keys are defined in the file.

other keys
    Exit from the backscroll mode.

Please note that keys other than PAGE_UP and PAGE_DOWN in key configuration file are available only when you used -q/--extkey command option.

SELECTION
Selection is a mechanism to be used for copy-and-paste in X Window System. Thus, this section describes on so-called copy-and-paste.

There are many encodings in the world. Though copy-and-paste needs sender and receiver and each of them can use one of various encodings, mlterm is designed to be able to receive characters from various encodings as much as possible.

There are two internationalized types of selection. One is COMPOUND_TEXT is the another is UTF8_STRING. COMPOUND_TEXT is ISO2022-based and can distinguish character sets which a character belongs to. However, the character sets which COMPOUND_TEXT supports are limited to ISO8859-* and East Asian character sets. On the other hand, UTF8_STRING is Unicode-based and can express all characters from Unicode character set. However, it cannot distinguish characters from different character sets which share one codepoint in Unicode, which can be a problem especially for CJK Han Ideogram (in other words, Kanji, Hanji, or Hanja). Note that UTF8_STRING is rather new and can be used only with XFree86.

Though the receiver of copy-and-paste can request the preferable type of selection, the sender sometimes doesn't support the type. Thus mlterm has to be able to process both of COMPOUND_TEXT and UTF8_STRING.

On the other hand, encodings supported by mlterm (see DESCRIPTION section for detail) are classified into four categories;

(a) Unicode itself
    UTF-8.

(b) subset of Unicode and ISO-2022-compliant
    "Subset of Unicode" means that Unicode supports round-trip compatibility for the encoding, i.e., the conversion of the encoding --> Unicode --> the encoding doesn't lose any information. "ISO-2022-compliant" means that the encoding can be regarded as a subset of ISO-2022 where a part of ISO-2022 control codes and escape sequences are not supported. Many popular encodings belong to this category such as ISO-8859-*, EUC-*, ISO-2022-KR, TIS-620, TCVN5712, and so on.

(c) subset of Unicode and non-ISO-2022-compliant
    Some of popular encodings such as Shift_JIS, Big5, GBK, GB18030, Johab, and so on belongs to this category.

(d) not subset of Unicode
    ISO-2022-JP, ISO-2022-JP-2, ISO-2022-JP-3, EUC-TW, and so on. All of them are ISO-2022-compliant.

Now the behavior of mlterm can be explained.

-------------------------------------------------------
encoding received selection  how to process?
-------------------------------------------------------
   a     COMPOUND_TEXT       convert to Unicode
   a     UTF8_STRING         no need for conversion
   b     COMPOUND_TEXT       user preference *1
   b     UTF8_STRING         convert to the encoding *2
   c     COMPOUND_TEXT       user preference *1
   c     UTF8_STRING         convert to the encoding *2
   d     COMPOUND_TEXT       no need for conversion *3
   d     UTF8_STRING         convert to the encoding *2
-------------------------------------------------------

*1 Characters from unsupported character sets (i.e., characters which cannot be expressed in the mlterm encoding) may appear in the selection (received copy-and-paste string). If you want to receive characters which are equivalent to characters which are supported in the current mlterm encoding (i.e., characters which share the same codepoint in Unicode), you can use -U (or --viaucs) option. Otherwise, these characters are pasted into mlterm using ISO-2022 escape sequence (when mlterm encoding is category b). Note such ISO-2022 escape sequences are illegal in the current mlterm encoding and the application software will need special feature to treat them properly, though it is displayed well in mlterm. When mlterm encoding is category c, such characters are simply ignored (when -U option is not enabled).

*2 Characters which cannot be converted into mlterm encoding are simply ignored.

*3 Characters from unsupported character sets will be pasted into mlterm using ISO-2022 escape sequence.

CONFIGURATION
mlterm loads configuration files of "main", "font", "vfont", "tfont", "aafont", "vaafont", "taafont", "color", "key", "termcap", and "xim" on start up. "menu" configuration file is loaded by the configurable menu displayer (mlterm-menu). See the section of CONFIGURABLE MENU for detail.

Configuration files for one user are to be located in "~/.mlterm/" directory, while location for configuration files for all users depends on the compilation option. Possible locations are "/etc/", "/etc/X11/", "/usr/X11R6/lib/X11/mlterm/", and so on.

The names and the roles of configuration files are:

main
    Main configuration items which can be overridden by command line options.

font
    Configurations for ordinary X fonts.

vfont
    Configurations for ordinary X fonts of variable column width.

tfont
    Configurations for ordinary X fonts of vertical writing.

aafont
    Configurations for anti-alias Xft fonts.

vaafont
    Configurations for anti-alias Xft fonts of variable column width.

taafont
    Configurations for anti-alias Xft fonts of vertical writing.

color
    Designate concrete RGB values for color names.

key Key definitions for special features of mlterm.

termcap
    Define mlterm's behaviors which affects terminfo and termcap definition.

xim Define preset locales for X Input Methods which are shown in the GUI configurator. Of course you can input XIM names and locales for the GUI configurator which are not listed in this configuration file.

menu
    Define menu items which is displayed by configurable menu displayer.

The contents of these configuration files (other than menu) consist of lines of "key=value" format. Lines beginning with "#" are ignored.

Note that the configuration files are changed since version 1.9.44.

  Main Configuration File
This file contains main configuration items which can be overridden by command line options. The main configuration file "main" has the following keys. Parentheses show the corresponding command-line options. See the explanation on these command-line options for detail.

app_name=name (-N, --name)
    Application name.

bg_color=color (-b, --bg)
    Background color.

brightness=value (-H, --brightness)
    Specify the amount of darkening or lightening the background image.

borderless=bool (-&, --borderless)
    Don't draw window decorations.

big5_buggy=bool (-5, --big5bug)
    Support Big5 CTEXT bugs (which exist in XFree86 4.1.0 or before).

col_size_of_width_a=value (-a, --ac)
    Number of columns of Unicode characters with EastAsianAmbiguous property.

compose_dec_special_font=bool (-Y, --decsp)
    Compose line drawing character set.

cursor_bg_color=color (-0, --crbg)
    Specify background color for cursor.

cursor_fg_color=color (-9, --crfg)
    Specify foreground color for cursor.

receive_string_via_ucs=bool (-U, --viaucs)
    If the received selection (i.e., copy-and-paste strings) or strings received from XIM is not UTF8_STRING type, convert it into Unicode and then to the current mlterm encoding, in order to identify equivalent characters (i.e., characters which share the same codepoint in Unicode) from various character sets. See SELECTION section below for detail.

conf_menu_path_1=path
    Path for external GUI configurator mapped to control key and mouse button 1 (default mlterm-menu).

conf_menu_path_2=path
    Path for external GUI configurator mapped to control key and mouse button 2 (not mapped by default).

conf_menu_path_3=path (-M, --menu)
    Path for external GUI configurator mapped to control key and mouse button 3 (default mlconfig).

display=value (-d, --display)
    Specify X server to connect.

bel_mode=mode (-7, --bel)
    Behavior when BEL (0x07) is received.

contrast=value (-3, --contrast)
    Contrast of background image in percent.

ENCODING=encoding (-E, --km)
    Specify encoding.

daemon_mode=mode (-j, --daemon)
    Start as a daemon process.

fade_ratio=ratio (-r, --fade_ratio)
    Specify fading ratio when window is unfocused.

fg_color=color (-f, --fg)
    Foreground color.

fontsize=value (-w, --fontsize)
    Font size in pixel.

font_size_range=range (-R, --fsrange)
    Range of size of usable fonts.

gamma=value (-4, --gamma)
    Gamma of background image in percent.

geometry=value (-g, --geometry)
    Specify size and position of the window; see X(7).

icon_name=name (-I, --icon)
    Icon name.

input_method= input method : [ arguments ... ] (--im)
    Specify input method.

iscii_lang=value (-C, --iscii)
    Specify iscii language.

iso88591_font_for_usascii=bool (-8, --88591)
    Use ISO8859-1 fonts for US-ASCII part of various encodings.

line_space=value (-o, --lsp)
    Specify number of extra dots between lines.

logsize=value (-l, --sl)
    Specify number of lines of backlog.

mod_meta_mode=mode (-k, --meta)
    Behavior of META key.

mod_meta_key=mode (-K, --metakey)
    Specify a key to be regarded as META.

not_use_unicode_font=bool (-n, --noucsfont)
    Use non-Unicode fonts even when mlterm encoding is UTF-8.

only_use_unicode_font=bool (-u, --onlyucsfont)
    Use Unicode fonts even when mlterm encoding is not UTF-8.

ptys=value (-P, --ptys)
    Number of pty windows to be opened on start up.

sb_bg_color=color (-B, --sbbg)
    Background color for scrollbar.

sb_fg_color=color (-F, --sbfg)
    Foreground color for scrollbar.

screen_height_ratio=value (-1, --hscr)
    Specify actual screen height.

screen_width_ratio=value (-1, --wscr)
    Specify actual screen width.

scrollbar_mode=mode (-O, --sbmod)
    Specify scrollbar position.

scrollbar_view_name=name (-S, --sbview)
    Specify name of scrollbar.

step_in_changing_font_size (-z, --largesmall)
    Specify changing size when font size becomes larger or smaller.

tabsize=value (-x, --tw)
    Specify tab width.

termtype=string (-y, --term)
    Terminal type.

title=name (-T, --title)
    Title name.

type_engine=value (-*, --type)
    Rendering engine for drawing fonts.

use_anti_alias=bool (-A, --aa)
    Use anti alias font.

use_bidi=bool (-D, --bi)
    Use BiDi rendering on UTF8 encoding.

use_combining=bool (-m, --comb)
    Enable combining characters.

use_cp932_ucs_for_xft=bool (-c, --cp932)
    Use CP932 - UCS mapping for displaying JISX0208 by Xft.

use_dynamic_comb=bool (-J, --dyncomb)
    Enable dynamic character combining.

use_extended_scroll_shortcut=bool (-q, --extkey)
    Enable extended short cut keys for scrolling.

use_login_shell=bool (-L, --ls)
    Whether to use login shell or not.

use_multi_column_char=bool (-Z, --multicol)
    Process full width characters.

use_scrollbar=bool (-s, --sb)
    Use scrollbar.

use_transbg=bool (-t, --transbg)
    Use transparent background.

use_variable_column_width=bool (-V, --varwidth)
    Use variable column width.

use_vertical_cursor=value (-Q, --vcur)
    Use cursor movement for vertical writing.

use_xim=bool (-i, --xim)
    Use XIM (X Input Method).

vertical_mode=value (-G, --vertical)
    Use vertical writing.

wall_picture=path (-p, --pic)
    Path for wallpaper image.

word_separators=characterlist (-W, --sep)
    Delimiter characters used for word selection.

xim_open_in_startup=bool (-X, --openim)
    Open XIM on startup.

static_backscroll_mode=bool (-6, --stbs)
    Don't exit backscroll mode when console applications output something.

icon_path=path
    Path for the image file to be used as window icon.

  Font Configuration Files
The font configuration files "font", "vfont", "tfont", "aafont", "vaafont", and "taafont" have the following keys.

DEC_SPECIAL=fonts
ISO8859_n=fonts
TIS620=fonts
VISCII=fonts
KOI8_R=fonts
KOI8_U=fonts
TCVN5712=fonts
JISX0201_ROMAN=fonts
JISX0201_KATA=fonts
JISX0208_1978=fonts
JISX0208_1983=fonts
JISX0208_1990=fonts
JISX0213_2000_1=fonts
JISX0213_2000_2=fonts
KSX1001_1997=fonts
UHC=fonts (not used)
JOHAB=fonts (not used)
GB2312_80=fonts
GBK=fonts
BIG5=fonts
HKSCS=fonts
CNS11643_1992_n=fonts
ISO10646_UCS4_1=fonts
ISO10646_UCS4_1_BIWIDTH=fonts
    Specify fonts for corresponding character sets. The format is different between "font", "vfont" "tfont" files and "aafont", "vaafont" "taafont" files.

    In "font", "vfont", "tfont" files, "font" is specified in "NAME:PERCENT;SIZE,NAME:PERCENT;SIZE,NAME:PERCENT;..." format where "SIZE" is font size in pixel, and "NAME" is XLFD or alias names of X fonts. If the first "NAME" contains "%d", it is replaced by an appropriate font size number. ":PERCENT" is multiplied by font size and decides character width of a font. If ":PERCENT" is omitted, max font width is used for it.

    In "aafont", "vaafont", "taafont" files, "font" is specified in "FAMILY-ENCODING:PERCENT;SIZE,FAMILY-ENCODING:PERCENT;SIZE,FAMILY-ENCODING:PERCENT;..." format. The first pair of FAMILY and ENCODING specifies the default font and the others with SIZE are for specific sizes. ":PERCENT" is multiplied by font size and decides character width of a font. If ":PERCENT" is omitted, 'W' width is used for it.

encoding_BOLD=fonts
    Specify boldface fonts.

  Color Configuration File
The color configuration file "color" has the following key.

COLORNAME=RGB
    Assign a concrete color for the name COLORNAME. COLORNAME is one of prev_fg (foreground), prev_bg (background), red, green, yellow, blue, magenta, cyan, and white. Names of hl_COLORNAME are available for other than prev_fg and prev_bg for highlighted colors. The format of RGB is either "RRRR-GGGG-BBBB" (where RRRR, GGGG, and BBBB are hexadecimal value from 0 to ffff) or "#RRGGBB" (where RR, GG, and BB are hexadecimal value from 00 to ff).

  XIM Configuration File
The X Input Methods configuration file "xim" has the following format

XIM=locale

where XIM is XIM name and locale is locale name used for communication with the XIM server. For example,
kinput2=ja_JP.eucJP
Ami=ko_KR.eucKR
xcin-zh_CN.GB2312=zh_CN.GB2312
These settings are used for choices of XIM in the GUI configurator. You can use XIMs which are not listed in this configuration file.

  Feature Key Configuration File
The feature key configuration file "key" has the following format.

KEY=FEATURE

Here, the format for KEY is "(MASK+)KEY", where MASK is one of Control, Shift, and Mod. You can specify multiple "MASK+"s. You can search spellings of KEY by using xev(1) command or searching keysym macros from /usr/X11R6/include/X11/keysymdefs.h (or the equivalent file in your X11 include directory) and omit the prefix XK_. Double quatation maks are not needed.

FEATURE is one of IM_HOTKEY, EXT_KBD, OPEN_SCREEN, NEW_PTY, OPEN_PTY, PAGE_UP, PAGE_DOWN, SCROLL_UP, SCROLL_DOWN, INSERT_SELECTION, "STRING", or "proto:STRING".

IM_HOTKEY
    Switch conversion mode of m17n library and kdb input methods

EXT_KBD
    Activate or deactivate kbd input method. (This feature is obsolete. IM_HOTKEY is recommended now.)

OPEN_SCREEN
    Open new pty in new screen (default Ctrl+F1)

NEW_PTY
    Same as OPEN_SCREEN (obsoleted)

OPEN_PTY
    Open new pty in current screen (default UNUSED)

PAGE_UP
    Start backscroll mode and scroll up one page (default Shift+prior).

PAGE_DOWN
    Scroll down one page. (default Shift+next).

SCROLL_UP
    Start backscroll mode and scroll up one line (default Shift+up). Note this key is enabled only when -q/--extkey option is used.

SCROLL_DOWN
    Scroll down one line (default Shift+down). Note this key is enabled only when -q/--extkey option is used.

INSERT_SELECTION
    Insert selection (default Shift+Insert).

"STRING"
    The specified string is issued when the KEY key is pressed. Double quatation marks are required around the STRING. Note that you usually cannot control the status of the terminal by writing terminal control codes such as "\x1b]5379;encoding=utf8\x0a" because this behaves just as if you type the string on your shell. In such a case, please use the following "proto:STRING" instead.

"proto:STRING"
    The specified string is assumed to mlterm's original control sequence. The sequence is described in doc/en/PROTOCOL file of mlterm distribution. For example, "proto:encoding=utf8" means changing the current character encoding to UTF-8.

  Terminal Behavior Configuration File
This configuration file determines the behaviors of mlterm which affect the definition of terminfo and termcap. In principle, this file should not be edited and, instead, you should use a proper value of TERM variable (i.e., proper terminfo/termcap definition) which meets mterml's behavior. (Since mlterm's behavior is generally similar to kterm, TERM=kterm will be usually OK.) However, there are some reasons why you may want not to edit your terminfo and termcap, for example, when you use some softwares which don't consult terminfo and termcap database and do consult TERM variable, when one terminfo/termcap entry is shared by several terminal emulators, and so on. In such cases, you can configure mlterm so that it works well on existing terminfo/termcap definitions on your systems. This is also useful for distributors of operating systems (like Debian) with strict policy of terminal emulators' behaviors.

You can define the behaviors of mlterm for each value of TERM variable, so that you don't need to edit termcap file each time you login into other systems and use different value of TERM variable by -y option. You can also specify the default behavior when TERM variable is different from all of specified TERM names in the termcap file.

The grammer of this configuration file is resemble to the grammer of termcap entries. First, one or more name(s) of TERM is written. Multiple names are connected with virtical line character '|'. Special name '*' is for default. Then colon ':' comes, and keys are written separated by colons. Configuration(s) for other TERM will follow after new line.

Followings are available keys for each TERM value.

kD=sequence
    Specify sequence to be outputted when Delete key is pushed (default \E[3~).

kb=sequence
    Specify sequence to be outputted when BackSpace key is pushed (default ^?).

kh=sequence
    Specify sequence to be outputted when HOME key is pushed (default \EOH).

@7=sequence
    Specify sequence to be outputted when END key is pushed (default \EOF).

ut  Specify the way how the screen is erased by control codes. If ut is written in the termcap file, charcells are painted by the current background color when erased; otherwise the charcells are painted by the initial background color. Default is non-ut behavior.

The following special characters can be used to specify sequence in keys of kD/kb/kh/@7.

\E  ESC code (0x1b).

^?  DEL code (0x7f).

^A, ^B,...
    Corresponding control code (0x01 - 0x1a).

  Menu Configuration File
This configuration file defines the menu displayed by the configurable menu displayer mlterm-menu. See CONFIGURABLE MENU section for detail.

SEE ALSO
Manual pages of mlclient(1), locale(7), charsets(7), UTF-8(7), and X(7).

README.sb for development of scrollbar library.

PROTOCOL for mlterm's original control escape sequences.

Mapping tables between Unicode and local character sets (and encodings) are found at Unicode Consortium web site (http://www.unicode.org/Public/MAPPINGS/). Note that mapping tables for East Asian character sets and encodings are moved to OBSOLETE/EASTASIA directory of the site since August 2001.

For BIG5 and BIG5HKSCS encodings, mapping tables for Unicode is taken from ftp://xcin.linux.org.tw/pub/xcin/i18n/charset/.

Unicode Standard Annex (UAX) #11 East Asian Width, which explains East Asian Width properties, and EastAsianWidth.txt, which defines EastAsianAmbiguous characters in Unicode, are supplied by Unicode Consortium (http://www.unicode.org).

See the web page of "Linux Technology Development for Indian Languages" (http://www.cse.iitk.ac.in/~moona/isciig/) for libind library and related needed resources for ISCII support by mlterm.

FILES

"main", "font", "vfont", "tfont", "aafont", "vaafont", "taafont", "color", "key", "termcap", "xim", and "menu"
    Configuration files.

"mlconfig"
    GUI configurator.

CONTACT
Subscribe mlterm-dev-en ML (http://lists.sourceforge.net/lists/listinfo/mlterm-dev-en).