xiterm+thai(1) VT102 emulator for the X window system with Thai support


xiterm+thai [options] [-e command [args]]


xiterm+thai --- version 1.10 --- is a color vt102 terminal emulator intended as an xterm(1) replacement for users who do not require features such as Tektronix 4014 emulation and toolkit-style configurability. As a result, xiterm+thai uses much less swap space --- a significant advantage on a machine serving many X sessions.


The xiterm+thai options (mostly a subset of xterm's) are listed below. In keeping with the smaller-is-better philosophy, options may be eliminated or default values chosen at compile-time, so options and defaults listed may not accurately reflect the version installed on your system.

Note that xiterm+thai permits the resource name to be used as a long-option (--/++ option) so the potential command-line options are far greater than those listed.
For example: `xiterm+thai --loginShell --color1 Orange'.

Print out a message describing available options.
-display displayname
Attempt to open a window on the named X display (-d still respected). In the absence of this option, the display specified by the DISPLAY environment variable is used.
-geometry geom
Window geometry (-g still respected); resource geometry.
Turn on/off simulated reverse video; resource reverseVideo.
-bg color
Window background color; resource background.
-fg color
Window foreground color; resource foreground.
-pixmap: file[;geom]
Specify XPM file for the background and also optionally specify its scaling with a geometry string; resource backgroundPixmap.
-cr color
The cursor color; resource cursorColor.
-fn fontname
Main normal text font; resource font.
-fb fontname
Main bold text font; resource boldFont.
-fk fontname
Main Kanji font; resource kfont.
-km mode
Kanji encoding mode; eucj: EUC Japanese encoding. sjis: Shift JIS encoding; resource kanji_encoding.
-grk mode
Greek keyboard translation; iso: ISO-8859 mapping. ibm: IBM-437 mapping; resource greek_keyboard.
-tspace int
Space count to trigger compensation for Thai rendering; default is 2; resource thai_space.
-tkb mode
Thai keyboard translation; tis: TIS-820.2538; ket: traditional Ketmanee; default is ket; resource thai_keyboard.
-tim mode
Thai input method (based on XIM); BasicCheck: weak sequence check for character composition; Strict: strong check for orthographic rules; Passthrough: no check; if unset, value described in the XMODIFIERS environment is used; resource thai_im.
-name name
Specify the application name under which resources are to be obtained, rather than the default executable file name. Name should not contain `.' or `*' characters. Also sets the icon and title name.
Start as a login-shell/sub-shell; resource loginShell.
Inhibit/enable writing a utmp entry; resource utmpInhibit.
Turn on/off visual bell on receipt of a bell character; resource visualBell.
Turn on/off scrollbar; resource scrollBar.
Start iconified, if the window manager supports that option.
-sl number
Save number lines in the scrollback buffer; resource saveLines.
-e command [arguments]
Run the command with its command-line arguments in the xiterm+thai window. If this option is used, it must be the last on the command-line. If there is no -e option then the default is to run the program specified by the SHELL environment variable or, failing that, sh(1).
-title text
Window title (-T still respected); resource title.
-n text
Icon name; resource iconName.
Capture system console messages.

RESOURCES (available also as long-options)

xiterm+thai accepts application defaults set in XAPPLOADDIR/Xiterm (compile-time defined: usually /usr/lib/X11/app-defaults/Xiterm) and resources set in ~/.Xdefaults or ~/.Xresources. Note that when reading X resources, xiterm+thai recognizes two class names: XTerm and Xiterm. The class name XTerm allows resources common to both xiterm+thai and xterm to be easily configured, while the class name Xiterm allows resources unique to xiterm+thai, notably colors and key-handling, to be shared between different xiterm+thai configurations. If no resources are specified, suitable defaults will be used. Command-line arguments can be used to override resource settings. The following resources are allowed:
geometry: geom
Create the window with the specified X window geometry [default 80x24]; option -geometry.
background: color
Use the specified color as the window's background color [default White]; option -bg.
foreground: color
Use the specified color as the window's foreground color [default Black]; option -fg.
colorn: color
Use the specified color for the color value n, where 0-7 corresponds to low-intensity (normal) colors and 8-15 corresponds to high-intensity (bold = bright foreground, blink = bright background) colors. The canonical names are as follows: 0=black, 1=red, 2=green, 3=yellow, 4=blue, 5=magenta, 6=cyan, 7=white, but the actual color names used are listed in the COLORS AND GRAPHICS section.
colorBD: color
Use the specified color to display bold characters when the foreground color is the default.
colorUL: color
Use the specified color to display underlined characters when the foreground color is the default.
cursorColor: color
Use the specified color for the cursor. The default is to use the foreground color; option -cr.
cursorColor2: color
Use the specified color for the color of the cursor text. For this to take effect, cursorColor must also be specified. The default is to use the background color.
cursorColorThai: color
Use the specified color for the cursor while in Thai mode. The default is to use the foreground color.
reverseVideo: boolean
True: simulate reverse video by foreground and background colors; option -rv, False: regular screen colors [default]; option +rv. See note in COLORS AND GRAPHICS section.
scrollColor: color
Use the specified color for the scrollbar [default #B2B2B2].
backgroundPixmap: file[;geom]
Use the specified XPM file (note the `.xpm' extension is optional) for the background and also optionally specify its scaling with a geometry string WxH+X+Y, in which W/H specify the horizontal/vertical scale (percent) and X/Y locate the image centre (percent). A scale of 0 displays the image with tiling. A scale of 1 displays the image without any scaling. A scale of 2 to 9 specifies the number of images in that direction. No image will be magnified beyond 10 times its original size. The maximum permitted scale is 1000. [default 100x100+50+50]
path: path
Specify the colon-delimited search path for finding XPM files, in addition to the paths specified by the RXVTPATH and PATH environment variables.
font: fontname
Select the main text font used [default 7x14]; option -fn.
fontn: fontname
Specify the alternative font n. The default font values:

font:	7x14
font1:	6x10
font2:	6x13
font3:	8x13
font4:	9x15
boldFont: fontname
Specify the name of the bold font to use if colorBD has not been specified and it is not possible to map the default foreground color to color 8-15 [default NONE]. This font must be the same height and width as the normal font; option -fb.
kfont: fontname
Select the main Kanji text font used [default k14]; option -fk.
kfontn: fontname
Specify the alternative Kanji font n. If compiled for Kanji, the Roman and Kanji font sizes should match. The default font values:

font:	7x14
font1:	8x16
font2:	9x18
font3:	12x24
font4:	13x26

kfont: k14 kfont1: jiskan16 kfont2: jiskan18 kfont3: jiskan24 kfont4: jiskan26
kanji_encoding: mode
Set the Kanji encoding mode to be used; eucj: EUC Japanese encoding [default]. sjis: Shift JIS encoding; option -km.
greek_keyboard: mode
Set the Greek keyboard translation mode to be used; iso: ISO-8859 mapping (elot-928) [default]. ibm: IBM-437 mapping (DOS codepage 737); option -grk. Use Mode_switch to toggle keyboard input. For more details, see the distributed file README.greek.
thai_space: int
Set the space count to trigger space compensation for previous combining marks; default value is 2; option -tsp.
thai_keyboard: mode
Set the Thai keyboard translation map to use; tis: TIS-820.2538 map; ket: traditional Ketmanee map; default value is ket; option -tkb.
thai_im: mod
Set the Thai input method (based on XIM) to use; BasicCheck: weak sequence check for character composition; Strict: strong check for orthographic rules; Passthrough: no check; if unset, value described in the XMODIFIERS environment is used; option -tim.
title: text
Set window title string, the default title is the command-line specified after the -e option, if any, otherwise the application name; option -title.
iconName: text
Set the name used to label the window's icon or displayed in an icon manager window, it also sets the window's title unless it is explicitly set; option -n.
mapAlert: boolean
True: de-iconify (map) on receipt of a bell character. False: no de-iconify (map) on receipt of a bell character [default].
visualBell: boolean
True: use visual bell on receipt of a bell character; option -vb. False: no visual bell [default]; option +vb.
loginShell: boolean
True: start as a login shell by prepending a `-' to argv[0] of the shell; option -ls. False: start as a normal sub-shell [default]; option +ls.
utmpInhibit: boolean
True: inhibit writing record into the system log file utmp; option -ut. False: write record into the system log file utmp [default]; option +ut.
print-pipe: string
Specify a command pipe for vt100 printer [default lpr(1)]. Use Print to initiate a screen dump to the printer and Ctrl-Print or Shift-Print to include the scrollback as well.
scrollBar: boolean
True: enable the scrollbar [default]; option -sb. False: disable the scrollbar; option +sb. Note that the scrollbar position (left/right) and its type (with/without arrows) is compile-time selected.
smallfont_key: keysym
If enabled, use Alt-keysym to toggle to a smaller font [default Alt-<].
bigfont_key: keysym
If enabled, use Alt-keysym to toggle to a bigger font [default Alt->].
saveLines: number
Save number lines in the scrollback buffer [default 64]; option -sl.
meta8: boolean
True: handle Meta (Alt) + keypress to set the 8th bit. False: handle Meta (Alt) + keypress as an escape prefix [default].
cutchars: string
The characters used as delimiters for double-click word selection. The built-in default:
TAB SPACE BACKSLASH `'&()*,;<=>?@[]{|}
keysym.sym: string
Associate string with keysym sym (0xFF00 - 0xFFFF). It may contain escape values (\a: bell, \b: backspace, \e, \E: escape, \n: newline, \r: return, \t: tab, \000: octal number) or control characters (^?: delete, ^@: null, ^A ...) and may enclosed with double quotes so that it can start or end with whitespace. The intervening resource name keysym. cannot be omitted. This resource is only available when compiled with FAKE_RESOURCES.


Lines of text that scroll off the top of the xiterm+thai window (resource: saveLines) and can be scrolled back using the scrollbar or by keystrokes. The normal xiterm+thai scrollbar has arrows and its behaviour is fairly intuitive. The xterm-scrollbar is without arrows and its behaviour mimics that of xterm.

Scroll down with Button1 (xterm-scrollbar) or Shift-Next.
Scroll up with Button3 (xterm-scrollbar) or Shift-Prior.
Continuous scroll with Button2.


To temporarily override mouse reporting, for either the scrollbar or the normal text selection/insertion, hold either the Shift or the Meta (Alt) key while performing the desired mouse action.

If mouse reporting mode is active, the normal scrollbar actions are disabled --- on the assumption that we are using a fullscreen application. Instead, pressing Button1 and Button3 sends ESC[6~ (Next) and ESC[5~ (Prior), respectively. Similarly, clicking on the up and down arrows sends ESC[A (Up) and ESC[B (Down), respectively.


The behaviour of text selection and insertion mechanism is similar to xterm.
Left click at the beginning of the region, drag to the end of the region and release; Right click to extend the marked region; Left double-click to select a word; Left triple-click to select the entire line.
Pressing and releasing the Middle mouse button (or Shift-Insert) in an xiterm+thai window causes the current text selection to be inserted as if it had been typed on the keyboard.


You can change fonts on-the-fly, which is to say cycle through the default font and others of various sizes, by using Shift-KP_Add and Shift-KP_Subtract. Or, alternatively (if enabled) with Alt-> and Alt-<, where the actual key can be selected using resources smallfont_key/bigfont_key.


xiterm+thai tries to write an entry into the utmp file (usually /etc/utmp), so that it can be seen via the who(1) command, and can accept messages. To allow this feature, xiterm+thai must be installed setuid root.


If graphics support was enabled at compile-time, xiterm+thai can be queried with ANSI escape sequences and can address individual pixels instead of text characters. Note the graphics support is still considered beta code.

In addition to the default foreground and background colors, xiterm+thai can display up to 16 colors (8 ANSI colors plus high-intensity bold/blink versions of the same). Here is a list of the colors with their rgb.txt names.

color0	(black)	= Black
color1	(red)	= Red3
color2	(green)	= Green3
color3	(yellow)	= Yellow3
color4	(blue)	= Blue3
color5	(magenta)	= Magenta3
color6	(cyan)	= Cyan3
color7	(white)	= AntiqueWhite

color8	(bright black)	= Grey25
color9	(bright red)	= Red
color10	(bright green)	= Green
color11	(bright yellow)	= Yellow
color12	(bright blue)	= Blue
color13	(bright magenta)	= Magenta
color14	(bright cyan)	= Cyan
color15	(bright white)	= White

foreground	= Black
background	= White

It is also possible to specify the color values of foreground, background, cursorColor, cursorColor2, colorBD, colorUL as a number 0-15, as a convenient shorthand to reference the color name of color0-color15.

Note that -rv (reverseVideo: True) simulates reverse video by always swapping the foreground/background colors. This is in contrast to xterm where the colors are only swapped if they have not otherwise been specified. For example,

xiterm+thai -fg Black -bg White -rv
would yield White on Black, while on xterm it would yield Black on White.


xiterm+thai sets the environment variables TERM, COLORTERM and COLORFGBG. The environment variable WINDOWID is set to the X window id number of the xiterm+thai window and it also uses and sets the environment variable DISPLAY to specify which display terminal to use. xiterm+thai uses the environment variables RXVTPATH and PATH to find XPM files.


System file for login records.
Color names.


Selecting/pasting very large chunks of text is a problem. But as is the case for xterm, it is a bug of the pseudo terminal driver of those systems.

xiterm+thai 1.0 has the utmp support cleaned-up and supports utmpx (i.e. Solaris 2.x) but there are still some problems. Please inform the maintainer of the correct solutions to utmp problems since he doesn't have root access of his own to test utmp.

Cursor change support is not yet implemented.

Click-and-drag doesn't work with X11 mouse report overriding.

Graphics support is fairly crude.

For some fonts there are problems with pixel-droppings being left behind when simulated bold (overstrike) precedes a space character. Fixing xiterm+thai to handle these cases requires a lot of energy. So the easiest course by far is to specify a boldFont, specify colorBD or, if it was compiled without NO_BRIGHTCOLOR, to select a foreground color that matches the pixel values of color 0-7 so that overstrike bold won't be used.

Like xterm, xiterm+thai handles mono-space fonts only, and only TIS-620 fonts are supported.


John Bovey, University of Kent, 1992.

Very very very heavily modified by Rob Nation <[email protected]>

Greek keyboard input: Angelo Haritsis <[email protected]>

Utmpx addition (Solaris 2.x) and extensive reworking of pseudo-tty handling and addition of BSD sgtty terminal handling support by Raul Garcia Garcia <[email protected]> 16/10/95.

mj olesen <[email protected]> (changes.txt 2.11 to 2.20)

Thai language support: Vuthichai Ampornaramveth <[email protected]>


Theppitak Karoonboonyanan <[email protected]>