MLTERM(1)
πΈ MLTERM(1) β NAME πΈ
mlterm β the Multi Lingual TERMinal emulator on X. She's that girl, fr fr. π
β¨ SYNOPSIS β¨
mlterm [options]
π¦ DESCRIPTION π¦
Okay so mlterm is a multi-lingual terminal emulator written from scratch, bestie. She supports various character sets and encodings from all over the world, plus complex characters like double width for East Asian, combining for Thai, Vietnamese, and so on, and bi-direction for Arabic and Hebrew. Indic scripts are experimentally supported. She also has a bunch of unique features like anti-alias using FreeType, multiple XIM, multiple windows, scrollbar API, scroll by mouse wheel, automatic selection of encoding, daemon mode, and so on. Obsessed. π
Here's the full roster of encodings she speaks, no cap:
ISO-8859-[1-11]ISO-8859-[13-16]TIS-620(same asISO-8859-11)KOI8-RKOI8-UKOI8-TGEORGIAN-PSTCVN5712ISCII_(ASSAMESE|BENGALI|GUJARATI|HINDI|KANNADA|MALAYALAM|ORIYA|PUNJABI|TAMIL|TELUGU)VISCIICP125[0-8]CP874EUC-JPEUC-JISX0213Shift_JISShift_JISX0213ISO-2022-JP[1-3]EUC-KRUHCJOHABISO-2022-KRGB2312(EUC-CN)GBKGB18030ISO-2022-CNHZEUC-TWBIG5BIG5HKSCSUTF-8
If you've already set your locale (like the LANG variable; see locale(7) for detail), mlterm will automatically select the proper encoding. Periodt. π
π OPTIONS π
Note thatboolis to be substituted bytrueorfalse. Don't forget, bestie!
-A,--aa(=bool)β Turn on anti-aliased fonts. This only works with Xft or cairo for now. The default istrue. Slay.-B,--sbbg=colorβ Set the background color of a scrollbar. A valid value forcoloris a color name or an RGB value. The color name should be defined inrgb.txtor the"color"configuration file. The RGB value's format should be"#RRGGBB","#RRGGBBAA","rgb:RR/GG/BB"or"rgba:RR/GG/BB/AA". So many options, we love to see it. π-C,--ctl(=bool)β Enable complex text layouting on UTF8 encoding to support indic scripts and RTL (right-to-left) languages such as Arabic and Hebrew. The default istrue. (Ifmlterm -voutputs"no-indic"or"no-bidi", indic scripts or RTL languages are not supported.) Just a heads up, bestie.-E,--km=encodingβ Specify encoding. Valid encodings are listed in the DESCRIPTION section above in this man page.AUTOmakesmltermdetermine the encoding according to the current locale (defaultAUTO). Easy peasy.-F,--sbfg=colorβ Set the foreground color of a scrollbar. See the--sbbgoption for valid values. Matchy matchy. π-G,--vertical=modeβ Specify vertical writing mode.cjkfor RTL vertical writing andmongolfor LTR one. The default isnonewhich means horizontal writing mode. Choose your vibe.-H,--bright=valueβ Brightness of background images in percent. See the-poption for details of background images. The default is100(keep original). Glow up. β¨-I,--icon=nameβ Specify a name to be used when amltermwindow is iconified. The default is"mlterm". Iconic, literally.-J,--dyncomb(=bool)β Enable dynamic character combining. "Dynamic" means that combining characters are stored in without combining but they are displayed using combined form. 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. Under this option, a (logical) column number and a character have a one-to-one correspondence, even for combining characters (though not for fullwidth characters; see-Z/--multicoloption for handling of fullwidth characters). Thus, this mode enables you to use combining characters with software which does not support combining characters. The default isfalse. Big brain energy. π§-K,--metakey=valueβ Specify a key to be interpreted as a META key. Valid values are:alt,meta,hyper,super,mod1,mod2,mod3,mod4, andnone. The default isnone. See the-koption also. Meta af. π-L,--ls(=bool)β Whether to use login shell or not. The default isfalse. Your call, bestie.-M,--im= input method : [ arguments ... ]β Specify an input method.
Examples:
--im=ximβ Use XIM with the default XIM server specified by standard way (i.e.,XMODIFIERSenvironmental variable).--im=xim:Amiβ Use XIM with Ami on the system locale.--im=xim:kinput2:ja_JP.EUC-JPβ Use XIM with kinput2 onja_JP.EUC-JPlocale.--im=kbd:arabicβ Use keyboard mapping input method in Arabic.--im=kbd:hide:arabicβ Use keyboard mapping input method without showing the status screen.
The "kbd" input method converts US keyboard characters to other keyboard layouts. It is assumed to be used in environments with limited functionality, such as older OSs that support few keyboard layouts. Available values for "kbd" input method argument are "arabic", "hebrew", "de", "fr", "es", "pt", "jp106", "isciiassamese", "isciibengali", "isciigujarati", "isciihindi", "isciikannada", "isciimalayalam", "isciioriya", "isciipunjabi", "isciitamil" and "isciitelugu".
--im=uimβ Use uim with the default conversion engine.--im=uim:primeβ Use uim with prime conversion engine.--im=m17nlib:ruβ Use m17n library in Russian.--im=m17nlib:or:itransβ Use m17n library in Oriya using ITRANS method.--im=scimβ Use SCIM.--im=ibusβ Use IBus with the default conversion engine.--im=ibus:anthyβ Use IBus with anthy conversion engine.--im=fcitxβ Use Fcitx.--im=cannaβ Use Canna.--im=wnnβ Use Freewnn.--im=wnn:foo.barβ Use Freewnn with jserver atfoo.barhost. (JSERVERenvironmental variable is also available.)--im=skkβ Use SKK.--im=skk:dict=foo.bar:utf8,sskey=\x3bβ Use SKK with the use of utf8 skk server atfoo.barhost and semicolon key as sticky shift key. (SKK_DICTIONARYandSKK_STICKY_SHIFT_KEYenvironmental variable are also available.)--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=noneβ Don't use input method.
So many input methods, we're obsessed. π
-N,--name=nameβ Specify application name. (WM_CLASSproperty) The default is"mlterm". Name drop. π--role=roleβ Specify application role. (WM_WINDOW_ROLEproperty) The default is undefined. Mysterious. π-O,--sbmod=valueβ Specify the side to show a scrollbar.leftfor left side andrightfor right side.noneturns off a scrollbar.autohideshows a scrollbar only if mouse pointer is at the right edge of the screen. The default isleft. Pick your side. β¨-Q,--vcur(=bool)β Change interpretation of cursor keys to be natural in vertical writing mode. 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. Incjk-G/--verticalmode, 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 inmongolmode. The default istrue. Arrow keys go brrr. π₯-R,--fsrange=rangeβ Set acceptable range of font size. The format is"minsize-maxsize", whereminsizeandmaxsizeare font sizes in pixel (default1-10000). The GUI configurator and other means for setting fontsize should honor the range. No tiny fonts allowed, bestie.-S,--sbview=nameβ Select a type of scrollbar. See theSCROLLBARsection below for details. The default is"simple"which means the built-in simple scrollbar. Simple but iconic. π-T,--title=nameβ Specify a title for amltermwindow. The default is"mlterm". Main character energy. π--locktitle(=bool)β Lock the title for amltermwindow. If a title is locked thenOSC 0,1and2esc sequences to change it are ignored. The default isfalse. Don't touch my title, periodt.-U,--viaucs(=bool)β Force to convert a selection (i.e., copy-and-paste strings) whose type is notUTF8_STRINGto the currentmltermencoding via Unicode. See theSELECTIONsection below for detail. The default isfalse. Unicode said "I got you". π-V,--varwidth(=bool)β Use variable column width. You may want to use this option when you use proportional fonts. The default isfalse. Fancy fonts, fancy widths. π-W,--sep=characterlistβ Delimiter characters used for word selection, which are consulted when you double-clickedmlterm, to define what is a word. The default is" ,.:;/|@()[]{}"). Double-click to select words, yasss.-X,--alpha=valueβ Alpha in pseudo or true transparent. The default is255. Transparency is a vibe. β¨-Y,--decsp(=bool)β Use dynamically composed line drawing character set of DEC special. The default isfalse. This overridesDEC_SPECIALin the"font"configuration file, whileDEC_SPECIALin"aafont"(for Xft or cairo) is always overridden. Line drawing but make it dynamic. π¨-Z,--multicol(=bool)β Treat fullwidth characters (east Asian characters in most cases; which occupies two columns on the screen) as they occupy two logical columns. It is the de-facto standard way to handle fullwidth characters in east Asian terminal emulators (XFree86 xterm and kterm, cxterm, hanterm, rxvt, eterm) and other systems such as MS-DOS, PC-9801, and so on. In most fonts, the glyphs of fullwidth characters are designed assuming that their width are twice of normal characters and won't display correctly without this option. The default istrue. Fullwidth characters are that girl. π-0,--crbg=colorβ Specify background color for cursor (default is same to foreground color). Valid values forcolorare color names defined inrgb.txtand color rgb string whose format is"#RRGGBB","#RRGGBBAA","rgb:RR/GG/BB"or"rgba:RR/GG/BB/AA". Cursor drip, no cap. π§-1,--wscr=valueβ β¨ okay so this sets the actual window width as a percentage against the calculated value (font width Γ column number). It's giving βmy proportional font has some glyphs that are lowkey hugeβ β like, way bigger βmaximum widthβ than you expected. π In vertical mode, this option changes the actual window height instead. Default is100. π-3,--contrast=value)β π¨ Contrast of the background image in percent. See-poption for deets on the background image. Default is100. β¨-4,--gamma=value)β π Gamma of the background image in percent. See-poption for deets. Default is100. π¦-5,--big5bug(=bool)β π Enable a workaround for Big5 CTEXT bugs (which had been existed untilXFree86 4.1.0). This affects Big5 selections (i.e., copy-and-paste strings) inCOMPOUND_TEXTformat which mlterm sends. Default isfalse. π-6,--stbs(=bool)β π Don't exit backscroll mode when console applications output something. Default isfalse. periodt.-7,--bel=modeβ π Behavior whenBEL (0x07)is received.soundfor beep,visualfor blanking screen, andsound|visualfor the both. Default isnonewhich ignores BEL. π-8,--88591(=bool)β π€ UseISO8859-1fonts for US-ASCII part of various encodings. β¨-9,--crfg=colorβ π±οΈ Specify foreground color for cursor (default is same to background color). Valid values forcolorare color names defined inrgb.txtand color rgb string whose format is"#RRGGBB","#RRGGBBAA","rgb:RR/GG/BB"or"rgba:RR/GG/BB/AA". π-$,--mc=valueβ π±οΈ Doubleclick/tripleclick interval in millisecond. Default is250. β¨-%,--logseq(=bool)β π Enable logging. Contents of stream received by mlterm will be logged under~/.mlterm/. This option is mainly intended to be used for debugging purposes. Default isfalse. Note that%should be escaped to be supplied as a command line option on most shells. π-&,--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--geometryas well. Default isfalse. π-@,--screens=valueβ π₯οΈ Specify number of screens (sessions) to be used in start up. Default is1. Note that when one of these screens are closed, sessions which were connected to the screens do not immediately killed. See MULTIPLE PTY section for details. π«Ά-*,--type=valueβ π¨ Specify the rendering engine to be used to draw fonts.xcoreis conventional X11 core font mechanism.xftmeans Xft mechanism andcairomeans cairo mechanism. Default iscairo. On platforms except X11, it is alwaysxcore. (Ifmlterm -voutputs"no-xft"or"no-cairo", xft or cairo is unavailable.) π₯-#,--initstr=valueβ β¨ Specify a string to be automatically sent after initialization of session. The value normally will be parsed by a shell. See-eoption to execute other application at start-up time. π-a,--ac=valueβ π€ Specify number of columns to be occupied by a Unicode's"EastAsianAmbiguous"character. Default is1except"ja"locale where the default is2. Some of asian people may want to specify2. See Unicode Standard Annex (UAX)#11East Asian Width found at Unicode web site for details. π¦-b,--bg=colorβ π¨ Specify background color (defaultwhite). Valid values forcolorare color names defined inrgb.txtand color rgb string whose format is"#RRGGBB","#RRGGBBAA","rgb:RR/GG/BB"or"rgba:RR/GG/BB/AA". π-c,--cp932(=bool)β π―π΅ UseCP932mapping table to convert fromJIS X 0208to Unicode when displayingJIS X 0208characters using Unicode font in Xft or cairo 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 asEUC-JP,Shift_JIS,ISO-2022-JP, and so on) which containJIS X 0208as 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. β¨-eprogram [ arguments ... ] β π Invoke the command in the mlterm window. This option must be the last option on the command line. π-f,--fg=colorβ π¨ Foreground color (defaultblack). Valid values forcolorare color names defined inrgb.txtand color rgb string whose format is"#RRGGBB","#RRGGBBAA","rgb:RR/GG/BB"or"rgba:RR/GG/BB/AA". π€-g,--geometry=geometryβ π Specify size and position of the window; seeX(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. Default istrue. The name of the XIM server to be connected is specified by standard way (i.e.,XMODIFIERSenvironmental variable). πΈ-j,--daemon=valueβ π» Start as a daemon process. Note thatmlclientis executed if a daemon process has already started. Possible=valuesare"blend"and"genuine". See the chapter of DAEMON MODE for details. (Ifmlterm -voutputs"no-daemon", this option is unavailable.) π₯-k,--meta=modeβ π Behavior of META key.escfor sending ESC andnonefor ignoring META key. Default is8bitwhich sets the most significant bit. See-Koption also. π-l,--sl=valueβ π Specify number of lines of backlog or"unlimited". Over65535(0xffff)is regarded as"unlimited". Default is128. β¨-m,--comb(=bool)β π§© Enable combining characters by overstriking glyphs (recommended forTIS-620,TCVN5712, andUTF-8). Note that fonts which contain combining characters which extend backward cannot be used, since mlterm does combine characters by controlling the writing positions. This option is automatically turned on when using--dyncomboption. Default istrue. π-n,--noucsfont(=bool)β π€ Use non-Unicode fonts even when mlterm encoding isUTF-8. Useful when you don't haveISO10646-1fonts and you want to useUTF-8encoding. Default isfalse. π-o,--lsp(=value)β π Specify number of extra pixels between lines. Default is0. β¨-p,--pic=pathβ πΌοΈ Path for a wallpaper (background) image. Note that the wallpaper cannot be used with pseudo transparent background. (Ifmlterm -voutputs"no-image", this option is unavailable.) π-r,--fade=ratioβ π«οΈ Specify fading ratio for unfocused windows.100means no fading and0means darkest. Default is100. π-s,--mdi(=bool)β πͺ Whether to use multiple document interface. Default istrue. If you disable this option, scrollbar and screen separation are unavailable. π-t,--transbg(=bool)β π«§ Whether to enable pseudo transparent background. Note that pseudo transparent background cannot be used with wallpaper. Default isfalse. β¨-u,--onlyucsfont(=bool)β π€ Use Unicode fonts even when mlterm encoding is notUTF-8. Useful when you haveISO10646fonts but you don't have other fonts and want to use non-UTF-8encodings. Note that conversion to Unicode is lossy. i.e. if mlterm encoding is not a subset of Unicode likeISO-2022-JP-2orEUC-TW, characters which are regarded as a same character in Unicode will be displayed with the same glyph and cannot be distinguished. The default isfalse. π-v,--versionβ π¦ Show version information. β¨-w,--fontsize=valueβ π Specify font size in pixel. Default is16. π-x,--tw=valueβ π Specify tab width. Default is8. β¨-y,--term=stringβ π·οΈ Specify terminal type, i.e., the value ofTERMvariable. Default isxterm. Note thatmltermis deprecated. π-z,--largesmall=sizeβ π Specify the step of changing font size in pixel when you pushed"Font size larger"or"Font size smaller"button on GUI configurator. Default is1. π--aafont=(bool)β (Available formlterm-fb,mlterm-wlormlterm-sdl2) Whether to use~/.mlterm/*aafontconfigurations with the use of fontconfig. Default isfalseformlterm-fbandtrueformlterm-wlandmlterm-sdl2. (Ifmlterm -vdoesn't output"fontconfig", this option is unavailable.) π--ade=valueβ π€ Specify character encodings detected automatically. β¨--auto(=bool)β π€ Automatically detect appropriate character encoding from the encodings specified by--adeoption. Default isfalse. π--altbuf(=bool)β π₯οΈ Whether to enable alternate screen buffer. This option is similar to"titeInhibit"ofxterm. β¨--bc(=bool)β π‘ Whether to broadcast input or pasted characters to all ptys whose value of"ignore_broadcasted_chars"option isfalse. Default isfalse. π«Ά--bd=valueβ π¨ Specify the color to use to display bold characters. πͺ--bdfont(=bool)β π ±οΈ Use bold font for characters with the bold attribute. Default istrue. β¨--bimode=valueβ βοΈ Specify bidi mode. Valid values are:normal,leftandright. Default isnormal. (Ifmlterm -voutputs"no-bidi", this option is unavailable.) π¦--bisep=characterlistβ π€ Specify separator characters to render bidi text. (Ifmlterm -voutputs"no-bidi", this option is unavailable.) π--bl=valueβ picks the colour for blinking characters π like what colour do they flash in bestie--blink(=bool)β does the cursor blink or not? default isfalse(steady queen, no blinking) β¨--blpos=valueβ where the baseline sits, as an offset from the default baseline. default is0π--border=value[,value2]β the inner border width, default2π if you only hand itvalue, that sets both horizontal and vertical. hand itvalue2too andvalue= horizontal,value2= vertical. max is224.--boxdraw=valueβ force either a unicode font or the DEC Special font to draw box-drawing characters πunicodefor unicode font,decspfor DEC special font. default isnoconv, which just draws them as they are, no cap.--chsel(=bool)β (available on platforms except x11 and wayland) β do you get to change the selection right after selecting text with the mouse? default istrueπ±οΈ--ciphlist=valueβ the ciphers (comma separated list) for encrypting the ssh session π (ifmlterm -vdoesn't printssh, this option is unavailable, sorry bestie)--clp(=bool)β clip things so no dots leak outside the text drawing area. default isfalseβοΈ--ckm=encodingβ (available for mlterm-con) β the encoding of the console where mlterm-con does its thing. valid encodings are listed in the DESCRIPTION section earlier in this man page.AUTOmakes mlterm figure it out from the current locale (defaultAUTO) π--co=valueβ the colour for crossed-out characters--colors(=bool)β do we recognise ANSI color change escape sequences? default istrueπ¨--conpty(=bool)β (available for win32) β use ConPTY or not. default istrueπͺ--csc=valueβ (available for mlterm-con) β number of sixel graphics colors for the console mlterm-con lives in. valid values:16,256orfull. default is16πΌοΈ--csp=valueβ number of extra pixels between lines (negative values are allowed, yes really). if you use--V, this option gets ignored. default is0π--csz=valueβ (available for mlterm-con) β cell width and height in pixels that mlterm-con uses when it doesn't get them from anywhere else. default is8,16π--da1=valueβ the primary device attributes string. default is63;1;2;3;4;7;29π--da2=valueβ the secondary device attributes string. default is24;279;0π--depth=valueβ visual depth, one of8,16,24,32π if depth is32you can enable semi-transparency by givingopacityas the value of--alpha, or"rgba:RR/GG/BB/AA"as the value of--bg. so fancy.--deffont=valueβDEFAULTin~/.mlterm/*fontπ€--emoji=valueβ path to a directory of emoji image files, or an open type emoji font, to show unicode emoji characters. default is~/.mlterm/emojiπ₯°--emojifmt=valueβ filename format for the emoji image files in the directory from--emoji. the value is"[Format1](,[Format2])".[Format1]is for singleton emoji made of 1 code point,[Format2]is for emoji sequences made of 2 code points. omit[Format2]and[Format1 except file suffix]-[Format1]is used automatically for emoji sequences. emoji sequences of 3 or more code points aren't supported for now π default is%.4x.png,%.4x-%.4x.png.--exitbs(=bool)β do we exit backscroll mode when data arrives from the pty? default isfalseπ--fk(=bool)β send modified keys as a parameter for CSI u (same asformatOtherKeysin xterm). default isfalseβ¨οΈ--fullwidth=valueβ force full width no matter what EastAsianWidth.txt says πͺ
e.g.) --fullwidth=U+1234-5678,U+0123-4567
--halfwidth=valueβ force half width no matter what EastAsianWidth.txt says π€
e.g.) --halfwidth=U+1234-5678,U+0123-4567
--ibc(=bool)β ignore broadcasted characters or not. default isfalseπ’--iconpath=pathβ the file to use as a window icon πΌοΈ--it=valueβ the colour for italic characters--itfont(=bool)β use italic font for characters with the italic attribute. default istrueβ¨--keepalive=valueβ interval in seconds to send a keepalive message to the ssh server. default is0π (ifmlterm -vdoesn't printssh, this option is unavailable)--lborder=value[,value2]β inner border width of a layout manager. default is0π same deal as--border: onlyvaluesets both horizontal and vertical; withvalue2,value= horizontal andvalue2= vertical. max is224.--ldd(=bool)β embolden glyphs by drawing doubly at 1 pixel leftward instead of rightward. default isfalseποΈ--lew=valueβ time in msec to keep local echo mode. default is250β±οΈ--locale=valueβ the locale. default is""π--logmsg(=bool)β log mlterm's messages to~/.mlterm/msg.log. default istrueπ--loecho(=bool)β use local echo mode or not. default isfalseπ£οΈ--maxptys=valueβ max number of ptys (sessions) open at the same time. it should be a multiple of32. default is32π’
check the MULTIPLE PTY section for the deets, bestie
--metaprefix=valueβ prefix characters when pressing the meta key ifmod_meta_mode = esc. default is\x1bπΉ--multivram(=bool)β (available for mlterm-fb on NetBSD/x68k) β draw the wall picture on Text VRAM instead of Graphic VRAM to make scrolling faster. default istrueπ--norepkey=valueβ modifier keys that stop mouse reporting. valid values:shift,control,mod1,mod2,mod3,mod4,mod5,modandalt. default isshift,controlπ±οΈ--noul(=bool)β don't draw underline. default isfalseπ«--oft=valueβ features of glyph substitution. default isfliga,clig,dlig,hlig,rligπ€--osc52(=bool)β allow clipboard (selection) access via the OSC 52 sequence. default isfalseπ--ost=valueβ script of glyph substitution. default islatnβοΈ--otl(=bool)β show substituting glyphs in open type fonts using libotf or harfbuzz. don't specify--ctl=falseif you want substituting glyphs π--ctldisables automatic search of alternative glyphs in other fonts on cairo/xlib and freetype+fontconfig/{wayland|framebuffer}. default isfalse. (ifmlterm -vdoesn't printotl, this option is unavailable.)--parent=valueβ the parent Window ID. default is0π¨π§--point(=bool)β treat the value of-was point instead of pixel. heads up, this only works on xft, cairo or win32. default isfalseπ--pubkey=valueβ public key file for the ssh connection. default is~/.ssh/id_rsa.pub(%HOMEPATH%termid_rsa.pubin win32) π (ifmlterm -vdoesn't printssh, this option is unavailable)--privkey=valueβ private key file for the ssh connection. default is~/.ssh/id_rsa(%HOMEPATH%termid_rsain win32) π (ifmlterm -vdoesn't printssh, this option is unavailable)--rcn(=bool)β reconnect to the ssh server automatically if the disconnection was unexpected. default isfalseπ (ifmlterm -vdoesn't printssh, this option is unavailable)--recvdir=valueβ the directory to save files received via zmodem or scp. default is~/.mlterm/recvπ₯--restart=valueβ restart mlterm with all opened ptys except ssh ifSIGSEGV,SIGBUS,SIGFPEorSIGILLis received. default istrueβ»οΈ--rv=valueβ the colour for reverse characters--rz=valueβ how text is displayed on screen when it gets resized. valid values:none,scrollandwrap. default iswrapπ--scp(=bool)β allow OSC 5379 scp. default isfalseπ€ even ifallow_scp = false, you can still transfer a file to the"."directory (~/.mlterm/scp).--sdpr=valueβ device pixel ratio used to figure out the width of the "simple" scrollbar. default is1π--seqfmt=valueβ the format for logging vt100 sequences.rawlogs it as it is,ttyreclogs it in ttyrec format. default israwπ₯--serv=valueβ a host you want to connect to via ssh etc. this option is only enabled if mlterm is built with MinGW or the--enable-ssh2option π°οΈ
value format:
(<protocol>://)(<user>@)<server>(:<port>)(:<encoding>)
e.g.)
mlterm --serv ssh://user@host:22:eucjp
mlterm --serv mosh://user@host:22:utf8
--shortcut(=bool)β allow dynamic change of shortcut keys via the OSC 5379set_shortcutsequence. default isfalseβ‘--slp(=bool)β (available for Android or win32) β start mlterm with a local pty instead of an ssh connection. default isfalseπ±--trim(=bool)β trim new line characters at the end when pasting text. default isfalseβοΈ--ul=valueβ the colour for underlined characters--ulpos=valueβ position (offset from the baseline) of the underline. default is0π--ucsnoconv=valueβ use unicode fonts partially no matter what-nsays π
e.g.) --ucsnoconv=U+1234-5678,U+0123-4567
--urgent(=bool)β draw the user's attention when a bell sound happens in an unfocused window. default isfalseπ--uriword(=bool)β select a URI by double clicking it no matter what-Wsays. default isfalseπ--vtcolor=modeβ set vt color mode.256for pseudo color,highfor high color andtruefor true color. default ishighπ--winsize(=bool)β (win32 girlies only β¨) throws out an XTWINOPS sequence whenever the screen gets resizedβ¦ unless you've also passed--conpty, in which case she stays quiet. Default isfalse.--working-directory=valueβ the working directory. that's it, that's the whole thing. π--x11(=bool)β turns on x11 forwarding for your ssh connection. Default isfalse. (heads up bestie: ifmlterm -vdoesn't printssh, this option literally isn't available to you.)
π GUI CONFIGURATOR π
okay so this is the moment. press your control key and mouse button 3 at the same time and boom π₯ the GUI configurator pops up β that's mlconfig. she can change your encoding, foreground and background color, tab size, backlog size, font size, whether combining characters are a thing, and likeβ¦ a whole lot more.
The GUI configurator has six pages (Encoding, Font, Background, Color, Scrollbar, and Others), OK/Apply/Cancel buttons, and four special buttons. iconic lineup honestly.
fr fr note: this feature needs GTK+ 2.x or later. no GTK, no glow-up. π«Ά
β¨ Encoding page β¨
all the encoding-related configs live here. Note that configurations will be enabled when you push Apply button β so don't be out here changing stuff and wondering why nothing happened. apply first, bestie.
- Encoding β pick your encoding. (
-E,--km) - Auto detect β whether to sniff out the appropriate character encoding all by herself. (
--auto) - Encoding list β the character encodings she's allowed to auto-detect. (
--ade) - Input Method β which input method gets used. (
-M,--im)
XIM
- XIM Server β the name of the XIM server to connect to. You can type it from your keyboard, or pick one of the registered XIM servers. (no equivalent command option for this one!) see the XIM Configuration File section for how to register XIM servers.
- XIM locale β the name of the locale used to connect to the XIM server. Popular XIM servers usually have acceptable locales for connecting. If you pick a registered XIM server in Input Method, this gets set automatically. You can also just type the locale name in yourself. π
keyboard
- Option β the name of the key mapping table. When you're using ISCII encoding, Indic key mapping is used automatically. In other encodings, this gets auto-selected based on your current locale.
uim
- Option β the name of the conversion engine to use. If you pick
auto, the conversion engine gets auto-selected based on your current locale.
needs the uim library, just so you know. π¦
m17n library
- Option β the language and the input method to use. If you pick
auto, the language and input method get auto-selected based on your current locale.
needs the m17n library and m17n-db.
SCIM
- No option. she's low maintenance. π
iBus
- No option either. β¨
Fcitx
- No option. periodt.
Freewnn
- Option β the address of the host where
jserverworks.
Canna
- No option.
SKK
- Option β where the skk dictionary lives (server or file) plus the key used as the sticky shift key.
IIIMF
- Option β the language id (RFC1766) and the language engine to use. If you pick
auto, the language id/engine gets auto-selected based on your current locale.
needs the IIIMCF library. π
- Complex Text Layout β whether to enable complex text layouting on UTF8 encoding so indic scripts and RTL (right-to-left) languages like Arabic and Hebrew are supported. (
-C,--ctl) - Combining β whether to support combining characters by overstriking. (
-m,--comb) - Combining = 1 (or 0) logical column(s) β process combining characters as if they take up one column logically, while they take up zero columns on screen. (
-J,--dyncomb) - Process received strings via Unicode β when you paste strings into mlterm, they get converted into Unicode and then into mlterm encoding. (
-U,--viaucs) - OpenType Layout β whether to show substituting glyphs in open type fonts using
libotforharfbuzz. (--otl) - Ambiguouswidth = fullwidth (UTF8 only) β process Unicode characters with the EastAsianAmbiguous property as fullwidth. (
-a,--ac) - Fullwidth = 2 (or 1) logical column(s) β process CJK fullwidth characters as occupying two columns logically, since they occupy two columns on screen. (
-Z,--multicol)
πΈ Font page πΈ
everything about appearance (a.k.a. look&feel, a.k.a. the vibe) lives here.
- Font size β font size in pixels. (
-w,--fontsize) - Foreground color β the foreground color for letters. (
-f,--fg) - Xft β use xft as the rendering engine. (
-*,--type) - Cairo β use cairo as the rendering engine. (
-*,--type) - Anti Alias β use anti-alias fonts via Xft or cairo. (
-A,--aa) - Variable column width β use variable column width. (
-V,--varwidth) - Vertical mode β vertical writing mode. (
-G,--vertical) - Font name β specify the XLFD, Xft or cairo font for character sets. The
"Select"button pops a dialog so you can choose it. β¨ - Font policy β whether to use unicode fonts (or non-unicode fonts) all the time, no matter which encoding is selected. (
-u,--onlyucsfont) (-n,--noucsfont) - Unicode areas you won't convert to other charsets β the code point areas shown by unicode fonts regardless of the
-noption. (--ucsnoconv) - Box drawing β whether to use a unicode font or (a dec special font) all the time to draw box drawing characters. (
--boxdraw) - Line space β how many extra dots go between lines. (
-o,--lsp) - Letter space β how many extra dots go between characters. (
--csp) - Underline position β the position (offset from the baseline) of the underline. (
--ulpos) - Baseline position β the position (offset from the default baseline) of the baseline. (
--blpos) - Screen size ratio against font size β the actual screen width (screen height when you're in vertical mode). (
-1,--wscr)
π¦ Background page π¦
background configs, all cozy in here.
- Background color β the background color. (
-b,--bg) - Picture β the image file to use as your background image. (
-p,--pic) - Pseudo Transparent β pseudo transparent background. (
-t,--transbg) - Picture/Transparent Brightness, Contrast, Gamma and Alpha. β brightness, contrast, gamma, alpha of the background image. (
-H,--bright) (-3,--contrast) (-4,--gamma) (-X,--alpha) - Fade ratio on unfocus β the fading ratio when the window is unfocused. (
-r,--fade)
π¨ Color page π¨
color configs live here, obviously.
- Cursor color β the color used to show the cursor. (
-9,--crfg) (-0,--crbg) - Substituting color β the color to show instead of the bold, underlined, italic, blinking or crossed-out attribute. (
--bd) (--ul) (--it) (--bl) (--co) - VT basic 16 colors β customize the VT basic 16 text colors.
π Scrollbar page π
scrollbar configs, gathered right here.
- Position β the scrollbar position. (
-O,--sbmod) - View β the name of the scrollbar. (
-S,--sbview) - Foreground color β the foreground color of the scrollbar. (
-F,--sbfg) - Background color β the background color of the scrollbar. (
-B,--sbbg)
β Others page β
the misc page. the catch-all. the main character of "where did that setting go".
- Tab width β the column number of tab. (
-x,--tw) - Backlog size β number of lines of backlog. (
-l,--sl) - Columns/Rows β number of columns and rows of the screen. (
-g,--geometry) - Word separators β the delimiter characters used for word selection, consulted when you double-click mlterm, to define what counts as a word. (
-W,--sep) - Double click interval (msec) β doubleclick/tripleclick interval in milliseconds. (
-$,--mc) - Meta key outputs β the behavior of the META key. (
-k,--meta) - Bell mode β the behavior when mlterm receives a BEL (
0x07) code. (-7,--bel) - Save log β whether to log the sequence received from pty into
~/.mlterm/[pty].login raw or ttyrec format. (--logseq) (--seqfmt) - Local echo β whether to use local echo mode. (
--loecho) - Blink cursor β whether to blink the cursor. (
--blink) - Don't scroll automatically in scrolling back. β don't exit backscroll mode when console applications output something. (
-6,--stbs) - Select URI by double click β select a URI by double clicking it, regardless of the
-Woption. (--uriword) - Send keys to all windows β whether to broadcast input or pasted characters to all ptys whose
"ignore_broadcasted_chars"option value is false. (--bc) - Trim trailing CR/LF in pasting β whether to trim new line characters at the end when pasting text. (
--trim)
π Buttons π
these ones are independent from the OK/Apply/Cancel buttons. they do their own thing.
- Save&Exit / Apply&Exit / Apply / Cancel β the Save&Exit button applies the modified configuration to the current mlterm session, saves it to the
"~/.mlterm/main"configuration file, and quits the GUI Configurator. The Apply button just applies the modified configuration to the current mlterm session. that's the difference, bestie, don't mix them up. π - Font size (Larger and Smaller) β change the font size.
- Full reset β reset the internal status.
- Snapshot β snapshot the screen and save it to
~/.mlterm/*.snp. - SCP β transfer a file via SCP.
- PTY List β okay this one's a little lore drop. one process of mlterm may have multiple sessions and screens. the sessions may or may not have a corresponding screen, i.e. the number of sessions can be more than the number of screens. you can end up there by closing a part of multiple screens from the
-@/--screensoption. in that case, the screen-less session can be assigned to one of the screens by choosing the session (pty) from this list and pushing the"select"button. π«Ά
π CONFIGURABLE MENU π
Okay bestie, this one's cute. Hit a control key plus mouse button 1 and boom β mlterm pops open its configurable menu displayer, aka mlterm-menu. It shows you a menu with stuff like "Larger Font" or "UTF-8 encoding", super handy, super quick. β¨
There's a default menu definition already supplied (you're welcome), but you can freely define your own menu items by writing a menu configuration file. Full deets are in the Menu Configuration File section, go look.
Heads up: this feature needs GTK+ 2.x or later. No GTK, no menu, no vibe. π
π MULTIPLE XIM π
mlterm can use multiple XIM (X Input Method) servers, not just one. The current XIM is specified by the GUI configurator. Using this, you can input multiple complex languages β like Japanese and Korean at the same time. Iconic.
You can also specify the locale used for communication with XIM for each XIM individually. In the GUI configurator you get to either:
- pick one of the registered pairs of XIM + its locale, or
- just type in your own favorite XIM and its locale. π«Ά
Important: the locale for XIM is only used for talking to the XIM. It is not related to the current mlterm locale. You only need to properly configure the XIM locale when your XIM actually has a preference about the locale of its XIM client (which, in this case, is mlterm). mlterm automatically converts the inputted string into the proper encoding, so you genuinely do not have to care about it. π
And of course, the initial XIM is chosen via standard configuration β i.e. the XMODIFIERS environmental variable. See X(7) for the details on XIM and the XMODIFIERS variable.
π DAEMON MODE π
Invoke mlterm with the -j / --daemon command line option and it starts listening on a unix domain socket, accepting requests from mlclient. It's giving butler energy.
Now, the exit behavior depends on which flavor you're running:
- With
blend, mlterm will exit when the final terminal window is closed. Bye. π - With
genuine, mlterm will disconnect from X server windows and keeps on working. In that latter case, it's possible to stop and restart an X server and revive the lasting sessions on mlterm. That's main character energy fr fr. π
π¦ SCROLLBAR π¦
mlterm supports a scrollbar API so that users can develop their own scrollbar libraries with whatever arbitrary look and feel they want. Make it cute, make it ugly, make it yours. β¨
To use a scrollbar library: drop it in the specified directory (that directory is determined during the compilation process), then invoke mlterm with the -s -S name option.
The scrollbar libraries named sample, sample3, athena, motif, mozmodern, and next are supplied. Pick your fighter. π
β ANTI-ALIAS β
mlterm can use True Type fonts via the -A option, through the FreeType library β but only when it has been compiled with the anti-alias option. Compile-time decisions, we love those.
Note this feature needs XFree86 4.0.2 or above and FreeType 2.0.2 or above.
πΈ WALLPAPER πΈ
Yes bestie, backgrounds. mlterm can use a background image (as known as wallpaper) by using the -p / --pic option. And you can also specify the brightness of the image with -H / --bright. Aesthetic customization, obsessed. π
Note this feature needs gdk-pixbuf.
π MULTIPLE PTY π
This is one of the most unique features of mlterm, no cap. The number of windows can be specified using the -P option. Typing control + F1 opens another window which shares the same process. The maximum number of windows can be specified using the --maxptys option. So many windows, so little chaos. πͺβ¨
π§ BACKSCROLL MODE π§
mlterm enters into backscroll mode by typing Shift + up or Shift + PageUp. Once you're in the mode, here's your key lineup:
jorDownβ Scroll down one line.korUpβ Scroll up one line.uorPageUpβ Scroll up one page.dorPageDownβ Scroll down one page.- keys defined in key configuration file β Shortcut keys work the same way as in normal mode. (
INSERT_SELECTION,INSERT_CLIPBOARD,RESETandCOPY_MODEexit from the backscroll mode.) - other keys β Exit from the backscroll mode.
π SELECTION π
Selection is a mechanism used for copy-and-paste in the X Window System. So yeah, this section is all about so-called copy-and-paste. Let's get into it.
There are many encodings in the world, bestie. Copy-and-paste needs a sender and a receiver, and each of them can be using one of various encodings. So mlterm is designed to be able to receive characters from as many various encodings as possible. Overachiever behavior, honestly. π
There are two internationalized types of selection. One is COMPOUND_TEXT, the another is UTF8_STRING.
COMPOUND_TEXTis ISO2022-based and can distinguish which character set a character belongs to. However, the character setsCOMPOUND_TEXTsupports are limited toISO8859-*and East Asian character sets.UTF8_STRINGis Unicode-based and can express all characters from the 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). Also note thatUTF8_STRINGis rather new and can be used only with XFree86.
So even though the receiver of copy-and-paste can request its preferable type of selection, the sender may not support the requested type. Which means mlterm has to be able to process both COMPOUND_TEXT and UTF8_STRING. No skipping. π€
On the other hand, the encodings supported by mlterm (see the 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 the popular encodings such as
Shift_JIS,Big5,GBK,GB18030,Johab, and so on belong 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. Here's the whole chart, exactly as it is:
-------------------------------------------------------
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
-------------------------------------------------------
And the footnotes, because you know they matter:
*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 the -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.
π COPY MODE π
mlterm enters into copy mode by typing Shift + Control + Return. Once you're in, you can move around the screen including the backlog, select a region, and copy it β all with these keys:
jorDownβ Scroll down one line.korUpβ Scroll up one line.lorRightβ Move right.horLeftβ Move left.uorPageUpβ Scroll up one page.dorPageDownβ Scroll down one page./β Input search string. (forward)?β Input search string. (backward)Control+gβ Cancel search string.SpaceorReturnβ Start or finish selection.Mod+SpaceorMod+Returnβ Start rectangle selection.Escapeorqβ Exit from the copy mode.- Any other keys β Stop selection.
π«Ά CONFIGURATION π«Ά
On start up, mlterm loads configuration files named main, font, vfont, tfont, aafont, vaafont, taafont, color, key, termcap, and xim. The menu configuration file is loaded by the configurable menu displayer (mlterm-menu) instead β see the CONFIGURABLE MENU section for detail.
Where do these live?
- Configuration files for one user go in the
~/.mlterm/directory. - The 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 the 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 Xft or cairo fonts.vaafontβ Configurations for Xft or cairo fonts of variable column width.taafontβ Configurations for Xft or cairo 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. Simple as that. β¨
Note that the configuration files are changed since version 1.9.44. Don't say we didn't warn you.
πΈ 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.
auto_detect_encodings=value(--ade) β Specify character encodings detected automatically.allow_osc52=bool(--osc52) β Allow access to clipboard(selection) by OSC 52 sequence.allow_scp=bool(--scp) β Allow OSC 5379 scp.allow_change_shortcut=bool (--shortcut)β allow dynamic change of shortcut keys by OSC 5379set_shortcutsequence. yes bestie, hot-swap your shortcuts on the fly πalpha=name (-X, --alpha)β alpha in pseudo or true transparent. β¨app_name=name (-N, --name)β application name (theWM_CLASSproperty). πauto_restart=bool (--restart)β restart mlterm with all opened ptys except ssh ifSIGSEGV,SIGBUS,SIGFPEorSIGILLis received. if you want to get core image, specify"false". πbaseline_offset=value (--blpos)β specify the position of baseline. the default is0. πΈbel_mode=mode (-7, --bel)β behavior whenBEL(0x07) is received. πbd_color=value (--bd)β specify the color to use to display bold characters. πbl_color=value (--bl)β specify the color to use to display blinking characters. β¨bg_color=color (-b, --bg)β background color. π¨bidi_mode=mode (--bimode)β specify bidi mode. πbidi_separators=characterlist (--bisep)β specify separator characters (\x00-\xFFis also available) to render bidi text. π¦big5_buggy=bool (-5, --big5bug)β support Big5 CTEXT bugs (which exist in XFree86 4.1.0 or before). πblink_cursor=bool (--blink)β blink cursor. πbox_drawing_font=value (--boxdraw)β use either unicode font or DEC Special font forcibly to draw box-drawing characters. π¦borderless=bool (-&, --borderless)β don't draw window decorations. π«brightness=value (-H, --brightness)β specify the amount of darkening or lightening the background image. πbroadcast=bool (-H, --bc)β whether to broadcast input or pasted characters to all ptys whose value of"ignore_broadcasted_chars"option is false. π’change_selection_immediately=bool (--chsel)β (Available for platforms except x11 and wayland) whether to enable to change selection just after selecting text by mouse. π±οΈcipher_list=value (--ciphlist)β specify ciphers (comma separated list) for encrypting the ssh session. πco_color=value (--co)β specify the color to use to display crossed-out characters. βcol_size_of_width_a=value (-a, --ac)β number of columns of Unicode characters withEastAsianAmbiguousproperty. πcompose_dec_special_font=bool (-Y, --decsp)β compose line drawing character set. ποΈconsole_encoding=encoding (--ckm)β (Available for mlterm-con) specify encoding of the console where mlterm-con works. π₯οΈconsole_sixel_colors=value (--csc)β (Available for mlterm-con) specify the number of sixel graphics colors of the console where mlterm-con works. π¨contrast=value (-3, --contrast)β contrast of background image in percent. βοΈcursor_bg_color=color (-0, --crbg)β specify background color for cursor. πͺcursor_fg_color=color (-9, --crfg)β specify foreground color for cursor. π©daemon_mode=mode (-j, --daemon)β start as a daemon process. π»default_cell_size=value (--csz)β (Available for mlterm-con) specify cell width and height in pixel which mlterm-con uses if it doesn't get them. πdefault_server=value (--serv)β specify a host you want to connect via ssh etc. πdepth=value (--depth)β specify visual depth. π§display=value (-d, --display)β specify X server to connect. π₯οΈemoji_path=value (--emoji)β specify path of a directory where emoji image files exist or a open type emoji font to show unicode emoji characters. πemoji_file_format=value (--emojifmt)β specify filename format of emoji image files in the directory specified by--emojioption. πΌοΈencoding=encoding (-E, --km)β specify encoding. π€exit_backscroll_by_pty=bool (--exitbs)β exit backscroll mode on receiving data from pty. πͺformat_other_keys=bool (--fk)β send modified keys as parameter forCSI u. (Equivalent to"formatOtherKeys"of xterm) β¨οΈfade_ratio=ratio (-r, --fade_ratio)β specify fading ratio when window is unfocused. π«οΈfb_resolution=ratioβ (Available for mlterm-fb on NetBSD/x68k or OpenBSD) specify the screen resolution and depth. (e.g.768x512x4) πΌοΈ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; seeX(7). πhide_underline=bool (--noul)β don't draw underline. π«icon_name=name (-I, --icon)β icon name. π·οΈicon_path=pathβ path for the image file to be used as window icon. πΌοΈignore_broadcasted_chars=bool (--ibc)β whether to ignore broadcasted characters. πinner_border=value[,value2] (--border)β specify inner border width. πΌοΈinput_method= input method : [ arguments ... ] (-M, --im)β specify input method. β¨οΈiso88591_font_for_usascii=bool (-8, --88591)β use ISO8859-1 fonts for US-ASCII part of various encodings. π€it_color=value (--it)β specify the color to use to display italic characters. β¨layout_inner_border=value[,value2] (--lborder)β specify inner border width of a layout manager. πΌοΈleftward_double_drawing=bool (--ldd)β embold glyphs by drawing doubly at 1 pixel leftward instead of rightward. β¬ οΈletter_space=value (--csp)β specify number of extra dots between letters. (ignored if you specify--Voption.) if you use multiple fonts whose widths are different, adjust this option. π€line_space=value (-o, --lsp)β specify number of extra dots between lines. (Negative value is available.) if you use multiple fonts whose heights are different, adjust this option. πlocale=value (--locale)β specify locale. πlocal_echo_wait=value (--lew)β specify time (msec) to keep local echo mode. β³logging_msg=bool (--logmsg)β enable logging messages of mlterm to~/.mlterm/msg[pid].log. πlogging_vt_seq=bool (--logseq)β enable logging vt100 sequences to~/.mlterm/[device].log. πlogsize=value (-l, --sl)β specify number of lines of backlog or"unlimited". πmax_ptys=value (--maxptys)β specify maximum number of ptys (sessions) to be opened simultaneously. π₯οΈmeta_prefix=value (--metaprefix)β specify prefix characters in pressing meta key ifmod_meta_mode = esc. β¨οΈmod_keys_to_stop_mouse_report=mode (--norepkey)β specify modifier keys to stop mouse reporting. π±οΈmod_meta_mode=mode (-k, --meta)β behavior ofMETAkey. β¨οΈmod_meta_key=value (-K, --metakey)β specify a key to be regarded asMETA. β¨οΈ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. π€output_xtwinops_in_resizing=bool (--winsize)β outputXTWINOPSsequence when the screen is resized unless--conptyoption is specified. π₯οΈot_features=value (--gft)β specify features of glyph substitution. π€ot_features=value (--gst)β specify script of glyph substitution. π€parent_window=value (--parent)β specify parent Window ID. πͺprimary_da=value (--da1)β specify primary device attributes string. πreceive_directory=value (--recvdir)β specify the directory to save received files via zmodem or scp. πreceive_string_via_ucs=bool (-U, --viaucs)β if the received selection (i.e., copy-and-paste strings) or strings received from XIM is notUTF8_STRINGtype, 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. seeSELECTIONsection below for detail. πregard_uri_as_word=bool (--uriword)β select URI by double clicking it regardless of--Woption. πresize_mode=value (--rz)β specify the way to display text on the screen when it is resized. π₯οΈrv_color=value (--rv)β specify the color to use to display reverse characters. πsb_bg_color=color (-B, --sbbg)β background color for scrollbar. π¨sb_fg_color=color (-F, --sbfg)β foreground color for scrollbar. π¨screen_width_ratio=value (-1, --wscr)β specify actual screen width (screen height in vertical mode). πscrollbar_mode=mode (-O, --sbmod)β specify scrollbar position. πscrollbar_view_name=name (-S, --sbview)β specify name of scrollbar. πsecondary_da=value (--da2)β specify secondary device attributes string. πseparate_wall_picture=bool (--multivram)β (Available for mlterm-fb on NetBSD/x68k) draw the wall picture on Text VRAM instead of Graphic VRAM to improve the performance of scrolling. πΌοΈsimple_scrollbar_dpr=value (--sdpr)β specify device pixel ratio to determine the width of"simple"scrollbar. πssh_auto_reconnect=bool (--rcn)β reconnect to ssh server automatically in unexpected disconnection. πssh_keepalive_interval=value (--keepalive)β specify interval seconds to send keepalive message to ssh server. β±οΈssh_public_key=value (--pubkey)β specify public key file for ssh connection. πssh_private_key=value (--privkey)β specify private key file for ssh connection. πssh_x11_forwarding=bool (--x11)β enable x11 forwarding for ssh connection. π₯οΈstart_with_local_pty (--slp)β (Available for Android or win32) start mlterm with local pty instead of ssh connection. π±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. π·οΈtrim_trailing_newline_in_pasting=bool (--trim)β trim new line characters at the end in pasting text. βοΈtype_engine=value (-*, --type)β rendering engine for drawing fonts. π¨ul_color=value (--ul)β specify the color to use to display underlined characters. ποΈunderline_offset=value (--ulpos)β specify the position (offset from the baseline) of underline. the default is0. πunicode_full_width_areas=value (--fullwidth)β force full width regardless ofEastAsianWidth.txt. βοΈunicode_half_width_areas=value (--halfwidth)β force half width regardless ofEastAsianWidth.txt. βοΈunicode_noconv_areas=value,--ucsnoconvβ use unicode fonts partially, regardless of what-nsays. bestie said "some of it, not all of it" πuse_aafont=bool,--aafontβ use your~/.mlterm/*aafontconfigs, with fontconfig doing the heavy lifting. (only available for mlterm-fb, mlterm-wl or mlterm-sdl2)use_auto_detect=bool,--autoβ it just knows the right character encoding, sniffed out from whatever you put in theauto_detect_encodingsoption. main character energy fr π¦use_alt_buffer=bool,--altbufβ use the alternate screen buffer.use_ansi_colors=bool,--colorsβ recognize ANSI color change escape sequences. the colors!! πuse_anti_alias=bool,-A,--aaβ use an anti alias font. smooth like butter β¨use_bold_font=bool,--bdfontβ actually use a bold font for characters that have the bold attribute. as they deserve πuse_clipping=bool,--clpβ use clipping so you don't get stray dots leaking outside the text drawing area. contained. tidy. slay.use_combining=bool,-m,--combβ enable combining characters.use_conpty=bool,--conptyβ use ConPTY. (available for win32)use_cp932_ucs_for_xft=bool,-c,--cp932β use CP932 - UCS mapping when displaying JISX0208 through Xft or cairo.use_ctl=bool,-C,--ctlβ enable complex text layouting on UTF8 encoding. it's giving β¨typographyβ¨use_dynamic_comb=bool,-J,--dyncombβ enable dynamic character combining.use_italic_font=bool,--itfontβ use an italic font for characters with the italic attribute. leaning, aesthetically πuse_local_echo=bool,--loechoβ use local echo mode.use_locked_title=bool,--locktitleβ lock the title of a mlterm window. once it's locked, those OSC 0, 1 and 2 esc sequences that try to change it are just ignored. not today π€use_login_shell=bool,-L,--lsβ whether to use a login shell or not.use_multi_column_char=bool,-Z,--multicolβ process full width characters.use_ot_layout=bool,--otlβ whether to show substituting glyphs in open type fonts, using libotf or harfbuzz.use_point_size=bool,--pointβ treat the value of the-woption as point instead of pixel.use_mdi=bool,-s,--mdiβ use multiple document interface.use_transbg=bool,-t,--transbgβ use pseudo transparent background. see-through, iconic π«Άuse_urgent_bell=bool,--urgentβ when a bell sound happens in a window that isn't focused, it draws your attention to it. bestie is tapping the glass π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).vt_color_mode=mode,--vtcolorβ set vt color mode.vertical_mode=value,-G,--verticalβ use vertical writing.wall_picture=path,-p,--picβ path for the wallpaper image. decorate the girlies πΈword_separators=characterlist,-W,--sepβ the delimiter characters used for word selection (\xNNis also available here, fancy).working_directory=value,--working-directoryβ working directory.static_backscroll_mode=bool,-6,--stbsβ don't exit backscroll mode when console applications output something. you stay where you are, periodt.vt_seq_format=value,--seqfmtβ specify the format of logging vt100 sequence.wm_role=value,--roleβ specify the application role. (that's theWM_WINDOW_ROLEproperty, iykyk)
π Font Configuration Files π
The font configuration files font, vfont, tfont, aafont, vaafont, and taafont have the following keys. no cap, this is the whole roster:
DEFAULT=font
DEC_SPECIAL=font
ISO8859_n=font
TIS620=font
ISCII_HINDI=font
ISCII_MALAYALAM=font
ISCII_ASSAMESE=font
ISCII_BENGALI=font
ISCII_GUJARATI=font
ISCII_KANNADA=font
ISCII_MALAYALAM=font
ISCII_ORIYA=font
ISCII_PUNJABI=font
ISCII_TAMIL=font
ISCII_TELUGU=font
VISCII=font
KOI8_R=font
KOI8_U=font
TCVN5712=font
JISX0201_ROMAN=font
JISX0201_KATA=font
JISX0208_1978=font
JISX0208_1983=font
JISX0208_1990=font
JISX0213_2000_1=font
JISX0213_2000_2=font
KSX1001_1997=font
UHC=font (not used)
JOHAB=font (not used)
GB2312_80=font
GBK=font
BIG5=font
HKSCS=font
CNS11643_1992_n=font
ISO10646_UCS4_1=font
ISO10646_UCS4_1_FULLWIDTH=font
U+XXXX-XXXX=font
okay so that's you specifying fonts for the corresponding character sets. BUT β and this is the important bit β the format is different between the font, vfont tfont files and the aafont, vaafont taafont files. two whole different vibes.
In font, vfont, tfont files, font is written in the "NAME:PERCENT" format, where "SIZE" is the font size in pixel and "NAME" is an XLFD or alias names of X fonts. if "NAME" contains %d, that gets swapped out for an appropriate font size number. the ":PERCENT" gets multiplied by the font size and decides the character width of a font. and if you just... omit ":PERCENT"? then max font width is used for it. easy π§
In aafont, vaafont, taafont files, font is written in the "FAMILY WEIGHT SLANT SIZE:PERCENT" format. again, ":PERCENT" gets multiplied by font size and decides character width of a font. and if ":PERCENT" is omitted here, it's the 'M' width that's used for it instead.
little life hack: themlfccommand generates~/.mlterm/aafontautomatically. let it cook π
charset_BOLD=fontβ specify boldface fonts.charset_ITALIC=fontβ specify italic fonts.charset_BOLD_ITALIC=fontβ specify bold-italic fonts.U+XXXX-XXXX=fontβ specify which fonts to use for unicode ranges exceptU+00-7f. (those little guys are handled elsewhere, bestie)
π Color Configuration File π
The color configuration file color has the following key.
COLORNAME=RGBβ assign a concrete color for the name COLORNAME. the default colors used by mlterm areblack,red,green,yellow,blue,magenta,cyan, andwhite, and all of them can be overridden right here. π
for highlighted colors, a name with the hl_ prefix gets searched automatically. like, for bold red characters, hl_red is searched instead of red. the glow-up is built in β¨
17 - 230 and 232 - 255 in 256 colors can be also overridden.
the format of RGB is either "RRRR-GGGG-BBBB" (where RRRR, GGGG, and BBBB are hexadecimal value from 0 to ffff), "#RRGGBB", "#RRGGBBAA", "rgb:RR/GG/BB" or "rgba:RR/GG/BB/AA" (where RR, GG, and BB are hexadecimal value from 00 to ff).
heads up bestie: if mlterm fails to parse an entry, the color gets regarded as black. no error, no drama, just... black. π
πΈ XIM Configuration File πΈ
The X Input Methods configuration file xim has the following format
XIM=locale
where XIM is the XIM name and locale is the 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 to create the list of XIMs in the GUI configurator. and okay so here's the thing β a XIM that isn't listed in this file can't be selected from the list, but it can still be selected by specifying its name directly. loophole queen π
π 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, Mod1, Mod2, Mod3, Mod4, Mod5, Mod and Alt. and yes you can stack multiple "MASK+"s, go off π
you can search spellings of KEY by using the xev(1) command, or by searching keysym macros from /usr/X11R6/include/X11/keysymdefs.h (or the equivalent file in your X11 include directory) and just omitting the XK_ prefix. double quotation marks are not needed. you can also specify Button1, Button2, Button3, Button4 or Button5 as KEY.
FEATURE is one of IM_HOTKEY, EXT_KBD, OPEN_SCREEN, NEW_PTY, OPEN_PTY, NEXT_PTY, PREV_PTY, VSPLIT_SCREEN, HSPLIT_SCREEN, CLOSE_SCREEN, NEXT_SCREEN, PREV_SCREEN, HEXPAND_SCREEN, VEXPAND_SCREEN, PAGE_UP, SCROLL_UP, SCROLL_UP_TO_MARK, SCROLL_DOWN_TO_MARK, SET_MARK, INSERT_SELECTION, INSERT_CLIPBOARD, COPY_CLIPBOARD, RESET, COPY_MODE, "STRING", or "proto:STRING".
IM_HOTKEYβ switch conversion mode of m17n library and kdb input methods. (defaultUNUSED)EXT_KBDβ activate or deactivate kbd input method. (this feature was obsoleted byIM_HOTKEY)OPEN_SCREENβ open new pty in new screen (defaultCtrl+F1).NEW_PTYβ same asOPEN_SCREEN(obsoleted).OPEN_PTYβ open new pty in current screen (defaultCtrl+F2).NEXT_PTYβ switch to a next free pty (defaultCtrl+F3).PREV_PTYβ switch to a previous free pty (defaultCtrl+F4).HSPLIT_SCREENβ open new pty in horizontally split screen (defaultShift+F1). (ifmlterm -voutputs"no-split", this shortcut key is unavailable.)VSPLIT_SCREENβ open new pty in vertically split screen (defaultShift+F2). (ifmlterm -voutputs"no-split", this shortcut key is unavailable.)NEXT_SCREENβ switch to a next unfocused screen (defaultShift+F3).PREV_SCREENβ switch to a previous unfocused screen (defaultShift+F4).CLOSE_SCREENβ close current screen (defaultShift+F5).HEXPAND_SCREENβ expand current screen horizontally (defaultShift+F6). (ifmlterm -voutputs"no-split", this shortcut key is unavailable.)VEXPAND_SCREENβ expand current screen vertically (defaultShift+F7). (ifmlterm -voutputs"no-split", this shortcut key is unavailable.)PAGE_UPβ start backscroll mode and scroll up one page (defaultShift+Prior).SCROLL_UPβ start backscroll mode and scroll up by one line (defaultShift+Up).SCROLL_UP_TO_MARKβ start backscroll mode and scroll up to the next marked line (defaultControl+Shift+Up).SCROLL_DOWN_TO_MARKβ scroll down to the next marked line (defaultControl+Shift+Down).SET_MARKβ set mark to the current line (defaultControl+Shift+m).INSERT_SELECTIONβ insert selection (defaultShift+Insert).INSERT_CLIPBOARDβ insert clipboard (defaultShift+Control+v).COPY_CLIPBOARDβ copy selected text to clipboard (defaultShift+Control+c).RESETβ reset terminal (defaultPause).COPY_MODEβ enter copy mode, which enables you to select and copy a region by keyboard (defaultControl+Shift+Return)."STRING"β the specified string is issued when the KEY key is pressed. double quotation marks are required around the STRING. and okay, huge note bestie: you cannot control the status of mlterm by sending terminal control codes such as"\x1b]5379;encoding=utf8\x0a"because that code sequence will get caught by your shell (or something running on it) first. π to deliver control sequences to mlterm directly, use"proto:STRING"instead."proto:STRING"β the string you write here gets treated as mlterm's own original control sequence π the full menu of them lives indoc/en/PROTOCOL. So like,"proto:encoding=utf8"= swap the current character encoding to UTF-8, easy. And if you want the STRING to actually show up on screen when you hit your shortcut key, just slap(echo)at the front of it β so"proto:(echo)encoding=utf8"printsConfig: encoding=utf8. cute, right? β¨"exesel:STRING"β here STRING is a command to run, with your selected text handed over as arguments π«Ά. Any%sin the command string gets replaced by the selected strings. Example:"exesel:mlclient -e w3m"means runmlclient -e w3m [selected text]. selection go brrr π"menu:STRING"β STRING here is a configuration program that gets executed. For example,"menu:mlterm-menu"= runningmlterm-menu. slay β¨
π Terminal Behavior Configuration File π
Okay bestie, this config file decides how mlterm behaves, and those behaviors have to line up with whatever your terminfo and termcap say. In principle, you should NOT edit this file. Instead you pick the right value for the TERM variable (i.e. a proper terminfo/termcap definition) that matches what mlterm does. And like β since mlterm can cosplay as a xterm/kterm to some degree, TERM=kterm or TERM=xterm should give you acceptable results. ngl that's the move π
But sometimes editing your terminfo/termcap just isn't it. Maybe your software doesn't understand terminfo or termcap at all π, or your terminfo/termcap entry is shared between several terminal emulators and changing it would break the other ones. In those cases you can configure mlterm so it plays nice with the terminfo/termcap definitions already on your system. This is also super useful for OS distributors (like Debian π) with strict policies about how terminal emulators behave.
You can define mlterm's behavior per value of the TERM variable, so you don't have to edit the termcap file every single time you log into another system and use a different TERM value via the -y option π. You can also set the default behavior for when TERM doesn't match any of the TERM names you listed in the termcap file.
The grammar here is giving termcap energy β same vibes. First you write one or more name(s) of TERM, joined together with the vertical line character '|'. The special name '*' is for default. Then comes a colon ':', and keys go after it, separated by colons. Configurations for other TERM values start on a new line. periodt π
Followings are available keys for each TERM value:
kD=sequenceβ the sequence to output when the Delete key is pushed (default\E[3~).kb=sequenceβ the sequence to output when the BackSpace key is pushed (default^H).kh=sequenceβ the sequence to output when the HOME key is pushed in application cursor key mode. (default\EOH).@7=sequenceβ the sequence to output when the END key is pushed in application cursor key mode. (default\EOF).k1=sequenceβ the sequence to output when the F1 key is pushed (default\EOP).k2=sequenceβ the sequence to output when the F2 key is pushed (default\EOQ).k3=sequenceβ the sequence to output when the F3 key is pushed (default\EOR).k4=sequenceβ the sequence to output when the F4 key is pushed (default\EOS).k5=sequenceβ the sequence to output when the F5 key is pushed (default\E[15~).utβ this one decides how the screen gets erased by control codes π. Ifutis written in the termcap file, charcells get painted with the current background color when erased; otherwise they get painted with the initial background color. Default is non-utbehavior.
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 config file defines the menu shown by the configurable menu displayer mlterm-menu. See the CONFIGURABLE MENU section for detail. iykyk π
β¨ SEE ALSO β¨
Manual pages of mlclient(1), locale(7), charsets(7), UTF-8(7), and X(7). yes bestie, go read them all πΈ
PROTOCOL (https://github.com/arakiken/mlterm/blob/master/doc/en/PROTOCOL) β all about mlterm's original control escape sequences, the ones that let you change configurations dynamically π₯
e.g.)
echo -en "\x1b]5379;encoding=eucjp\x07"
README.android (https://github.com/arakiken/mlterm/blob/master/doc/en/README.android) β for mlterm on Android π±
README.beos (https://github.com/arakiken/mlterm/blob/master/doc/en/README.beos) β for mlterm on BeOS (Haiku).
README.brltty (https://github.com/arakiken/mlterm/blob/master/doc/en/README.brltty) β for accessibility with the use of brlapi (https://brl.thefreecat.org). π«Ά
README.cocoa (https://github.com/arakiken/mlterm/blob/master/doc/en/README.cocoa) β for mlterm on MacOSX/Cocoa π
README.cocoatouch (https://github.com/arakiken/mlterm/blob/master/doc/en/README.cocoatouch) β for mlterm on iOS/Cocoa Touch.
README.console (https://github.com/arakiken/mlterm/blob/master/doc/en/README.console) β for mlterm on Console.
README.fb (https://github.com/arakiken/mlterm/blob/master/doc/en/README.fb) β for mlterm on framebuffer.
README.indic (https://github.com/arakiken/mlterm/blob/master/doc/en/README.indic) β for indic scripts β¨
README.sb (https://github.com/arakiken/mlterm/blob/master/doc/en/README.sb) β for development of scrollbar library.
README.sdl2 (https://github.com/arakiken/mlterm/blob/master/doc/en/README.sdl2) β for mlterm on SDL2.
README.ssh (https://github.com/arakiken/mlterm/blob/master/doc/en/README.ssh) β for ssh connection with the use of libssh2 (https://www.libssh2.org). π
README.wayland (https://github.com/arakiken/mlterm/blob/master/doc/en/README.wayland) β for mlterm on Wayland π
README.win32 (https://github.com/arakiken/mlterm/blob/master/doc/en/README.win32) β for mlterm on Win32 GDI.
Mapping tables between Unicode and local character sets (and encodings) live at the Unicode Consortium web site (https://www.unicode.org/Public/MAPPINGS/). Note that mapping tables for East Asian character sets and encodings were moved to the OBSOLETE/EASTASIA directory of the site since August 2001. π
For BIG5 and BIG5HKSCS encodings, the mapping tables for Unicode are 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 (https://www.unicode.org). π
π FILES π
"main", "font", "vfont", "tfont", "aafont", "vaafont", "taafont", "color", "key", "termcap", "xim", and "menu"
- Configuration files. that's the whole list bestie, collect them all π
πΈ CONTACT πΈ
Subscribe to mlterm-dev-en ML (https://lists.sourceforge.net/lists/listinfo/mlterm-dev-en). π«Ά
Attach ~/.mlterm/msg.log, backtrace log and related files to your report if at all possible. fr fr, it helps so much π
okay that's the whole page, we did it π
this gorgeousness is from the 2025-03-30 version of MLTERM(1) β go forth and terminal, bestie, you ate πβ¨
π¦ where this page comes from
- ubuntu resolute: mlterm 3.9.4-3
- ubuntu resolute: mlterm-tiny 3.9.4-3
- ubuntu stonking: mlterm 3.9.4-3
- ubuntu stonking: mlterm-tiny 3.9.4-3
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms