comment -*- mode: text; tab-width:2; indent-tabs-mode:nil; coding:euc-jp -*-

* mltermとは
  Multi Lingual TERMinal の略です。

* 主な機能
  o Complex Text Layouting
    BiDi やインド諸語を表示することができます。

    Bidi レンダリングには、Fribidi 0.9.x 以上(?) が必要です。
    (see doc/en/README.bidi)

    インド諸語の表示については、次の2つの方法があります。
    1) libind (mltermのソースアーカイブに同梱) と ISCII フォントを使う方法
    2) harfbuzz と OpenType Layout フォントを使う方法
    (see doc/en/README.indic)

  o アンチエイリアス
    X 上で、フォントのアンチエイリアス表示をサポートしています。
    これには、X の Xrender extension に対応した Xft or cairo を利用しています。

    なお、Xft、cairo、通常の X フォントのどれを使うかは、動的に切替え可能です。

    XFree86 4.0.2 以上
    freetype 2.0.2 以上
    が必要です。

  o 壁紙、背景透過
    壁紙を貼ったり背景を擬似的に透過させることができます。

    壁紙を貼るには、gdk-pixbuf (GTK+ 2.x 以上) 又は libpng (1.6 以上) が必要です。

  o マルチPTY
    単一プロセス中から、--maxptys オプションで指定した上限数(デフォルトでは 32)
    までの pty セッションを立ち上げることができます。
    Ctrl+F2(デフォルト)で、新しい pty セッションを立ち上げることができます。
    -@ オプションで、mlterm 起動時に立ち上げる ウィンドウの数を指定できます。
    Ctrl+F1(デフォルト)で、新しいウィンドウを立ち上げることができます。
    Ctrl+F3(NEXT)、Ctrl+F4(PREV)で、ウィンドウ上で表示する pty セッションを切り
    替えることができます。
    Ctrl+左ボタン(デフォルト)では、mlterm-menu が起動し、現在 background にある
    pty に切り替えることができます。
    (see doc/ja/README.pty)

  o 画面分割
    一つのウィンドウを分割し、複数の pty セッションを表示することができます。
    Shift+F1(デフォルト)で横方向に、Shift+F2(デフォルト)で縦方向に分割できます。
    Shift+F3(NEXT)、Shift+F4(PREV)で、分割された画面を移動できます。
    Shift+F5(デフォルト)で分割を解除できます。

  o マルチXIM
    複数の XIM を動的に切替えて使用することができます。
    たとえば、端末側が UTF8 エンコーディングで、kinput2 と Ami を切替えながら、
    日本語ハングル混在の文章を入力できます。
    (see doc/ja/README.xim)

  o インプットメソッド プラグイン
    uim、m17n library、scim、ibus、fcitx、canna、wnn、skk 及び iiimf に対応して
    います。
    プラグインとして使用時だけロードされます。マルチXIMと同様に動的変更が可能で
    端末のエンコーディングに依存しません。

  o プロポーショナルフォント
    プロポーショナルフォントも使用できます。
    この場合、-V オプションで、コラム幅を可変にするか、固定にするかを指定するこ
    とができます。
    プロポーショナルフォントをコラム幅固定で使用する場合、一文字ずつ描画して無理
    矢理隙間を埋めますので、描画パフォーマンスが低下します。

  o 縦書き表示
    右から左、左から右の縦書き表示をサポートしています。
    通常日本語の縦書き表示をするためには、-G cjk オプションを指定してください。
    (see doc/ja/README.tate)

  o mlterm configuration protocol
    設定変更のための専用シーケンスを定義しています。
    これにより、設定を動的に変更することができます。
    (see doc/en/PROTOCOL, doc/ja/README.confapp)

  o mlterm server
    mlterm は daemon process として動作することができます。
    その場合、X なしでの起動や、複数のディスプレイ接続が可能です。
    mlterm server が起動していれば、mlclient をフロントエンドとして使用すること
    で、端末ウィンドウを開けます。
    (see doc/ja/README.server)

  o ssh2 client
    ssh2 client として直接 ssh2 server に接続することができます。
    libssh2 (https://www.libssh2.org) が必要となります。
    なお、共通鍵暗号方式として camellia を利用する場合や、Agent forwarding 機能
    が必要な場合は、
    https://github.com/arakiken/libssh2/archive/camellia-agentfwd.zip
    をインストールしてください。
    (例 mlterm(mlclient) --serv ssh://user@host:22)
    (see doc/ja/README.ssh, doc/en/README.transfer)

  o auto-restart
    バグ等により mlterm が実行不能となった場合でも、(できるだけ)その中で動いてい
    るコンソールアプリケーションを引き継いだ mlterm を自動的に再起動し、コンソー
    ルアプリケーションを保護します。
    (see "auto_restart" option)

  o local echo mode
    キー入力に対する処理結果がコンソールアプリケーションから返ってくる前に、
    前もって画面に表示することにより、体感的な応答速度を向上します。
    (see "use_local_echo" option)

  o ReGIS 及び Sixel Graphics
    ReGIS の一部機能及び Sixel Graphics に対応しています。
    ReGIS については、SDL, SDL_ttf 及び fontconfig が必要となります。

  o vte compatible library
    mlterm の機能(一部制限あり)を、(ほぼ) vte 互換の API で wrap したライブラリ
    (libvte.so.9, libvte2_90.so.9, libvte-2.91.so.0) を提供しています。
    システムにインストールされている libvte.so.9 等を置きかえることにより、
    gnome-terminal や roxterm 等の中で、mlterm を動作させることができます。
    GTK+ (2.x 以上) が必要となります。
    (see gtk/README)

  o libvterm compatible library
    mlterm の機能(一部制限あり)を、libvterm 互換の API (ただし、今のところ、
    neovim の terminal が動作するレベル) で wrap したライブラリ
    (libvterm.so.0) を提供しています。
    システムにインストールされている libvterm.so.0 を置きかえることにより、
    neovim の terminal の中で、mlterm を動作させることができます。
    (see libvterm/README)


* 対応プラットフォーム
  o Linux, *BSD (X11, Framebuffer, Wayland, Console or SDL2)
  o Solaris (X11 or Console)
  o MacOSX 10.6 (X11, Cocoa, Console or SDL2)
  o Windows XP or later
  o Cygwin (X11, Win32GDI, Console or SDL2)
  o MSYS2 (Win32GDI or Console)
  o Android 3.x or later.
  o Java (SWT)
  o Haiku (Compatible with BeOS R5)

  詳細は、doc/ja 内の README.fb, README.win32, Usage.win32 又は doc/en 内の
  README.android, README.cocoa, README.console, README.wayland, README.sdl2,
  README.beos を参照してください。

* コンパイル方法
  $ ./configure
  $ make

  o 必要なもの
    多言語処理機能の多くは、自前でもってますので、OS のサポートがなくても、ほと
    んどの機能は使えます。
    (たとえば、libc に ja_JP.UTF-8 ローケールがなくても、ja_JP.eucJP ローケール
    があれば、UTF-8 エンコーディングの端末に日本語入力できる、など)

    上記「主な機能」のとおり、外部ライブラリに依存する機能もあります。

    外部ライブラリの有無は、configure スクリプトによりチェックします。

  o configure オプション
    --prefix
      インストールプレフィクス

    --disable-dl-table
      文字変換テーブルや文字プロパティテーブルを動的にロードせず、
      libmef に静的にリンクします。
      
    --without-map-table
      文字変換テーブルを組込みません。
      この場合、UNICODE <=> 各種文字集合の変換等を扱えなくなります。

    --without-prop-table
      Unicode の文字プロパティテーブルを組み込みません。
      この場合、結合文字等を扱えなくなります。

    --with-iconv
      文字変換に iconv を使用します。
      (--with-iconv を指定した場合、--disable-dl-table がデフォルトとなります。)

    --with-gui=(xlib|win32|fb|quartz|console|wayland|sdl2)
      GUI ライブラリとして xlib / win32 / fb / quartz / console / wayland / sdl2
      / beos のいずれを使用するか指定します。
      (「対応プラットフォーム」の項目参照)

    --with-imagelib=(gdk-pixbuf)
      mlterm 本体に gdk-pixbuf をリンクし、壁紙やアイコンの画像を扱えるようにし
      ます。
      なお、このオプションを指定しなくても、mlimgloader (--with-tools オプション
      参照) をインストールしていれば、mlimgloader を使用して画像表示を行います
      (mlterm 本体に gdk-pixbuf をリンクしなくても、画像表示が可能です。)。

    --with-libltdl
      モジュールの動的ローディングに libltdl を使用します。

    --with-type-engines=(xcore|xft|cairo)
      テキストレンダリングエンジンを指定します。

    --disable-anti-alias
      xlib版では、--with-type-engines=xcoreと同じ。
      (--enable-anti-alias オプションは --with-type-engines=xcore,xft,cairo と同じ)
      なお、xlib版で、--with-type-engines オプションを指定した場合、このオプショ
      ンは無視されます。

      framebuffer、wayland 又は sdl2 版では、freetype を利用した True Type フォ
      ントのサポートを無効にします。

    --enable-fontconfig
      framebuffer、wayland 又は sdl2 版で、フォントの検索に fontconfig を無効に
      します。
      (~/.mlterm/*aafont の設定を使用します。)

    --disable-dl-type
      type engine モジュールの動的ローディングを無効にし、mlterm 本体にリンクする
      ようにします。

    --disable-fribidi
      Fribidi を用いた Bidi レンダリングを無効にします。
      (see doc/en/README.bidi)

    --disable-ind
      インド諸語の表示を無効にします。
      (see doc/en/README.indic)

    --disable-dl-ctl
      BiDi 及び インド諸語を表示するためのモジュールの動的ローディングを無効にし、
      mlterm 本体にリンクするようにします。

    --disable-ssh2
      libssh2 (https://www.libssh2.org) を用いて ssh サーバに接続する機能を無効に
      します。
      なお、共通鍵暗号方式として camellia を使用したい場合や SSH agent forwarding
      を行いたい場合は、
      https://github.com/arakiken/libssh2/archive/camellia-agentfwd.zip
      をダウンロードしてインストールしてください。

    --with-mosh=(moshのソースコードがあるディレクトリ)
      mosh (https://www.mosh.org) を用いて mosh サーバに接続する機能を有効にします。
      なお、あらかじめ mosh の ./configure スクリプトを実行しておいてください。
      また、このオプションは、libssh2 が有効な場合のみ、利用できます。

      libptymosh をバイナリ形式で配布しないでください。

    --without-pthread
      ssh サーバとの (doc/en/PROTOCOL の scp コマンドによる) secure copy において
      pthread を使用しません。

    --enable-debug
      デバッグバージョンをビルドします。

    --enable-optimize-redrawing
      行の再描画処理を高速化します。(但し、w3m-img で副作用が出ます)

    --with-scrollbars
      scrollbar/ 又は contrib/scrollbar/ 以下の指定されたスクロールバーをビルド
      します。

    --with-tools
      tool/ 又は contrib/tool/ 以下の指定されたツールをビルドします。
      なお、mlimgloader は、--disable-image 又は --with-imagelib オプションを指
      定しない限り、自動的にビルドされます。

    --disable-use-tools
      tool/ 又は contrib/tool/ 以下のツールを一切ビルドせず、これらのツールを呼
      び出す機能を mlterm 本体から削除します。

    --disable-dnd
      XDnD プロトコルによるドラッグアンドドロップサポートを無効にします。

    --disable-kbd
      kbd インプットメソッド (US キーボードで入力された文字をアラビア語/ヘブライ
      語/インド諸語などのキーボードレイアウトの文字に変換) を無効にします。

    --disable-uim
      uim を無効にします。libuim が必要です。

    --disable-m17nlib
      m17n library が提供するインプットメソッドを無効にします。
      m17n-lib と m17n-db が必要です。

    --disable-scim
      SCIM (Smart Common Input Method platform) を無効にします。
      libscim が必要です。

    --disable-ibus
      iBUS (Intelligent Input Bus) を無効にします。
      libibus が必要です。

    --disable-fcitx
      Fcitx を無効にします。
      Fcitx を有効にする場合、fcitx-gclient (Fcitx5GClient) が必要です。

    --disable-canna
      Canna を無効にします。

    --disable-wnn
      Freewnn を無効にします。

    --disable-skk
      SKK を無効にします。

    --disable-iiimf
      IIIMF (Internet/Intranet Input Method Framework) を無効にします。
      有効にする場合、libiiimcf が必要です。

    --enable-pty-helper
      gnome-pty-helper をサポートします。(BSD style pty のシステムでは無効です。)
      なお、gnome-pty-helper は ${libexecdir}/ ディレクトリに配置する必要があり
      ます。

    --with-gtk=(2.0|3.0|4.0)
      使用する GTK+ のバージョンを指定します。
      (4.0 が使えるのは mlconfig だけです。libvte compatible library 及び
       mlterm-menu は、これまで同様、2.0 又は 3.0 が必要です。)

    --enable-vt52
      VT52 エミュレーション機能をサポートします。

    --disable-image
      壁紙、アイコン、擬似透過及び Sixel graphics といった画像処理関連の機能を全
      て無効にします。

    --disable-otl
      OpenType フォントの置換グリフ等を使った表示を無効にします。
      有効にする場合、harfbuzz が必要です(libotf も使えますが、推奨しません)。

    --enable-brlapi
      brlapi ライブラリを使って brltty サーバに接続します。(Experimental)
      (see doc/en/README.brltty)

    --enable-utmp-suid
      utmp を直接読み書きできるようにするために、mlterm のインストール時のパーミ
      ッションとして、root への setuid 又は utmp への setgid を設定します。
      デフォルトでは、無効になっています。

    --with-utmp=(utempter|sysv|login|bsd|none)
      utmp を読み書きする方法を指定します。

    --disable-daemon
      daemon mode を無効にします。

    --disable-split
      画面分割を無効にします。
      (MacOSX/Cocoa や HaikuOS では、無効にできません。)

    --disable-zmodem
      zmodem によるファイル転送を無効にします。

    --disable-compact-truecolor
      CSI 38 ... m 等により指定された 24 ビットカラーを表示する際に、240個のパレ
      ットを使い回す方法を無効にします。
      このオプションを無効にすると、パレットの使い回しをしない代わりに、
      vt_char_t のサイズが 8 バイトから 12 バイトに増えます。

    --disable-shared
      共有ライブラリを構築しません。

    --disable-static
      静的ライブラリを構築しません。

    --with-libtool=[path]
      libtool を自動生成せず、システムのlibtoolを使うよう指定します。

* 使い方
  $ mlterm

  うまく動作しない場合は、~/.mlterm/msg.log にエラーメッセージが出ていないか確認
  してください。

* 設定
  o 設定ファイル
    ${SYSCONFDIR}/mlterm 以下、および、~/.mlterm 以下におかれます。
    前者が先に読まれ、次にそれを後者で上書きできます。

    main     ... 引数オプションで上書き可能な、プリミティブな設定
    font     ... フォント設定
    vfont    ... 可変長コラム幅使用時のフォント設定
    aafont   ... Xft or cairo用フォント設定
    vaafont  ... Xft or cairo用かつ可変長コラム幅使用時のフォント設定
    tfont    ... 縦用フォント指定
    taafont  ... Xft or cairo用かつ縦用フォント指定
    color    ... 色定義
    key      ... ショートカットキー定義
    termcap  ... termcapもどき
    xim      ... XIM ローケール指定

    o main
      KEY=VALUE

      行頭の # で、その行をコメントアウトできます。

      ** で囲まれている方のがデフォルト値です。
      (#) のついているオプションは、設定画面からの動的変更が可能です。

      -- Encoding 関連 --
      o auto_detect_encodings (#)
        文字コードを自動判定する場合の候補とするエンコーディング
        (カンマで区切って複数指定可)

      o bidi_mode  (*normal*/left/right)
        left 又は right を指定すると、全ての行を左寄せ又は右寄せで表示

      o bidi_separators (#)
        BiDi レンダリングを行う範囲を区切る文字を指定
        ('\x'から始まる16進数の使用も可。指定できる文字は \x00-\xff)

      o big5_buggy  (true/*false*)
        Big5 CTEXT のバグ (XFree86 4.1.0 以前) に対応

      o col_size_of_width_a  (1/2) (#)
        UNICODE の EastAsianWidth.txt の A プロパティのコラム数
        デフォルト値は、ja_XX.XX locale 環境では 2 , その他の環境では 1 です。

      o console_encoding (*auto*) (mlterm-con 用)
        mlterm-con が動作するコンソールのエンコーディング

      o encoding  (*auto*) (#)
        エンコーディングの指定

        サポートしているエンコーディングは、以下の通りです。

        ISO-8859-[1-11], ISO-8859-[13-16], TIS-620(same as ISO-8859-11),
        KOI8-[RUT], ISCII_(ASSAMESE|BENGALI|GUJARATI|HINDI|KANNADA|MALAYALAM|
        ORIYA|PUNJABI|TAMIL|TELUGU), VISCII, TCVN5712, GEORGIAN_PS,
        CP125[0-8], CP874, 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, UTF-8, AUTO

        '-' , '_' および、大文字小文字は無視されます。

        (注)
        o pty から流れてくる文字列のエンコーディングを自動認識することはできませ
          ん。
        o TIS620,TCVN5712,JISX0213 の合成用ダイアクリティカルマーク、および
          UNICODE の結合クラス結合文字については、結合文字を動的合成できますの
          で、それらを使う場合は、-m オプションをつけて、結合文字サポートを有
          効にしてください。
        o KOI8_T, GEORGIAN_PS, CP125[0-8], CP874 については、専用のフォントは存
          在せず、Unicode 経由でしか利用できないため、必ず -u オプションを併用し
          てください。
        o AUTO を指定した場合、nl_langinfo -> LC_ALL -> LC_CTYPE -> LANGを順番に
          調べ、適当なエンコーディングを選択します。
          ENCODING 指定を行なわなかった場合も同様です。

      o input_method (#)
        使用するインプットメソッド
        フォーマットは以下のようになります。

        [input method];[option1]:[option2]

        [input method] にインプットメソッド(xim/uim/m17nlib/scim/kbd/skk/wnn/
        canna/iiimf)を指定し、必要であれば ":" で区切ってオプションを列挙します。

        各インプットメソッドのオプションは以下の通りです。

        xim の場合: xim:[xim server]:[locale]
        [xim server] で XIM サーバー名(kinput2, Ami, xcin など)を指定します。
        指定しなかった場合は、環境変数 XMODIFIERS で指定した XIM サーバーが
        使用されます。[locale] には XIM サーバーのローケールを指定します。指定し
        なかった場合はシステムのローケールが使用されます。use_xim オプションで
        xim を無効にした場合、xim を指定しても無視されます。

        uim の場合:
        uim:[conversion engine]
        [conversion engine] に変換エンジン(anthy, prime, hangul2など)を指定しま
        す。指定しなかった場合は uim のデフォルト変換エンジンが使用されます。

        m17nlib の場合:
        m17nlib:[language id]:[input method]
        [language id] には ISO-639 に従って言語(ar, zh, ja など)を指定します。
        指定しなかった場合はシステムのローケールから取得した言語が使われます
        [input_method] で使用するインプットメソッド(anthy, py など)を指定します
        指定されなかった場合は [language id] のデフォルトインプットメソッドが使
        用されます。m17nlib を指定した時は key ファイルで IM_HOTKEY を指定して
        ください。

        scim の場合:
        scim (オプション無し)

        ibus の場合：
        ibus:[conversion engine]
        [conversion engine] に変換エンジン(anthy, prime, hangul2など)を指定しま
        す。指定しなかった場合は ibus のデフォルト変換エンジンが使用されます。
        (ibusを使用する際の注意点)
        ibus の preferences 画面からキーボードショートカットを設定する場合、モデ
        ィファイアの Release にはチェックを付けないでください。

        fcitx の場合:
        fcitx (オプション無し)

        wnn の場合:
        wnn:[server]
        [server] には、接続するかな漢字変換サーバを指定します。
        なお、JSERVER 環境変数により指定することも可能です。
        また、WNNENVRC 環境変数により wnnenvrc ファイルの場所を指定することができます。

        canna の場合:
        canna (オプション無し)

        skk の場合:
        skk:dict=[dictionary](:utf8),sskey=[sticky shift key]
        [dictionary] に、接続する辞書サーバ(skkserv)の "ホスト名:ポート番号" 又
        は、辞書ファイルのパスを指定します。辞書が UTF-8 の場合には、末尾に
        :utf8 を付けてください。
        SKK_DICTIONARY 環境変数により指定することも可能です。
        指定しない場合は、localhost の辞書サーバに接続します。
        なお、上記とは別に、~/.mlterm/skk-jisyo をローカルの辞書として使用します。

        [sticky shift key] には、sticky shift key として使用するキーを指定してく
        ださい。印刷可能な文字のキーを指定する場合はその文字(\x3bのように16進数
        で指定することも可)を、それ以外の場合は <X11/keysymdef.h> に定義されたシ
        ンボル(XK_を除く)を指定してください。
        SKK_STICKY_SHIFT_KEY 環境変数により指定することも可能です。

        kbd の場合:
        kbd(:hide):[lang]
        US キーボードで入力された文字を、指定したキーボードレイアウトの文字に変
        換します。
        :hide を指定した場合は、ステータスウィンドウを表示しません。
        [lang]には、次のいずれかを指定することができます。
        arabic, hebrew, de, fr, es, pt, jp106, isciixxx
        なお、[lang]を省略した場合、ISCII モードの時は ISCII 配列、それ以外では
        ローケールにより判定します。
        kbd を指定した時は key ファイルで IM_HOTKEY を指定してください。

        iiimf の場合:
        iiimf:[language id]:[language engine]
        [language id] には RFC1766 に従って言語(ar, zh_CN, ja など)を指定しま
        す。指定されなかった場合はシステムのローケールから取得した言語が使われ
        ます。[language engine] では使用する LE (CannaLE, newpy など)を指定しま
        す。指定されなかった場合は [language id] のデフォルト LE が使用されま
        す。
        なお、HTT_SERVER_ADDRESS 環境変数により、接続するサーバのアドレス(Unix
        Domain Socket の場合はファイルパス)を指定できます。
        また、HTT_SHOW_STATUS_WINDOW=trueを指定することにより、ステータス表示用の
        ウィンドウを表示します。
        HTT_AUX_BASE_DIR 環境変数により、aux モジュールのあるパスを指定するこ
        とができます(デフォルトは/usr/lib/iiim/le)。

      o receive_string_via_ucs  (true/*false*) (#)
        copy and paste で受け取った XCOMPOUND TEXT や、XIM から入力された文字列
        を、一旦 UNICODE を経由してから端末エンコーディングに変換する

      o use_auto_detect (#)
        文字コードを自動的に判定

        あらかじめ、auto_detect_encodings オプションで候補とするエンコーディング
        を指定しておく必要があります。

      o use_combining  (*true*/false) (#)
        結合文字を処理(直前の基底文字に結合)

        なお、use_dynamic_comb が true の場合は、自動的に false になります。

      o use_ctl  (*true*/false) (#)
        BiDi 及び インド諸語 のレンダリングに対応
        (必要ない場合は false に設定することを推奨します。)

      o use_dynamic_comb  (true/*false*) (#)
        結合文字について、1カラム分占有するが、直前の基底文字に結合して表示

        端末アプリケーションが結合文字をサポートしていない場合でも、結合文字を正
        しく表示できるようにします。

      o use_multi_column_char  (*true*/false)  (#)
        1 文字で複数コラムを占有する文字に対応

        いわゆる全角文字を処理するかどうかを指定します。 w3m-m17n を縦表示で使
        用する場合には、このオプションを無効にしてください。

      o use_vertical_cursor (*true*/false)
        縦書き用カーソル

        十字カーソルキーを、cjk 縦表示の場合であれば、
        右 => 下
        左 => 上
        上 => 右
        下 => 左
        に割当て直します。

      o use_xim  (*true*/false)
        XIM を使う

        これを false にすると、XIM は一切使用できなくなります。

      o vertical_mode  (*none*/cjk/mongol) (#)
        縦表示のスタイルを指定

        cjk は、右から左の縦表示、mongol は、左から右の縦表示です。

      -- Font 関連 --
      o baseline_offset (*0*) (#)
        ベースラインの相対位置

      o box_drawing_font (unicode/decsp/*noconv*) (#)
        罫線文字について、常に Unicode フォント又は DEC Special フォントで表示す
        る。

      o compose_dec_special_font (true/*false*)
        DEC special (特殊文字を除く) のグリフを動的に合成

        このオプションが指定された場合、"font" ファイルで DEC_SPECIAL として
        指定したフォントは無視されます。

      o emoji_file_format (%.4x.png,%.4x-%.4x.png)
        emoji_path オプションで指定したディレクトリ内の画像ファイルのファイル名の
        フォーマットを指定します。

        また、以下のように、カンマに続けて、2つのコードポイントからなる emoji
        sequence のファイル名のフォーマットも指定することができます。
        [Format1],[Format2]

        [Format2] の指定を省略する場合、
        [Format1のうち拡張子を除く部分]-[Format1]
        を2つのコードポイントからなる emoji sequence のファイル名とみなします。

        ファイル名のうちコードポイントを示す部分は、printf のフォーマット指定子を
        使用してください。

      o emoji_path (~/.mlterm/emoji)
        絵文字表示に使用する画像のあるディレクトリ又は絵文字フォント
        (NotoColorEmoji.ttfなど)のパスを指定します。

      o fg_color  (*black*) (#)
        端末画面の前景色

        fg_color,bg_colorに指定できる値は、rgb.txt で定義された色名、#RRGGBB、
        #RRGGBBAA、rgb:RR/GG/BB 又は rgba:RR/GG/BB/AA 形式の色指定です。

        e.g.)
        fg_color = blue
        fg_color = #aabbcc

      o fontsize  (*16*) (#)
        フォントサイズ
        なお、例えば、(tv)font 設定ファイルで、
        DEFAULT=-kochi-mincho-medium-*--14-*-
        のように、特定のサイズ(上記例では 14 pixel)のフォントをデフォルトとして
        指定した場合には、fontsize オプションを変更しても、フォントサイズは(上記
        例では 14 pixel のまま)変わらなくなるため、注意してください。

      o font_size_range  (*1-10000*)
        変更可能なフォントサイズの範囲

        フォーマットは以下のとおり。
        [min]-[max]

        e.g.)
        font_size_range = 10-24
        10 から 24 pixel まで変更できるようになります。

      o hide_underline (true/*false*)
        アンダーラインを描画しません。

      o iso88591_font_for_usascii (true/*false*)
        US_ASCII の表示には、必ず ISO8859-1 フォントを使用

      o leftward_double_drawing (true/*false*)
        medium フォントを重ね打ちする場合の開始位置を 1 pixel 左(デフォルトは右)
        からとします。

      o letter_space (*0*) (#)
        字間の広さ
        幅が不揃いの複数のフォントを使用する場合は、このオプションで字間を適宜
        調整してください。
        なお、-V オプションと同時に指定すると無効になります。
        また、type_engine=xcore で letter_space に 1 以上の値を指定すると、
        描画パフォーマンスが大幅に低下します。
        マイナスの値を指定すると字間が狭くなります。

      o line_space  (*0*) (#)
        行間の広さ
        高さが不揃いの複数のフォントを使用する場合は、このオプションで行間を適宜
        調整してください。
        マイナスの値を指定すると行間が狭くなります。

      o not_use_unicode_font  (true/*false*) (#)
        UNICODE を適当な文字集合にmapして、UNICODE フォントを使わずに表示
        なお、文字幅及び結合文字の属性は、UNICODE の属性を使用します。
        また、できるだけ LANG 環境変数に設定された言語の文字集合への変換を優先し
        ますが、LANG=C の場合などは、直近で変換に成功した文字集合への変換を優先
        するため、複数の文字集合に登録されている文字については、期待した文字集合
        に変換されない場合があります。

      o only_use_unicode_font (true/*false*) (#)
        すべての文字を UNICODE フォントだけを使って表示
        なお、文字幅の属性は、UNICODE の属性は使いません。

      o ot_script (*latn*) (#)
        グリフ置換を行う場合の script を指定します。

      o ot_features (*liga,clig,dlig,hlig,rlig*) (#)
        グリフ置換を行う場合の feature を指定します。

      o screen_width_ratio (*100*) (#)
        実スクリーンの横幅(百分率)
        縦書きモードの場合は縦幅

      o step_in_changing_font_size (*1*)
        larger,smaller ボタンでのフォントサイズの変化量(*1*)

      o type_engine (xcore/xft/*cairo*) (#)
        xcore, xft 又は cairoのいずれによりフォントを描画するかを指定
        なお、use_anti_alias = true にした場合は、自動的に type_engine = cairo と
        なります。

      o underline_offset (*0*) (#)
        アンダーラインの位置(フォントのベースラインからの相対位置)

      o unicode_full_width_areas (#)
        EastAsianWidth.txt に関わらず、このオプションで指定した範囲の文字は、常
        に全角幅とします。
        範囲の指定方法は、unicode_noconv_areas オプション参照

      o unicode_half_width_areas (#)
        EastAsianWidth.txt に関わらず、このオプションで指定した範囲の文字は、常
        に半角幅とします。
        範囲の指定方法は、unicode_noconv_areas オプション参照

      o unicode_noconv_areas (#)
        not_use_unicode_font を true とした場合でも、このオプションで指定した範
        囲の文字は、常に UNICODE のまま表示
        範囲の指定方法は次のとおり。

        e.g.) U+1234-5678,U+0123-4567

      o use_aafont (true/false) (mlterm-fb, mlterm-wl or mlterm-sdl2 用)
        mlterm-fb、mlterm-wl 又は mlterm-sdl2 で truetype フォントを使用する場合
        に、~/mlterm/*font-fb でなく ~/.mlterm/*aafont の設定を読み込み、
        fontconfig を使ってフォントを探す。
        mlterm-fb のデフォルト値は false、mlterm-wl 及び mlterm-sdl2 のデフォル
        ト値は true

      o use_anti_alias (true/false/*default*) (#)
        アンチエイリアスフォントを強制的に使用
        なお、このオプションを指定しなかった場合又は use_anti_alias = default
        にした場合、アンチエイリアスするかどうかは、システムの設定によります。

      o use_bold_font (*true*/false)
        ボールドフォントを使用

      o use_clipping (true/*false*)
        テキスト描画エリア外にゴミが残らないように、クリッピングする。

      o use_cp932_ucs_for_xft (*true*/false)
        Xft 又は cairo 使用時、JISX0208 の Unicode 変換に CP932 の変換テーブル
        を使う

        多くの Unicode フォント(東風、Dynalab フォント)は、CP932 の変換テーブ
        ルを元に、JISX0208 用のフォントを格納しています。「〜」などが表示され
        ないという場合は、このオプションを有効にしてください。

      o use_italic_font (*true*/false)
        イタリックフォントを使用

      o use_ot_layout (true/*false*) (#)
        Open Type フォントの置換グリフ等を使ってテキストを表示します。
        use_ctl オプションを有効にしておく必要があります。
        なお、use_ot_layout=true の場合、置換グリフ等を使ってテキストを表示して
        いる行においては、cairo on xlib 及び freetype+fontconfig on
        framebuffer/wayland/sdl2 における代替グリフ検索による自動フォント補完機
        能は無効となります。

      o use_point_size (true/*false*)
        fontsizeオプションで指定した数値をピクセルでなくポイントとして扱う。
        (cairo、xft又はwin32の場合のみ有効)

      o use_variable_column_width  (true/*false*) (#)
        可変長コラム幅に対応

        なお、vertical_mode が cjk 又は mongol に設定されている場合は、
        自動的に false に設定されます。

      -- Background 関連 --
      o alpha (*255*) (#)
        背景画像使用時及び透過処理時に、bg_color で指定した色と背景をブレンドす
        る比率[0-255]
        なお、背景画像又は擬似的な背景透過を使用する際、このオプションがデフォ
        ルト値 (255) のままだった場合は、自動的に 0 に変更されます。
        depth オプションの説明も参照してください。

      o bg_color  (*white*) (#)
        同背景色

      o brightness  (*100*) (#)
        背景画像(透過処理含む)の輝度調整(百分率)[0-100]

      o contrast (*100*) (#)
        背景画像(透過処理含む)のコントラスト(百分率)[0-100]

      o fade_ratio  (*100*) (#)
        Focus から外れたときの前景/背景色の Fade 率(百分率)[0-100]

      o gamma (*100*) (#)
        背景画像(透過処理含む)のガンマ値(百分率)[0-100]

      o separate_wall_picture (*true*/false) (mlterm-fb on NetBSD/x68k 用)
        壁紙のみ Graphic VRAM ではなく Text VRAM に描画し、スクロール測度を改善

      o use_transbg (true/*false*) (#)
        擬似的な背景透過を行う。

      o wall_picture  (*なし*) (#)
        壁紙にする画像ファイルのパス
        なお、use_transbg が true となっている間は、壁紙の表示は行なわれません。

      -- Color 関連 --
      o bd_color (#)
        ボールドの代わりに文字に色を付けるのに使用する色

      o bl_color (#)
        点滅の代わりに文字に色を付けるのに使用する色

      o co_color (#)
        打ち消し線の代わりに文字に色を付けるのに使用する色

      o cursor_fg_color (#)
        カーソルの前景色

      o cursor_bg_color (#)
        同背景色

      o it_color (#)
        イタリックの代わりに文字に色を付けるのに使用する色

      o rv_color (#)
        反転の代わりに文字に色を付けるのに使用する色

      o ul_color (#)
        アンダーラインの代わりに文字に色を付けるのに使用する色

      o vt_color_mode (256/*high*/true)
        CSI 38;2;r;g;b m 又は CSI 48;2;r;g;b m で指定された RGB により表示される
        色について、256色からの近似値とするか、high color 又は true color で表示
        するかを指定
        (./configure で --disable-compact-truecolor オプションを指定してビルドし
         た場合は、常に vt_color_mode=true となります。)

      -- Scrollbar 関連 --
      o sb_fg_color (#)
        スクロールバーの前景色

      o sb_bg_color (#)
        同背景色

      o scrollbar_mode (none/*left*/right/autohide) (#)
        スクロールバーのつけ方
        autohide の場合、マウスカーソルを画面の右端に近づけたときだけ一時的にスク
        ロールバーを表示します。

      o scrollbar_view_name (*simple*/sample/sample3/next/motif/athena/mozmodern) (#)
        使いたいスクロールバーの名前

      o simple_scrollbar_dpr (*1*)
        "simple" スクロールバーの横幅を決めるための device pixel ratio

      o use_mdi (*true*/false)
        スクロールバー及び画面分割を有効
        scrollbar_mode, scrollbar_view_name オプションは、これが true の場合の
        み有効です。

      -- その他 --
      o allow_change_shortcut (true/*false*)
        OSC 5379 の "set_shortcut" による動的なショートカットキー定義を有効にす
        る。

      o allow_osc52 (true/*false*)
        OSC 52 sequence によるクリップボード(セレクション)へのアクセスを許可
        なお、このオプションを動的に変更するには、"proto:allow_osc52=switch"
        ショートカットキーを使用する必要があります。

      o allow_scp (true/*false*)
        ssh 接続時に OSC 5379 scp を許可
        なお、このオプションを動的に変更するには、"proto:allow_scp=switch"
        ショートカットキーを使用する必要があります。

        false の場合は、転送先ホストの "." (~/.mlterm/recv) ディレクトリ以下に
        保存されます。

      o always_show_dialog (true/*false*)
        既に確立された SSH セッションがあり、そのセッション上に新しいチャンネル
        を開くことができる場合でも、必ず接続先のサーバを指定するためのダイアロ
        グを表示します。

      o app_name (*mlterm*)
        アプリケーション名
        (xlib版では WM_CLASS プロパティにセットされます)

      o auto_restart (*true*/false)
        SIGSEGV, SIGBUS, SIGFPE, SIGILL が発生した場合に、mlterm 内部の console
        application (ssh 接続を除く。)を引き継いだ mlterm を起動し直します。

        デバッグのため core dump を取得する場合は、必ず false にしてください。

      o bel_mode  (none/*sound*/visual/sound|visual) (#)
        BEL(0x7)を受け取った時の挙動

        soundの場合はビープ音で、visualの場合は画面ブランクでBELを通知します。
        sound|visualを指定すると、両方行います。

      o blink_cursor (true/*false*) (#)
        カーソルを点滅させる。

      o borderless (true/*false*)
        Window Manager の飾りを外す。

      o broadcast (true/*false*) (#)
        キー入力及びペーストされた文字列を、全ての pty (ignore_broadcasted_chars
        オプションの値が false なものに限る) に送信

      o change_selection_immediately (*true*/false) (x11 及び mlterm-wl 以外用)
        マウスでテキストを選択した場合に、選択したテキストをすぐに Selection に反映

      o cipher_list
        ssh 接続で使用する共通鍵暗号を指定
        (コンマ区切りで複数指定)

      o click_interval (*250*) (#)
        ダブルクリックの間隔(ミリ秒)

      o console_sixel_colors (16/256/full) (mlterm-con 用)
        mlterm-con が動作するコンソールがサポートしている Sixel Graphics の色数
        16, 256, full のいずれかを指定します。
        XTCOLREG(CSI?Pi;Pa;PvS)により、16か256のいずれか適当な方を判定します。

      o daemon_mode (*none*/blend/genuine)
        daemon process となるかどうか

        blend の場合、最後の端末ウィンドウが閉じられた段階で、daemon process
        は終了します。
        一方、genuine の場合、最後の端末ウィンドウが閉じられた後も、また、X
        が終了したのちも、daemon process として動作しつづけることが可能です。

        なお、既にdaemon processが起動していた場合は、mlclientが実行されます。

      o default_cell_size (*8,16*) (mlterm-con 用)
        mlterm-con がセルの幅と高さのピクセル数を取得できなかった場合に使用する
        デフォルトの幅と高さ

      o default_server
        ssh 等により直接ログインするサーバを指定
        MinGW 又は --enable-ssh2 オプションでビルドした場合に有効となります。
        値の形式は、(<protocol>://)(<user>@)<server>(:<port>)(:<encoding>)

        例) mlterm --serv ssh://user@host:22:eucjp
            mlterm --serv mosh://user@host:22:utf8

      o depth
        Visual の深さ (8, 16, 24, 32)
        なお、depth が 32 の場合、--alpha オプション又は背景色として
        "rgba:RR/GG/BB/AA" と指定することで、半透明にすることができます。

      o display
        X の DISPLAY を指定

      o exec_cmd
        指定したコマンドを起動

        デフォルトでは、SHELL 環境変数で指定したシェルを起動します。

      o exit_backscroll_by_pty (true/*false*)
        バックスクロール中に、端末出力があった場合、バックスクロールを抜ける。

      o fb_resolution (mlterm-fb on NetBSD/x68k or OpenBSD 用)
        768x512x4 のような形式で解像度を指定

      o format_other_keys (true/*false*)
        modifyOtherKeys が有効な場合に送られるエスケープシーケンスの形式を
        CSI 27; Ps; Ps ~ ではなく CSI Ps; Ps u にする。
        (xterm の formatOtherKeys と同じ)

      o geometry
        表示位置を指定

      o icon_name (*mlterm*)
        アイコン名

      o icon_path
        アイコン画像のファイル名

      o ignore_broadcasted_chars (true/*false*)
        broadcast オプションが true の場合でも、ブロードキャストを受け付けない。

      o init_str
        pty をオープンしたときに、端末に送られる初期化文字列を指定

      o inner_border (*2*)
        Window の inner border (0-224)

        "H,V"形式で値を指定すると、横方向と縦方向で別々に inner border の値を指
        定できます。

      o layout_inner_border (*0*)
        Layout Manager の inner border (0-224)

        "H,V"形式で値を指定すると、横方向と縦方向で別々に inner border の値を指
        定できます。

      o local_echo_wait (*250*)
        local echo 状態を保持する時間 (ミリ秒)

      o locale
        指定したローケールに setlocale() します。

      o logging_msg (*true*/false)
        mlterm が出力するメッセージを ~/.mlterm/msg.log に出力

      o logging_vt_seq (true/*false*) (#)
        pty から流れてくる VT sequence を ~/.mlterm/[device].log に記録

      o logsize (*128*) (#)
        ログの行数
        unlimited を指定するとログの行数は無制限になります。
        65535行を超える数値を指定した場合、unlimited と見なします。

      o max_ptys (*32*)
        同時に立ち上げることができる pty の最大数 (32の倍数で指定)

      o mod_keys_to_stop_mouse_report (*shift,control*)
        マウス操作時に、コンソールアプリケーションにマウスの状態を通知しないよう
        にするキーを指定
        カンマで区切って、shift,control,mod1,mod2,mod3,mod4,mod5,mod,alt のうち
        複数のキーを指定できる。

      o mod_meta_key (*none*/mod1/mod2/mod3/mod4/meta/alt/super/hyper)
        Meta キーとして使用するキーを指定

      o mod_meta_mode  (none/esc/*8bit*) (#)
        Meta キーを押下した時の挙動

        esc の場合は"0x1b"を出力し、8bit の場合は入力文字の8ビット目をたてます。

      o output_xtwinops_in_resizing (true/*false*) (win32 用)
        pipe 経由で子プロセスと通信する場合、画面リサイズ時に XTWINOPS シーケンス
        で画面サイズを子プロセスに送信する。

      o parent_window (*0*)
        親 Window の Window ID を指定

      o primary_da (*63;1;2;3;4;7;29*)
        CSI c に対する応答文字列

      o receive_directory (~/.mlterm/recv)
        zmodem や scp で受信したファイルを保存するディレクトリ

      o regard_uri_as_word (true/*false*) (#)
        URI をダブルクリックすると、word_separators オプションに関わらず、当該
        URI を一単語として選択

      o resize_mode (none/scroll/*wrap*)
        リサイズ時における、画面に表示されている文字の表示方法

        scroll の場合は、全ての文字をスクロールアウトし、wrap の場合は、リサイズ
        後の画面幅に合わせて折り返して表示します。

      o secondary_da (*24;279;0*)
        CSI > c に対する応答文字列

      o ssh_auto_reconnect (true/*false*)
        ssh の接続が予期せず切断した場合に、自動的に再接続を試みる。

      o ssh_keepalive_interval (*0*)
        ssh 接続中に、指定した秒数ごとに、SSH_MSG_IGNORE を送信
        (0 の場合は送信しない。)

      o ssh_private_key (~/.ssh/id_rsa (win32 では %HOMEPATH%\mlterm\id_rsa))
        ssh 接続の認証で使用する秘密鍵のファイルを指定

      o ssh_public_key (~/.ssh/id_rsa.pub (win32 では %HOMEPATH%\mlterm\id_rsa.pub))
        ssh 接続の認証で使用する公開鍵のファイルを指定

      o ssh_x11_forwarding (true/*false*)
        ssh 接続で x11 forwarding を有効

      o start_with_local_pty (true/*false*) (Android or win32 用)
        default_server オプションが指定されていない場合に、起動時の SSH 接続ダイ
        アログを表示しないようにします。

      o startup_screens (*1*)
        起動時に立ち上げるウィンドウの数

      o static_backscroll_mode (true/*false*) (#)
        バックスクロール時に端末出力があっても画面が流れないようにします。

      o tabsize (*8*) (#)
        タブ幅

      o termtype (*xterm*)
        端末タイプ

        指定した値が、TERM環境変数にセットされるとともに、キー入力等について、
        termcap ファイルで設定した挙動となります。

        termtype の値として mlterm を指定することは推奨されません。

      o title (*mlterm*)
        タイトル名

      o trim_trailing_newline_in_pasting (true/*false*) (#)
        ペーストする文字列の末尾の改行を削除

      o use_alt_buffer (*true*/false)
        Alternate screen buffer を有効
        xterm の "titeInhibit" 相当のオプションですが、"titeInhibit" とは、
        true/false が逆になるので注意してください。

      o use_ansi_colors (*true*/false)
        ANSI color change escape sequences を有効
        xterm の "colorMode" 相当のオプションです。

      o use_conpty (*true*/false) (win32 用)
        ConPTY を使用する。

      o use_local_echo (true/*false*) (#)
        local echo mode を有効

      o use_locked_title (true/*false*)
        window or icon title の変更を許可しない。

      o use_login_shell (true/*false*)
        ログインシェルを使うかどうか

      o use_urgent_bell (true/*false*)
        フォーカスを失なった画面上でBEL(0x7)を受け取った時に、ユーザに警告

      o vt_seq_format (*raw*/ttyrec) (#)
        ~/.mlterm/[device].log に記録するフォーマットを指定
        rawはそのまま、ttyrecはttyrec形式で保存します。

      o word_separators ( ,.:;/|@()[]{}) (#)
        単語の区切り文字を指定('\x'から始まる16進数の使用も可)

        マウスのダブルクリックで、単語選択する際に使用されます。

      o working_directory
        子プロセス(シェル)のカレントディレクトリを指定

      o wm_role
        WM_WINDOW_ROLE プロパティ

      --- 廃止されたもの ---
      o xim_open_in_startup  (*true*/false)
        起動時に XIM を open するという機能でしたが、インプットメソッド関連
        のオプションを input_method に統合したので廃止しました。
        現在 input_method に xim を指定すると XIM は必ず open されます。
        代替手段として --im=none を指定して、mlterm 起動後に mlconfig などから、
        xim を指定するとすることで対応してください。

    o font/vfont/aafont/vaafont/tfont/taafont
      o DEFAULT            ... 下記文字集合ごとの指定がない場合のフォント
      o DEC_SPECIAL        ... 罫線文字用のフォント
      o ISO8859_N          ... ISO8859_Nフォント
      o TIS620             ... TIS 620 フォント
      o VISCII             ... VISCII フォント
      o TCVN5712_3_1993    ... TCVN5712_3_1993 フォント
      o ISCII_XXX          ... ISCII フォント(XXX は、ASSAMESE, BENGALI,
                               GUJARATI, HINDI, KANNADA, MALAYALAM, ORIYA,
                               PUNJABI, ROMAN, TAMIL, TELUGU のいずれか)
      o KOI8_R             ... KOI8_R フォント
      o KOI8_U             ... KOI8_U フォント
      o JISX0201_ROMAN     ... JISX0201左面フォント
      o JISX0201_KATA      ... JISX0201右面(半角カナ)フォント
      o JISX0208_1978      ... JISX0208フォント(JISC6226_1978も可)
      o JISX0208_1983      ... JISX0208フォント
      o JISX0208_1990      ... JISX0208フォント
      o JISX0212_1990      ... JISX0212(補助漢字)フォント
      o JISX0213_2000_1    ... JISX0213_1フォント
      o JISX0213_2000_2    ... JISX0213_2フォント
      o KSX1001_1997       ... KSC5601_1987フォント(KSC5601_1987も可)
      o GB2312_80          ... GB2312_80フォント
      o GBK                ... GBKフォント
      o BIG5               ... BIG5フォント
      o HKSCS              ... HKSCSフォント
      o CNS11643_1992_N    ... CNS11643_1992_Nフォント
      o ISO10646_UCS4_1    ... UNICODEフォント(1カラム用)
      o ISO10646_UCS4_1_FULLWIDTH ... UNICODEフォント(2カラム用)
      o U+XXXX-XXXX        ... UNICODEフォント(指定した範囲。最大255個まで。)

      (*) KOI8_T,GEORGIAN_PS,CP125[0-8],CP874 は -u オプションを指定して
          Unicode フォントを使用する必要があります。
          UHC,JOHAB は 自動的に KSX1001 フォントが使用されます。
      (*) Unicode のインド諸語は、mlterm 内部で一旦 ISCII に変換され、ISCII_XXX
          フォントにより表示されます。

      それぞれのボールド体のフォントを指定したい場合には、
      ISO8859_1_BOLD
      のように、"_BOLD"をつけた名前で指定して下さい。
      また、イタリックのフォントを指定したい場合には、
      ISO8859_1_ITALIC
      のようにしてください。
      _BOLD_ITALIC のように両方指定することもできます。

      上記文字集合ごとに使用したいフォント名を指定します。

      o font/vfont/tfont
        (--with-gui=xlib の場合)
        [XLFD(*)](:[percentage])
        (*) もしくは、fonts.aliasで定義している省略記法。

        フォント名に %d を含めておくと、そこにフォントサイズが入ります。
        例) ISO8859_1 = -kochi-mincho-medium-*--%d-*-iso8859-1

        (--with-gui=win32, --with-gui=quartz の場合)
        [font family]( Bold Italic [font size]:[percentage])

        (--with-gui=fb の場合)
        --enable-fontconfig: [font file path]
        --disable-fontconfig: [font family]( Bold Italic [font size]:[percentage])

      o aafont/vaafont/taafont
        [font family]( Bold Italic [font size]:[percentage])

        percentage は、そのフォントのグリフを表示するに、フォントサイズの何パー
        セント分の幅をとるかを指定します。
        例えば、フォントサイズが 12 の場合に、percentage として 100 を指定する
        と、半角文字なら幅 6 , 全角文字なら幅 12 がとられます。

        percentage 指定がない場合、通常の X フォントについては、そのフォントの
        最大幅が、Xft or cairo フォントについては、'M'が収まるだけの幅がとられ
        ます。

        percentage は、微妙に大きさの異なるフォントを組み合わせる場合の微調整
        や、フォントの最大幅、'M' の幅が大きすぎるようなプロポーショナルフォント
        を使用する場合などに使います。

        e.g.)
        JISX0208_1983 = Hoge:100

        但し、表示の際に基準となるフォント(US-ASCII相当のグリフを表示するフォン
        ト) 以外のフォントの percentage 指定は無視され、できるだけ基準フォント
        に合うような表示が優先されます。

        また、縦用フォントは、デフォルトで、すべて全角幅となりますので、

        ISO8859_1 = a10:100

        のようにすると、a10 フォントを無理矢理横幅 10 point で表示します。

        percentage 指定の結果、プロポーショナルフォントを固定幅で表示する場合と
        同じ扱いになる場合があります。その際は、描画速度が低下しますので注意して
        ください。

        なお、mlfc コマンドを実行すると、~/.mlterm/aafont を自動的に生成します。

      vfont または、vaafont, taafont に、条件にあうフォントが見つからない場合、
      それぞれ font, aafont が参照されます。

      フォントが指定されていない文字については、mltermが適当に判断して表示しま
      す。ただし、TCVN5712フォントについては、自動検索しませんので、font, aafont
      にて指定するようにしてください。

      ボールド体が指定されていない場合は、mediumフォントとして指定れたフォント、
      もしくは、mltermが適当に見つけ出したmediumフォントを重ね打ちして、それっぽ
      くみせます。
      ボールド体フォントとして、mediumフォントを指定してやれば、重ね打ちはしませ
      ん。
      なお、cairo の場合は必ず重ね打ちし、xft の場合は重ね打ちはしません。

      DEFAULT を font, vfont 及び tfont で指定した場合は、XLFD フォント名の末尾
      に文字集合ごとに適切な encoding を自動的に末尾に追記しますので、注意してく
      ださい。
      また、DEFAULT を指定したフォント名は、Input Method で使用するフォント
      (FontSet) には影響しません。

      e.g.)
      DEFAULT = -kochi-mincho-medium-*--%d-*-;12,-kochi-gothic-medium-*--12-*-
      => フォントサイズ 13 で ISO8859_1 を表示する場合、
         -kochi-mincho-medium-*--13-*-iso8859-1 となり、
         フォントサイズ 12 で ISO8859_1 を表示する場合、
         -kochi-gothic-medium-*--12-*-iso8859-1 となります。

      DEC_SPECIAL は、罫線文字の含まれている iso8859-1 フォントを指定してくださ
      い。

      GB18030 については、
      1-byte char : US_ASCII
      2-byte char : GBK
      4-byte char : Unicode
      フォントを使用します。

      CP932 の外字(NEC特殊文字、NEC選定IBM拡張文字、IBM拡張文字)については、
      Unicode に変換して、Unicode フォントを使用します。
      この場合、記号文字など半角全角のあいまいな文字を表示するには、-ac 2
      オプションをつけて mlterm を起動し、かつ、ISO10646_UCS4_1 に、記号文字が
      全角になっている Unicode フォントを指定する必要があります。

      Unicode の U+1F000-1F6FF 又は U+1F900-1F9FF については、~/.mlterm/emoji 以
      下に 1fXXX.png という画像ファイルがあれば、それを適宜拡縮して表示します。
      (ただし、3つ以上のコードポイントからなる emoji sequence の表示には対応して
      いません。)
      画像ファイルは、以下から入手してください。
      a) https://github.com/github/gemoji/archive/master.zip
         images/emoji/unicode/*.png を ~/.mlterm/emoji にコピーしてください。

      b) https://github.com/googlefonts/noto-emoji/archive/master.zip
         png/128/*.png を ~/.mlterm/emoji にコピーし、~/.mlterm/main において、
         emoji_file_format = emoji_u%x.png,emoji_u%x_%x.png
         と指定してください。

      c) openmoji-72x72-color.zip at https://github.com/hfg-gmuend/openmoji/
         *.png を ~/.mlterm/emoji にコピーし、~/.mlterm/main において、
         emoji_file_format = %X.png
         と指定してください。

      d) https://github.com/twitter/twemoji/archive/master.zip
         assets/72x72/*.png を ~/.mlterm/emoji にコピーしてください。

      --emoji / emoji_path オプションにより、~/.mlterm/emoji 以外のディレクトリ
      を指定することも可能です。

      また、--emoji / emoji_path オプションに、/foo/bar/NotoColorEmoji.ttf のよ
      うに絵文字フォントのパスを指定すれば、指定された絵文字フォントを使用して絵
      文字を表示します(ただし、絵文字フォントを使用する場合、複数のコードポイン
      トからなる emoji sequence の表示には対応していません。)。

      X Input Method のフォントは、なるべく端末画面で使用されているそれと同じ
      ものが使用されます。
      アンチエイリアス中は、font , vfont から適当なフォントを探します。
      ただし、縦用フォントについては、tfont , taafont ではなく、font で指定し
      たフォントが使用されます。

      なお、フォント指定については、Ctrl+右ボタンで表示される設定画面の
      "フォント" タブの "Select" ボタンで選択することができます("Select" ボタン
      を押下したときに、XLFD か Xft のどちらの選択画面が表示されるかは、"Xft"
      チェックボックスがチェックされているかどうかによります。)。

      例えば、"DEFAULT" として、
      Font:       => fixed (misc)
      Font Style: => medium [C]
      Size:       => 14
      を選択すると、次のように設定されます。

      DEFAULT = -misc-fixed-medium-r-normal-*-14-*-*-*-c-*-
      (この結果、fontsize オプションを変更しても常に 14 pixel のフォントが
      表示されることになるため、注意してください。)

      また、"ISO10646_1" として、
      Font:       => fixed (misc)
      Font Style: => medium [C]
      Size:       => 20
      を選択すると、次のように設定されます。

      ISO10646_UCS4_1 = -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso10646-1

    o color
      既存の色名の RGB 値を変更することができます。フォーマットは以下のとおり。

      color_name = [red]-[green]-[blue]
                   ([red],[green],[blue]は、それぞれ 16 bit 16 進数表記です)
      color_name = #RRGGBB (RR,GG,BB は、それぞれ 8 bit 16 進数表記です)
      color_name = rgb:RR/GG/BB or rgba:RR/GG/BB/AA
      color_name = rgb:RRRR/GGGG/BBBB or rgba:RRRR/GGGG/BBBB/AAAA

      色名の先頭に hl_ を付けると、16 色対応における強調色の RGB 値を指定でき
      ます。
      また、色名に 10進数の 17〜230,232〜255 の数値を指定すると、256 色対応
      における各色の RGB 値を指定できます。

    o xim
      mlterm では、複数の XIM の動的切替えをサポートしています。
      ここでは、そのために、各 XIM ごとのローケールを指定します。
      ここでの設定は、設定画面に即座に反映されます。

      たとえば、

      kinput2 = ja_JP.eucJP
      Ami = ko_KR.eucKR

      このように指定することで、mlterm 自体が、zh_TW.Big5 ローケールで動いている
      場合でも、Ami を ko_KR.eucKR で、kinput2 を ja_JP.eucJP ローケールで動かす
      ことができるようになります。(つまり、それぞれの言語で入力できるようになる)

    o key
      ショートカットキーの定義

      [SHORTCUT_KEY]=[OPERATION]

      OPERATION は以下の通り

      o IM_HOTKEY
        m17nlib, kbd の入力モード切替え。
      o EXT_KBD(UNUSED)
        アラビア語、インド諸語の mlterm 内蔵入力メソッドを起動、終了します。
        (mlterm 2.8.0 以前 との互換オペレーション)
      o NEW_PTY(Ctrl+F1)
        OPEN_SCREEN と同じ。2.6.0 以降 obsoleted.
      o OPEN_SCREEN(Ctrl+F1)
        新しいPTYを、新しい画面上に開きます。
      o OPEN_PTY(Ctrl+F2)
        新しいPTYを、現在の画面上に開きます。
      o NEXT_PTY(Ctrl+F3)
        Background の PTY を現在の画面上に表示します。
      o PREV_PTY(Ctrl+F4)
        Background の PTY を現在の画面上に表示します。
      o HSPLIT_SCREEN(Shift+F1)
        新しいPTYを、新しく横方向に分割した画面上に開きます。
      o VSPLIT_SCREEN(Shift+F2)
        新しいPTYを、新しく縦方向に分割した画面上に開きます。
      o NEXT_SCREEN(Shift+F3)
        分割された画面のうちフォーカスを持っていない次の画面にフォーカスを移します。
      o NEXT_SCREEN(Shift+F4)
        分割された画面のうちフォーカスを持っていない前の画面にフォーカスを移します。
      o CLOSE_SCREEN(Ctrl+F5)
        分割された画面のうち現在選択された画面を閉じます。
      o HEXPAND_SCREEN(Shift+F6)
        分割された画面のうち現在選択された画面を横方向に広げます。
      o VEXPAND_SCREEN(Shift+F7)
        分割された画面のうち現在選択された画面を縦方向に広げます。
      o PAGE_UP(Shift+Prior)
        バックスクロールモードに移行し、ページアップ
      o SCROLL_UP(Shift+Up)
        バックスクロールモードに移行し、スクロールアップ
      o SCROLL_UP_TO_MARK(Control+Shift+Up)
        バックスクロールモードに移行し、次のマークされた行までスクロールアップ
        (OSC 1337;SetMark で行にマークすることができます。)
      o SCROLL_DOWN_TO_MARK(Control+Shift+Down)
        次のマークされた行までスクロールダウン
        (OSC 1337;SetMark で行にマークすることができます。)
      o SET_MARK(Control+Shift+m)
        現在の行にマーク
      o INSERT_SELECTION(Shift+Insert)
        セレクションのペースト
      o INSERT_CLIPBOARD(Shift+Control+v)
        クリップボードのペースト
      o COPY_CLIPBOARD(Shift+Control+c)
        選択した文字列をクリップボードにコピー
      o RESET(Pause)
        端末をリセット
      o COPY_MODE(Control+Shift+Return)
        キーボードでの領域選択及びコピーができるモードに入ります。
        コピーモードでの操作方法は、「操作方法」-「キーボード」を参照ください。
      o "" で囲まれた文字列
        文字列の出力

      以下のオペレーションは 2.9.0 で廃止されました。

      o XIM_OPEN(Shift+space)
        XIM メソッドを Open します。
        xim_open_in_startup が true に設定されている場合は、最初から Open され
        ていますので、使われません。
      o XIM_CLOSE(UNUSED)

      SHORTCUT_KEY のフォーマットは以下の通り

      (MASK+)KEY

      キー割り当てしない場合は UNUSED としてください。
      キーには、Button1, Button2, Button3, Button4, Button5 を指定することもでき
      ます。

      また、次の8つのマスク指定も可能です。

      Control
      Shift
      Mod1
      Mod2
      Mod3
      Mod4
      Mod5
      Mod  (Mod1Mask - Mod5Mask まですべてにマッチします)
      Alt  (Modと同じ)

      e.g.)
      Control+n=OPEN_SCREEN
      Control+n を押下すると、新しい端末用ウィンドウを開きます。

      "" で囲まれた文字列としては、'\x'から始まる16進数、'\n','\r','\e','\t'
      が使えます。
      また、"" で囲まれた文字列が、'proto:' から始まっている場合、以降の文字列を
      doc/en/PROTOCOL の set の key=value と解釈します(key=valueは ';' で区切っ
      て複数指定することも可能)。なお、key=value の前に (echo) と書いておくと、
      ショートカットキーを押下したときに、画面に "Config: key=value" と表示しま
      す。
      'exesel:' から始まっている場合は、以降の文字列をコマンドと解釈し、選択文字
      列を引数として実行します(コマンド文字列中に"%s"があると、選択文字列に置換
      します。)。
      'menu:' から始まっている場合は、以降の文字列を configuration program と解
      釈して実行します。

      e.g.)
      Control+F1="proto:font_size=12;encoding=utf8"
      => Control+F1 を押下すると、フォントサイズが 12、エンコーディングが utf8 に
         なります。
      Control+F2="exesel:mlclient -e w3m"
      => Control+F2 を押下すると、"mlclient -e w3m 選択文字列" を実行します。
      Control+F3="menu:mlterm-menu"
      => Control+F3 を押下すると、mlterm-menu を実行します。

    o termcap
      termcapデータベースもどき
      termtype オプションで指定した端末タイプに応じた挙動を定義できます。
      (なお、例えば、termcap に xterm の設定を定義する場合、termtype=xterm だけ
      でなく、termtype=xterm-256color などにもマッチします。)
      端末名 '*' で、デフォルトの設定を定義できます。

      `\E' , `^A' などが使えます。
      `\' のあとに8進数を指定する記法はサポートしていません。

      o kD
        delete キーを押下(ただし、Shift, Control 又は Mod キーと一緒に押下された
        場合を除く。以下同じ。)したときのシーケンス
        デフォルトでは、`\E[3~'
      o kb
        バックスペースキーを押下したときのシーケンス
        デフォルトでは、`^H'
      o kh
        Application cursor key mode で、HOME キーを押下したときのシーケンス
        デフォルトでは、'\EOH'
      o @7
        Application cursor key mode で、END キーを押下したときのシーケンス
        デフォルトでは、`\EOF'
      o k1, k2, k3, k4, k5
        F1〜F5 キーを押下したときのシーケンス
        デフォルトでは、それぞれ、`\EOP', `\EOQ', `\EOR', `\EOS', '\E[15~'
      o ut
        BCE を有効にするかどうかを指定します。
        デフォルトでは、無効

  o 引数オプション
    -h/--help(=bool)   : ヘルプ
    -v/--version(=bool) : バージョン情報(あまり信用できない:D)

    -#/--initstr=value : init_str
    -%/--logseq        : logging_vt_seq
    -$/--mc=value      : click_interval
    -&/--borderless    : borderless
    -*/--type          : type engine
    -0/--crbg=value    : cursor_bg_color
    -1/--wscr=value    : screen_width_ratio
    -3/--contrast=value: contrast
    -4/--gamma=value   : gamma
    -5/--big5bug(=bool): big5_buggy
    -6/--stbs(=bool)   : static_backscroll_mode
    -7/--bel=value     : bel_mode
    -8/--88591(=bool)  : iso88591_font_for_usascii
    -9/--crfg=value    : cursor_fg_color
    -@/--screens=value : startup_screens
    -A/--aa(=bool)     : use_anti_alias
    -B/--sbbg=value    : sb_bg_color
    -C/--ctl(=bool)    : use_ctl
    -E/--km=value      : ENCODING
    -F/--sbfg=value    : sb_fg_color
    -G/--vertical=value: vertical_mode
    -H/--bright=value  : brightness
    -I/--icon=value    : icon_name
    -J/--dyncomb(=bool) : use_dynamic_comb
    -K/--metakey=value : mod_meta_key
    -L/--ls(=bool)     : use_login_shell
    -M/--im=value      : input_method
    -N/--name=value    : app_name
    -O/--sbmod=value   : scrollbar_mode
    -Q/--vcur(=bool)   : use_vertical_cursor
    -R/--fsrange=value : font_size_range
    -S/--sbview=value  : scrollbar_view_name
    -T/--title=value   : title
    -U/--viaucs=value  : receive_string_via_ucs
    -V/--varwidth(=bool): use_variable_column_width
    -W/--sep=value     : word_separators
    -X/--alpha=value   : alpha
    -Y/--decsp(=bool)  : compose_dec_special_font
    -Z/--multicol(=bool): use_multi_column_char
    -a/--ac=value      : col_size_of_width_a
    -b/--bg=value      : bg_color
    -c/--cp932(=bool)  : use_cp932_ucs_for_xft
    -d/--display       : display
    -f/--fg=value      : fg_color
    -g/--geometry=value : geometry
    -i/--xim(=bool)    : use_xim
    -j/--daemon=value  : daemon_mode
    -k/--meta=value  : mod_meta_mode
    -l/--sl=value      : logsize
    -m/--comb(=bool)   : use_combining
    -n/--noucsfont(=bool) : not_use_unicode_font
    -o/--lsp=value     : line_space
    -p/--pic=value     : wall_picture
    -r/--fade=value    : fade_ratio
    -s/--sb(=bool)     : use_scrollbar
    -t/--transbg(=bool) : use_transbg
    -u/--onlyucsfont(=bool) : only_use_unicode_font
    -w/--fontsize=value : fontsize
    -x/--tw=value      : tabsize
    -y/--term=value    : termtype
    -z/--largesmall=value : step_in_changing_font_size
       --bdfont(=bool) : use_bold_font
       --itfont(=bool) : use_italic_font
       --iconpath=value : icon_path
       --bimode=value  : bidi_mode
       --bisep=value   : bidi_separators
       --parent=value  : parent_window
       --bd=value      : bd_color
       --ul=value      : ul_color
       --bl=value      : bl_color
       --rv=value      : rv_color
       --it=value      : it_color
       --co=value      : co_color
       --noul(=bool)   : hide_underline
       --ulpos(=bool)  : underline_offset
       --otl(=bool)    : use_ot_layout
       --ost=value     : ot_script
       --oft=value     : ot_features
       --serv=value    : default_server
       --pubkey=value  : ssh_public_key
       --privkey=value : ssh_private_key
       --ciphlist=value : cipher_list
       --x11(=bool)    : ssh_x11_forwarding
       --scp(=bool)    : allow_scp
       --rcn(=bool)    : ssh_auto_reconnect
       --csp=value     : letter_space
       --osc52(=bool)  : allow_osc52
       --blink(=bool)  : blink_cursor
       --border=value  : inner_border
       --lborder=value : layout_inner_border
       --restart(=bool): auto_restart
       --logmsg(=bool) : logging_msg
       --loecho(=bool) : use_local_echo
       --altbuf(=bool) : use_alt_buffer
       --colors(=bool) : use_ansi_colors
       --exitbs(=bool) : exit_backscroll_by_pty
       --shortcut(=bool) : allow_change_shortcut
       --boxdraw=value : box_drawing_font
       --urgent(=bool) : use_urgent_bell
       --locale=value  : locale
       --ucsnoconv=value : unicode_noconv_areas
       --fullwidth=value : unicode_fullwidth_areas
       --halfwidth=value : unicode_halfwidth_areas
       --ade=value     : auto_detect_encodings
       --auto(=bool)   : use_auto_detect
       --ldd(=bool)    : leftward_double_drawing
       --working-directory=value : working_directory
       --seqfmt=value  : vt_seq_format
       --uriword(=bool) : regard_uri_as_word
       --vtcolor=value : vt_color_mode
       --da1=value     : primary_da
       --da2=value     : secondary_da
       --deffont=value : DEFAULT in ~/.mlterm/*font
       --depth=value   : depth
       --maxptys=value : max_ptys
       --keepalive=value: ssh_keepalive_interval
       --metaprefix    : mod_meta_prefix
       --ckm=value     : console_encoding (mlterm-con 用)
       --csc=value     : console_sixel_colors (mlterm-con 用)
       --csz=value     : default_cell_size (mlterm-con 用)
       --trim(=bool)   : trim_trailing_newline_in_pasting
       --bc(=bool)     : broadcast
       --ibc(=bool)    : ignore_broadcasted_chars
       --emoji=value   : emoji_path
       --emojifmt=value: emoji_file_format
       --rz=value      : resize_mode
       --recvdir=value : receive_directory
       --fk(=bool)     : format_other_keys
       --sdpr=value    : simple_scrollbar_dpr
       --norepkey=value: mod_keys_to_stop_mouse_report
       --winsize(=bool): output_xtwinops_in_resizing (win32 用)
       --conpty(=bool) : use_conpty (win32 用)
       --chsel(=bool)  : change_selection_immediately (mlterm and mlterm-wl 以外用)
       --point=value   : use_point_size
       --aafont(=bool) : use_aafont (mlterm-fb, mlterm-wl or mlterm-sdl2 用)
       --multivram(=bool) : separate_wall_picture (mlterm-fb on NetBSD/x68k 用)
       --slp(=bool)    : start_with_local_pty (Android 用)

    -e ...             : exec_cmd

    o オプションは、以下のフォーマットを受け付けます。
      (-E/--km,-J/--dyncombを例に)

      -E=euc-jp
      -E euc-jp
      -km=euc-jp
      -km euc-jp
      --km euc-jp
      --km=euc-jp

      -J  (-J=trueと同じ)
      -J=true
      -J=false
      -J true
      -J false
      -dyncomb  (-dyncomb=trueと同じ)
      -dyncomb=true
      -dyncomb=false
      -dyncomb true
      -dyncomb false
      --dyncomb  (-dyncomb=trueと同じ)
      --dyncomb=true
      --dyncomb=false
      --dyncomb true
      --dyncomb false

    o 上記オプションのうち mlclient や mlclientx からは指定できないものがあります。
      詳しくは mlclient(1) を参照してください。

* 操作方法
  o キーボード
    [通常モード]
    Shift+↑     ... バックスクロールモードへ移行し、スクロールアップ
    Shift+PageUp ... バックスクロールモードへ移行し、ページアップ

    [バックスクロールモード]
    j, ↓              ... 下スクロール
    k, ↑              ... 上スクロール
    u, PageUP          ... ページアップ
    d, PageDown        ... ページダウン
    ショートカットキー ... INSERT_SELECTION、RESET 及び COPY_MODE は通常モードに復帰
    その他のキー入力   ... バックスクロールモードから通常モードに復帰

    [コピーモード]
    Control+Shift+Return            ... コピーモードへの移行
    j/↓                            ... 下移動
    k/↑                            ... 上移動
    l/右                            ... 右移動
    h/左                            ... 左移動
    u/PageUP                        ... ページアップ
    d/PageDown                      ... ページダウン
    /                               ... 検索文字列の入力(前方検索)
    ?                               ... 検索文字列の入力(後方検索)
    Control+g                       ... 検索文字列の入力の中止
    Space, Return                   ... 領域選択開始、終了
    Mod(Alt)+Space, Mod(Alt)+Return ... 矩形領域選択開始
    Escape,q                        ... コピーモードから通常モードに復帰
    その他のキー                    ... 領域選択の中止

  o マウス
    ドラッグすれば領域選択できます。
    また、そのまま、スクロールすることもできます。

    コンソールアプリケーションがマウスイベントを横取りしている場合は、Shift +
    Button で領域選択できます。

    選択した領域が反転表示されている状態で、Shift + Button3 を押すと、選択中の領
    域を変更することができます。

    Mod(Alt)を押しながらマウスでドラッグすると矩形領域を選択できます。

    ファイルをドラッグし、mlterm の画面にドロップすると、そのファイルのパスをペ
    ーストします。ssh 接続中の画面に、Shift キーを押しながらドロップした場合は、
    リモートホストに scp します。

    Ctrl+左ボタン(ボタン1)で、メニューがでます。 
    Ctrl+右ボタン(ボタン3)で、設定画面がでます。

    スクロールバーは、マウスでドラッグすれば、スクロールされます。

    インラインで表示している画像は、ダブルクリックすると、クリップボードにコピー
    します。

* 連絡先
  mlterm-dev-ja ML(https://lists.sourceforge.net/lists/listinfo/mlterm-dev-ja)

* 利用に際しての条件
  BSDライセンスとします。詳細は附属のLICENCEファイルを参照。
