【設定に関するメモ】

●全体的な注意点
  Jsonファイルのルールに従う必要があるため、'\'は、'\\'と記述する必要があります。
  '/'は、'\/'と記述する必要があります。
  %環境変数%という表現で、環境変数が使用できます。
  また、文字コードは、UTF8(BOMなし)で記載してください。
  true, falseは、小文字で記載する必要があります。

●INIファイル設定(Zero.ini)書式・・・前回の終了状態
  [環境]
    SortType       : ソートの種類 0-名前順, 1-拡張子順, 2-日付順, 3-サイズ順
    SortDir        : ソート方向   0-昇順, 1-降順
    DontAddWin     : 追加起動禁止 0-制限なし, 1-追加起動禁止

●基本設定(Zero.json)書式
    "Common": {            一般設定
        "StyleType"      : 窓のスタイル
        "FontName"       : 情報パネルなどのフォント名
        "FontSize"       : 情報パネルなどのフォントサイズ
        "IsSaveWWidth"   : 2画面表示幅の保存 true-保存する, false-保存しない(デフォルト)
        "IsWTgl"         : 2画面時はトグル切替を左右窓にする true-左右窓切替(デフォルト), false-他のZeroに切替
        "DefWinSizeType" : 窓並べサイズの規定値
        "DefWinWidth"    : 窓並べサイズの規定幅(指定値)
        "DefWinHight"    : 窓並べサイズの規定高さ(指定値)
        "RefreshType"    : 画面リフレッシュ 0-無効, 1-アクティブになったとき(デフォルト)
        "LoopType"       : 先頭・末尾間の移動  0-無効(デフォルト), 1-単純なループ, 2-先頭or末尾に移動後、ループ, 3-先頭or末尾に移動。ループなし
        "PageUpDnType"   : PageUp/Downによるスクロール 0-1画面(デフォルト), 1-半画面
        "VWheelType"     : ホイールによる縦スクロール  0-1行(デフォルト), 1-半画面, 2-1画面
        "HistCursor"     : フォルダー毎にカーソル位置を記憶 true-カーソル位置復帰, false-無効(デフォルト)
        "ClearMarkType"  : 作業後マーククリア  0-全作業(デフォルト), 1-コピー以外, 2-無効
        "IsMLClear"      : マウスクリック時マーククリア true-クリアする(デフォルト), false-クリアしない
        "MarkStr"        : マーク記号
        "IconEnable"     : アイコン表示 true-表示, false-非表示
        "InputPathType"  : Path入力時の初期値  0-通常(デフォルト), 1-参照窓, 2-ジャンプリスト
        "AssistPathType" : Path入力補助 0-現状フォルダー(デフォルト), 1-履歴
        "DropDownCnt"    : ドロップダウンリストの表示行数
        "SortType"       : ソートの種類 -1-Zero.iniの値(デフォルト), 0-名前順, 1-拡張子順, 2-日付順, 3-サイズ順
        "SortDir"        : ソート方向   -1-Zero.iniの値(デフォルト), 0-昇順, 1-降順
        "IsGroupSort"    : ソートのグループ化  true-有効(デフォルト), false-無効
        "IsOnlyFileSort" : ソート（ファイルのみ） true-有効, false-無効(デフォルト)
        "AnsiType"       : ソート(名前順)はロケール準拠
        "Edit"           : 拡張子対応設定でEの該当が無いとき用のエディタ
        "View"           : 拡張子対応設定でVの該当が無いとき用のビュワー
        "Is1by1"         : デフォルトアプリにファイルを1つずつ渡す true-１つずつ, false-まとめて(デフォルト)
        "DelMode"        : 削除指定方法の初期値
                           0-キャンセル(デフォルト), 1-ゴミ箱へ, 2-削除
        "DelFolderMode"  : フォルダー削除指定方法の初期値
                           0-削除しない(デフォルト), 1-削除する
        "DelFolderSame"  : フォルダー削除を同設定にする
                           true-以降、同設定, false-毎回問い合わせ(デフォルト)
        "DelReadOnlyMode": リードオンリーなどの特殊ファイルの削除指定方法の初期値
                           0-削除しない(デフォルト), 1-削除する
        "DelReadOnlySame": リードオンリーなどの特殊ファイルの削除を同設定にする
                           true-以降、同設定, false-毎回問い合わせ(デフォルト)
        "NewFolderMode"  : コピー時などのフォルダー作成問い合わせの初期値
                           0-いいえ(デフォルト), 1-はい, 2-問い合わせなしで、はい
        "IsUnPackMkDir"  : 展開時のフォルダー自動作成 false-フォルダーを作成しない(デフォルト), true-する
        "IsClipMsg"      : クリップボードコピー時のメッセージ表示 true-する(デフォルト), false-しない
        "MultipleStart"  : 初回起動時、前回終了状態の複数窓を復帰 true-複数(デフォルト), false-1つ
        "IsQuitMsg"      : 修了時の問い合わせ true-する(デフォルト), false-しない
        "OSPopupMenu"    : ランチャー・ジャンプメニュー表示 true-OS準拠, false-カスタムスタイル適用(デフォルト)
        "InfoPnlType"    : 情報パネルの表示設定 0-標準(デフォルト), 1-ファイル追加情報を分離
        "FileInfoType"   : ファイル追加情報設定 0-なし, 1-サイズ/日付と時刻(デフォルト), 2-サイズ/日付と時刻/属性(12文字)
        "DriveInfoType"  : ドライブ情報設定 0-なし(デフォルト), 1-ファイル数/空き容量, 2-全容量も追加, 3-空き容量率も追加
        "FooterType"     : フッター情報欄設定  0-なし, 1-ファイル数/空き容量(デフォルト), 2-全容量も追加, 3-空き容量率も追加
        "NoactiveType"   : 非アクティブ時表示 0-無効, 1-下線カーソル(デフォルト), 2-カーソルなし, 3-両窓無効
        "BkColType"      : 非アクティブ時背景 0-無効(デフォルト), 1-灰色, 2-灰色2, 3-カラー設定で指定
        "DictFolder"     : あいまいインクリメンタルサーチ用の(Migemo)辞書フォルダー (デフォルトは、Zero.exe直下)
    },
    "Setting": {          「設定」項目用のエディタ設定
        "BasicEditor"   : 基本設定ファイルの編集用エディタ
        "LauncherEditor": ランチャー設定ファイルの編集用エディタ
        "ExtEditor"     : 拡張子対応設定ファイルの編集用エディタ
        "JumpEditor"    : ジャンプ設定ファイルの編集用エディタ
        "NetEditor"     : ネットワーク接続先設定ファイルの編集用エディタ
        "PackEditor"    : 圧縮・展開設定ファイルの編集用エディタ
        "ColorEditor"   : カラー設定ファイルの編集用エディタ
        "KeyEditor"     : キー設定ファイルの編集用エディタ
        "TextViewEditor": 内蔵テキストビュワー設定ファイルの編集用エディタ
    },
    "DriveBar": {          ドライブバー設定
        "Visible"        : ドライブバー表示    true-有効, false-無効(デフォルト)
        "FontName"       : フォント名
        "FontSize"       : フォントサイズ
        "FontBold"       : 太文字にするか否か  true-太文字, false-通常(デフォルト)
        "IsIcon"         : アイコン表示        true-表示(デフォルト), false-非表示
    },
    "FileView": {         ファイル一覧の表示設定
        "FontName"       : フォント名
        "FontSize"       : フォントサイズ
        "MenuFontName"   : メイン/コンテキストメニューのフォント名
        "MenuFontSize"   : メイン/コンテキストメニューのフォントサイズ
        "NameLenMax"     : ファイル名の最大文字数
        "NameLenMin"     : ファイル名の最小文字数
        "ExtLenMax"      : 拡張子名の最大文字数
        "ExtLenMin"      : 拡張子名の最小文字数
        "SizeType"       : ファイルサイズの表示形式 0-非表示, 1-シンプル, 2-コンマ区切り, 3-コンマ区切り&単位(k, M...)
        "DateTimeType"   : ファイル日付の表示設定   0-非表示, 1-日付のみ, 2-日付と時刻,   3-日付と時刻(年は4桁)
        "AttrType"       : ファイル属性の表示設定   0-非表示, 1-4文字,    2-12文字
        "SizeMargin"     : ファイルサイズ表示のマージン幅(デフォルト 5)
        "DateMargin"     : ファイル日付表示のマージン幅  (デフォルト 5)
        "AttrMargin"     : ファイル属性表示のマージン幅  (デフォルト 5)
        "ColLmt"         : 列数の最大数 0-自動, 1-1列, 2-2列 ...
        "IsVScrl"        : 縦スクロール true-オン, false-オフ(デフォルト)
        "ViewHidden"     : 隠しファイルの表示       true-表示(デフォルト), false-非表示
        "ViewSysFile"    : システムファイルの表示   true-表示(デフォルト), false-非表示
    },
    "ListView": {         検索結果の表示設定
        "DirMargin"     : フォルダー表示のマージン幅    (デフォルト 15)  // ListViewにのみ存在
    },
    "PackView": {         圧縮ファイル参照時の表示設定
    },
    "RefView": {          参照時のファイル一覧の表示設定
    },
    "NetView": {
        "NetListMode"   : コンピュータ一覧取得方法  0-シェル経由(デフォルト), 1-WNet関数
    }

    ListView, PackView, RefView, NetView未設定項目は、FileViewと同じになります。
    (ただし、ListViewは、ColLmt設定無効。
             NetViewは、現在、FontName, FontSize, NameLenMax/Min, ColLmtのみ設定可能)

●ランチャー設定(Launcher.json)書式

・通常
    [S, T, E (, O, D, F, P, M)]

・グループ化するとき
    [S, T, [
      [S, T, E (, O, D, F, P, M)],
      ...
    ]]

      S: ショートカット
      T: タイトル
      E: 実行ファイル
      O: オプション
      D: 実行フォルダー
         "": 現在のフォルダ ... デフォルト
      F: 実行ファイルに渡すファイルの方法
         0: なし ... デフォルト
         1: ファイル
         2: マークファイル(マークしていない場合は、1と同じ)
         3: マークファイル(1つずつ実行)
      P: 実行ファイルに渡すファイルをフルパスにするか否か
         true:  フルパス指定 ... デフォルト
         false: ファイル名のみ
      M: 動作モード
         b0: 0-外部アプリ, 1-内部コマンド
      ()は省略可

・例
    ["D", "DOS窓(コマンドプロンプト)", "cmd.exe"]

・実行ファイル、オプションで使用可能なマクロ
    $D, $d : カレントドライブ
    $P, $p : カレントフォルダーパス
    $F     : カレントファイル(フルパス)
    $f     : カレントファイル(フルパス、拡張子なし)
    $C     : カレントファイル(拡張子あり)
    $c, $X : カレントファイル(拡張子なし)
    $M     : マークファイル(フルパス)
    $m     : マークファイル(フルパス、拡張子なし)
    $T     : マークファイル(拡張子あり)
    $t     : マークファイル(拡張子なし)
    $L     : リストファイル(フルパスのマークファイルを列挙したファイル。ファイル名(Zeroxxxx.lst)は自動生成される。)
    $L2    : リストファイル $Lの拡張子なし
    $l     : リストファイル(マークファイルを列挙したファイル。ファイル名(Zeroxxxx.lst)は自動生成される。)
    $l2    : リストファイル $lの拡張子なし
    $I     : 実行時入力(パラメータ)
    $i     : 実行時入力(圧縮ファイル名)
    $N     : ダミー
    $Z     : Zeroのフルパス
    $z     : Zeroのフォルダー
    $$     : '$'自身 ('$' 一つに置き換えます)

●拡張子対応設定(Ext.json)書式
・書式
    {
      "Ext"    : 拡張子一覧,
      "Enter"  : [E (, O, D, F, P)],
      "S_Enter": [E (, O, D, F, P)],
      "V"      : [E (, O, D, F, P)],
      "E"      : [E (, O, D, F, P)],
    },
      
    拡張子一覧: jpg,gif などのように','で複数拡張子を指定可能
    Enter     : Enterキー時の対応コマンドを指定
    S_Enter   : Shift+Enterキー時の対応コマンドを指定
    V         : Vキー時の対応コマンドを指定
    E         : Eキー時の対応コマンドを指定

・実行優先度
    通常ファイルの場合
      Enter      : 拡張子対応設定 → OS関連付け → 拡張子対応設定の"*" → [Launcher]Viewのコマンド
      Shift+Enter: 拡張子対応設定 → 拡張子対応設定の"*" → [Launcher]Editのコマンド
      V          : 拡張子対応設定 → 拡張子対応設定の"*" → [Launcher]Viewのコマンド
      E          : 拡張子対応設定 → 拡張子対応設定の"*" → [Launcher]Editのコマンド
    圧縮ファイルの場合
      Enter      : 拡張子対応設定 → 圧縮窓で開く
      Shift+Enter: 通常ファイルと同じ
      V          : 通常ファイルと同じ
      E          : 通常ファイルと同じ
    実行ファイルの場合
      Enter      : 拡張子対応設定 → 実行する
      Shift+Enter: 通常ファイルと同じ
      V          : 通常ファイルと同じ
      E          : 通常ファイルと同じ
    注: 上記の「OS関連付け」は、関連付け先がDLLになっている場合(Win標準のフォト(PhotoViewer.dll)など)は、動作しません。
        $Fを指定いただくことで、完全にOS関連付けの動作を実現可能です。

・内部コマンド
    @view      : 内蔵テキストビュワー
    例
       {"Ext":"txt,md",
           "Enter":["@view", "", "", 1],

●ジャンプ設定(Jump.json)書式

・通常
    [S, T, D]
    T省略時(T=""の時)は、Dと同じになります。

・グループ化するとき
    [S, T, [
      [S, T, D],
      ...
    ]]
    T省略時(T=""の時)は、グループ名が空白になります。

      S: ショートカット
      D: ジャンプフォルダー
      T: タイトル(グループ名)

・例
    ["T", "tmp", "C:\\tmp"]

●ネットワークフォルダー設定(Network.json)書式

    [
      "アドレス1",
      "アドレス2",
      ...
    ]

・例
    \\ABC\shareを登録するとき

    [
      "\\\\ABC\\share"
    ]

●圧縮・展開設定(Pack.json)書式
  統合アーカイバプロジェクトのDLLを設定可能
  同じ拡張子のDLLを複数登録可能です。ただし、上に記載したものが優先順位が高くなります。
  指定したDLLが見つからない場合は、次の候補のDLLが選ばれます。
  また、一時フォルダーへの展開用オプション(UnpackTmp)へは、フォルダーなし展開のオプションを
  指定してください。

    [
      {"Ext":拡張子, "Dll":DLL名, "Cmd":書庫操作一般コマンド, "Pack":圧縮用オプション, "Unpack":展開用オプション, "UnpackTmp":一時フォルダーへの展開用オプション, "UnpackOut":展開先用オプション, "Sfx":自己展開用オプション},
      ...
    ]

      拡張子は、','で区切ることで複数指定可能
      圧縮/展開用オプションは、command(命令)と switch(スイッチ)のことです。

・例
    展開専用Zip用 DLLと、圧縮・展開用Lzh用 DLLを登録するとき

    [
      {"Ext":"jar,ear,war,zip", "Dll":"UNZIP32.DLL", "Cmd":"UnZip", "Unpack":"-x -o", "UnpackTmp":"-x -o -j"},
      {"Ext":"lzh", "Dll":"unlha32.dll", "Cmd":"Unlha", "Pack":"u -a1 -r2 -x1 -l1 -jp1", "Unpack":"x -a1 -c1 -r2 -jp1", "UnpackTmp":"e", "Sfx":"s -gw3"},
      ...
    ]

●カラー設定(Color.json)書式
  5種類のエリアの色を設定可能
    エリア
      DriveBar : ドライブバーのエリア
      FileView : 通常時のファイルを表示するエリア
      ListView : ファイル検索結果のファイルリストの表示エリア
      PackView : 圧縮ファイル直視時のファイルを表示するエリア
      NetView  : ネットワークリストを表示するエリア
    FileViewの設定が基本で、ListView, PackView, NetViewに引き継がれますので、
    変更したい部分だけ ListView, PackView, NetViewに追記すればよいです。
  色設定項目
    DriveBar
      ActiveColor  : アクティブ時の文字の色
      NormalColor  : 非アクティブ時の文字の色
    FileVeiw, ListView, PackView, NetView
      BackColor    : 背景色 ・・・ 現在、設定値が上手く反映されません
      NormalColor  : 通常ファイルの色
      ReadonlyColor: 読み取り専用ファイルの色
      HiddenColor  : 隠しファイルの色
      SystemColor  : システムファイルの色
      DirColor     : フォルダーの色
      PackColor    : 圧縮ファイルの色
      ExecColor    : 実行ファイルの色
      MarkColor    : マーク記号">"の色
    Ext
      PreColor  : 指定拡張子のファイルを前方に表示し、色を指定
        Enable  : true-有効, false-無効
        Ext     : 拡張子指定。"," 区切りで複数指定可
        Color   : 色
      PostColor : 指定拡張子のファイルを後方に表示し、色を指定
        Enable, Ext, Colorは、PreColorと同じ
  色の値
    Delphi言語のTColor値で指定します。
      clBlack   : 黒色
      clMaroon  : 栗色
      clGreen   : 緑色
      clOlive   : 黄緑色
      clNavy    : 濃紺色
      clPurple  : 紫色
      clTeal    : 暗青緑色
      clGray    : 灰色
      clSilver  : 銀色
      clRed     : 赤色
      clLime    : ライム色(鮮やかな緑色)
      clYellow  : 黄色
      clBlue    : 青色
      clFuchsia : 赤紫色色
      clAqua    : 空色
      clLtGray  : 灰色（明）  
      clDkGray  : 灰色（暗）
      clWhite   : 白色
      16進数で表現する場合は、$BBGGRRで指定してください。
      通常、HTMLなどは RGB表現ですが、Delphiは BGRなので数字の順番が異なるので注意です。
      clXXは多数ありますので、下記を参考にしてください。ただし、Webカラーは未対応なので$xxxxxxで指定してください。
        https://ht-deko.com/tech067.html
        
・例
  "FileView": {
    "ReadonlyColor" : "clLtGray",      読み取り専用ファイルの色を灰色(明)に設定
    "PackColor"     : "$7AA0FF",       圧縮ファイルを明るいサーモンピンクに設定(BGRの順)
                                       HTMLであれば、FFA07A (RGB)ですが、RとBの部分を入れ替える必要あります。
  },
  "ListView": {
    "ReadonlyColor" : "clRed",         読み取り専用ファイルの色のみ赤に再設定
  }
  "Ext": {
    "PreColor" : [
      {
        "Enable" : true,
        "Ext"    : "tmp,temp,bak",     指定した拡張子のファイルを前方に灰色で表示
        "Color"  : "clGray"
      },
      {
        "Enable" : true,
        "Ext"    : "err",             指定した拡張子のファイルを前方に赤色で表示
        "Color"  : "clRed"
      }
    ],
    "PostColor" : [
      {
        "Enable" : true,
        "Ext"    : "log",             指定した拡張子のファイルを後方に灰色で表示
        "Color"  : "clGray"
      }
    ]
  }

●キー設定(Key.json)書式
    Keyと、Cmdをペアで記載することで、キーカスタマイズが可能です。
    Keyには、ショートカットキーを、Cmdには対応するコマンドを記載してください。
    Appは、Cmdに"app"を指定したときのみ有効で、アプリ情報を配列で指定。
    Kjmpは、Cmdに"kjmp"を指定したときのみ有効で、ジャンプ情報を配列で指定。
    shiftキーなどと組み合わせる場合は、Shift+〇 というように記載します。
    デフォルトのキー設定は、defkey.txtを参照してください。
    また、コマンド名は、Readme.mdのキー割り当ての表の名称欄を参照してください。
    
    特殊キーの表現
      Backspace: BkSp
      Delete   : Del
      Insert   : Ins
      Space    : Space
      Tab      : Tab
      Esc      : Esc
      PgUp     : PgUp
      PgDn     : PgDn
      End      : End
      Home     : Home
      ←       : Left
      →       : Right
      ↑       : Up
      ↓       : Down
      \        : \\
      /        : \/
    修飾キーの表現
      altキー  : Alt+
      ctrlキー : Ctrl+
      shiftキー: Shift+
    
    例1.
    [
      {"Key": "A",        "Cmd": "Attr"},
      {"Key": "Del",      "Cmd": "min"},
      {"Key": "Shift+B",  "Cmd": "clipBoard"},
      ...
    ]
    
    例2.
    [
      {"Key": "A",  "Cmd": "Attr"},
      {"Key": "B",  "Cmd": "app", "App": ["S", "T", "E", "O", "D", 1, true]},
      {"Key": "Num1",  "Cmd": "kjmp", "Kjmp": ["S", "T", "D"]},
      ...
    ]

●ツールバー設定(Toolbar.json)書式
    CmdListに、Cmdを記載することで、ツールバーのカスタマイズが可能です。
    また、コマンド名は、Readme.mdのキー割り当ての表の名称欄を参照してください。
    Visible : ツールバーの表示  true-有効, false-無効(デフォルト)
    CmdList : ツールバーのコマンドをオブジェクトの配列として順番に記載
      Cmd : ツールバーに表示するコマンドを指定。ただし、""(空)はセパレーター
      App : Cmdに"app"を指定したときのみ有効で、アプリ情報を配列で指定
            ランチャーセットと同様に、[S, T, E (, O, D, F, P)]形式で指定
    
    例1.
      {
        "CmdList":[
          {"Cmd":"launcher"},
          {"Cmd":"newwindow"},
          {"Cmd":""},
          {"Cmd":"parentdir"},
          {"Cmd":"jump"},
          {"Cmd":"backward"},
          {"Cmd":"forward"},
          {"Cmd":""},
          {"Cmd":"copy"},
          {"Cmd":"move"},
          {"Cmd":"rename"},
          {"Cmd":"delete"},
          {"Cmd":"pack"},
          {"Cmd":"unpack"},
          {"Cmd":""},
          {"Cmd":"sort"},
          {"Cmd":"find"}
        ],
        "Visible":false    
      }

    例2.
      {
        "CmdList":[
          {"Cmd":"launcher"},
          {"Cmd":"app", "App":["S", "T", "E", "O", "D", 1, true]}
        ],
        "Visible":false    
      }

●内蔵テキストビュワー設定(TextView.json)書式
    {
        "FontName"      : 内蔵テキストビュワーのフォント名
        "FontSize"      : 内蔵テキストビュワーのフォントサイズ
        "ExtType": [      拡張子別設定
          {"Ext": "pas",   "Tab": 2},  pasファイルのタブ幅を2文字に設定
          {"Ext": "c,cpp", "Tab": 4},  c, cppファイルのタブ幅を4文字に設定
          {"Ext": "*",     "Tab": 8},  それ以外のファイルのタブ幅を8文字に設定
        ],
    }
