Space、Project、Thread
ドキュメント作成中
一部の内容はまだ不完全な場合があります。
ThinkTerm はすべての端末を 3 つの層の下に整理します。Space は作業のまとまり、Project はその中のフォルダ、Thread は Project の中に保存されたタブと分割ペインの並びです。サイドバーには一度に 1 つの Space が表示され、その下に Project、さらにその下に Thread が並びます。
3 つの層
| 層 | 何か | 最初にあるもの |
|---|---|---|
| Space | 作業のまとまり。このマシンか ThinkTerm Connect サーバーに置かれ、サーバーに置かれたものはそのサーバーにつないだすべてのデバイスから見えます。Space にはノートの Vault を 1 つ結び付けられ、その中の Project が共有します。 | Default |
| Project | フォルダ。追加したときにフォルダ名が付き、その中で開く新しい端末はそこから始まります。 | ~ にある Home |
| Thread | 名前を付けて保存されたタブと分割ペイン。 | main |
Default は名前を変えられますが削除はできないので、ウィンドウには必ず行き先があります。新しい Space もすべて同じ形で始まります。~ にある Home Project と、その中の main Thread です。
新しい Space は Space 2、Space 3 と、新しい Thread は Thread 2、Thread 3 と、すでにある数の続きから名前が付きます。1 つの Project の中で 2 つの Thread が同じ名前を持つことはできません。同じ Project にある名前を付けると後ろに数字が足され、review 2 のようになります。
1 つのウィンドウに 1 つの Space
1 つのウィンドウは 1 つの Space を表示し、1 つの Space を表示するのも 1 つのウィンドウだけです。別のウィンドウで開いている Space は Space メニューに my-space(使用中) と表示され、そのウィンドウが別の Space に移るか閉じるまで選べません。
新しいウィンドウは、ほかのウィンドウが使っていなければ最後に使ったローカルの Space を、そうでなければ最初の空いているローカルの Space を取り、どちらもなければ新しく作ります。サーバー上の Space で開くことはありません。そちらは Space メニューやリモートホストから意図して開くものです。
サイドバー
サイドバーの一番上は Space ボタンです。今の Space の名前が表示され、横のアイコンはサーバーに接続している間はスピナーに、切断されているときは警告の印に変わります。クリックすると Space メニューが開きます。その下には、今いる Project に Thread を 1 つ加える 新しいセッション ボタンと、通知のベルがあります。
その下に、ピン留めしたものがあれば ピン留め の欄、そして ワークスペース の見出しが続き、見出しの + で Project を加えます。各 Project の行には新しい Thread 用の + と、Thread を畳む山形の印があります。
一番下には 設定 と 3 つのボタンがあります。
| ボタン | 開くもの |
|---|---|
ライブ概要 | 生きている Thread をすべてカードで並べる Live Overview — ウィンドウ を参照 |
リモートホスト | ホスト帳 — リモート を参照 |
スレッドを検索 | コマンドパレットの スレッドを検索 の一覧 |
スレッドを検索 は、すべての Space のすべての Thread を、属する Project の名前とパスの下に並べます。ピン留めしたものと最近使ったものが先頭です。サイドバーは 1 つの Space しか見せず、アーカイブした Project も出しませんが、この一覧はどちらの制限もないので、どこにある Thread にもいちばん早くたどり着けます。アーカイブした Project の Thread は最後に並び、(アーカイブ済み) と付きます。
Space メニュー

| 項目 | 働き |
|---|---|
| ローカルの各 Space | このウィンドウをその Space に切り替えます。今の Space にはチェックが付きます。 |
| サーバー名とその下の Space | ThinkTerm Connect サーバーごとに 1 つの見出しが付き、(接続中…)、(再接続中…)、(切断) のいずれかの状態を示し、その下にそのサーバーの Space が並びます |
このサーバーに新しいスペース | サーバーの見出しの下にあり、そのサーバーに Space を作ります |
リモートホストを追加… | 新しいホスト用にホストの編集画面を開きます |
新しいスペース | ローカルに Space を作り、そこへ切り替えます |
「my-space」の名前を変更… | 今の Space の名前をその場で編集します |
「my-space」を削除 | 今のローカルの Space を削除します — 削除 を参照 |
「my-space」を削除/切断 | サーバー上の Space で、手放す 3 通りの方法 — 削除 を参照 |
別のスペースを削除/切断 | Default でも別のウィンドウで開いてもいない、ほかの Space に同じことをします |
作成
Space。 新しいスペース は Space を作り、ウィンドウをそこへ切り替え、名前を編集できる状態にするので、すぐに名前を付けられます。サーバーの見出しの下の このサーバーに新しいスペース は、Space をそのサーバー上に作ります。そのサーバーにつないでいるすべてのデバイスに、その Space が現れます。サーバーの名前が付いた Project と main Thread で始まります。
Project。 ワークスペース の横の + です。ローカルの Space ではシステムのフォルダ選択画面が開きます。この Space ですでに Project になっているフォルダを選ぶと、2 つ目を作るのではなくその Project が開き、アーカイブしてあれば元に戻ります。サーバー上の Space には選ぶべきローカルのフォルダがないので、ThinkTerm が知っているそのサーバーのディレクトリ — 端末がいる場所、ほかの Project のパス、~ — が一覧になります。文字を打って絞り込むことも、~/my-project や /srv/app のようなパスを直接打つこともできます。
Thread。 サイドバー上部の 新しいセッション、Project の行の +、または Project メニューの 新しいセッション です。端末は Project のフォルダで開きます。
名前の変更
プロジェクト名を変更…、セッション名を変更…、「my-space」の名前を変更… は、どれもサイドバーで名前が表示されている場所でそのまま編集します。Enter で新しい名前を確定し、Esc で取りやめ、ほかの場所をクリックすると確定します。空のままの名前では何も変わりません。
Project の名前を変えても、変わるのはサイドバーでの呼び名だけです。ディスク上のフォルダの名前はそのままです。
Project メニュー
Project の行を右クリックします。
| 項目 | 働き |
|---|---|
プロジェクト名を変更… | 名前をその場で編集します |
Finder に表示 | フォルダをファイルマネージャーで開きます。Windows では エクスプローラーに表示、Linux では フォルダーに表示 です |
フォルダへのアクセスを許可… | macOS のみ。ThinkTerm にそのフォルダへのアクセスを与えるフォルダ選択画面を開きます — 設定 を参照 |
新しいセッション | Thread を 1 つ加えます |
セッションを折りたたむ/展開 | Project の Thread を畳むか広げます。再起動しても覚えています |
プロジェクトをアーカイブ | Project をしまいます — Project のアーカイブ を参照 |
プロジェクトを削除 | Project とその Thread を削除します — 削除 を参照 |
Thread メニュー
Thread の行を右クリックします。行にポインタを置くと、右端にピンとごみ箱も現れます。
| 項目 | 働き |
|---|---|
セッションに接続 / セッションを切断 | 素の SSH または Mosh のホストの Thread でのみ — ツリーの中の SSH ホスト を参照 |
セッションをピン留め / セッションのピン留めを解除 | Thread を ピン留め に入れるか、そこから出します |
セッション名を変更… | 名前をその場で編集します |
セッションを削除 | Thread を削除し、その中で動いているものを終わらせます — 削除 を参照 |
未読にする | 次に開くまで Thread の点を灯します |
スペースに追加 | Thread をほかの Space にも表示します — Thread の参照 を参照 |
スペースへ移動 | Thread を別のローカルの Space へ移します |
ピン留め
ピン留めした Thread は Project の一覧を離れ、Space の一番上の ピン留め の欄に入ります。この欄には、その Space のすべての Project のピン留めした Thread が集まります。ピン留めを外すと、元の Project の下に戻ります。
ピン留めした Thread はドラッグで並べ替えられません。アーカイブした Project のピン留めは残りますが表示されず、Project を元に戻すと再び現れます。サーバー上の Space ではピン留めはサーバーに記録されるので、どのデバイスからも見えます。
未読と状態
Thread の各行には状態を示す印が付きます。実行中、要確認、完了 — 見ていない間に終わったもの — 、そして待機中のときは何も付きません。この状態の判定の仕組みは エージェント状態 にあります。
未読にする は、あとで戻ってくるための目印として Thread の点を灯します。Thread を開くとこれが消え、完了の印も一緒に消えます。どちらも保存されるので、再起動しても残っています。
サイドバー上部のベルは、すべての Space の中で完了したものと要確認のものを集め、それぞれを Thread — Project · Space の形で示します。1 つを選ぶとその Space に切り替わってその Thread が開き、一覧から消えます。ベルの小さな点は一覧が空でないことを示し、新しいものが届くと一度脈打ちます。ThinkTerm を起動した時点ですでに待っていたものでは脈打ちません。
Thread の参照
Thread は 1 つの Space の 1 つの Project に属しますが、ほかの Space にも表示できます。スペースに追加 には、まだその Thread を表示していないローカルの Space が並び、1 つを選ぶとそこに参照が加わります。ThinkTerm Connect サーバー上の Thread でも同じことができ、こうして 1 つの Space に複数のマシンの作業をまとめられます。
参照を持つ Space では、参照は Thread が属する Project の名前が付いたフォルダの中に置かれます。フォルダの見出しにポインタを置くと、どのマシンのどの Space から来たかが表示され、見出しの + はその元の Project に新しい Thread を作ります。参照を開くと、コピーではなく Thread そのものが開きます。
参照のメニューは短めです。参照は Thread を指すものであって、Thread そのものではないからです。
| 項目 | 働き |
|---|---|
セッション名を変更…、未読にする | どこにあっても Thread そのものに対して働きます |
このスペースから削除 | 参照を取り除きます。Thread には触れません。行の × も同じです。 |
スペースへ移動 | 参照を別の Space へ移します |
元のスペースへ移動 | Thread 本来の Space に切り替え、そこで開きます |
参照ではピン留めと削除は出てきません。行だけを扱っているように見えて、実際には Thread そのものを変えてしまうからです。
参照している Thread のマシンがオフラインの間も、参照は最後に見えた名前のまま、薄く表示されて残ります。そのマシンに再び届くようになり、もうその Thread がないとわかったとき、またはそのホストをリモートホストから削除したときに消えます。
参照はこのデバイスだけのものです。どのサーバーにも送られないので、同じサーバーにつないでいる別のデバイス、ブラウザ、TUI からは見えません。
Thread 自身の行にある スペースへ移動 は別物で、Thread の住まいを移します。Thread は元の Project を離れ、移動先の Space で今開いている Project に加わり、中で動いている端末も再起動されずに一緒に移ります。移せるのはローカルの Thread だけで、移動先もローカルの Project を持つローカルの Space に限られます。サーバー上の Thread はそのマシンで動いているので、参照することしかできません。
並べ替え
Project の行をドラッグすると、Space の中の Project の間で動かせます。参照のフォルダも同じ並びに加わります。Thread をドラッグすると自分の Project の中で動かせますが、別の Project へ落とすことはできません。
サーバー上の Space では、Project と Thread の並びはサーバーが持ち、すべてのデバイスで共有されます。参照のフォルダの位置は、参照そのものと同じくこのデバイスだけのものです。
スワイプで Space を切り替える
macOS では、サイドバーの上でトラックパッドを 2 本指で横にスワイプすると、前後の Space に移ります。一方のページが滑り出し、もう一方が滑り込みます。別のウィンドウで開いている Space と、サーバーが接続されていない Space は飛ばします。それらには Space メニューから入ります。
Project のアーカイブ
アーカイブは、Project を失わずに片付ける操作です。まずレイアウトが保存され、次に端末が閉じられ、行がサイドバーから消えます。Thread、そのレイアウト、ピン留めは残ります。
Project の中で何も動いていなければ、プロジェクトをアーカイブ はすぐに実行されます。何か動いていると、項目は プロジェクトをアーカイブ… になり、開くと閉じられる実行中のペインの数が示され(実行中のペイン 3 件を閉じます。レイアウトは保持されます)、アーカイブしてペインを閉じる を選ぶよう求められます。動いているプログラムを閉じることだけが、アーカイブの中で取り消せない部分です。
Space にはアーカイブしていない Project が少なくとも 1 つ残ります。最後の 1 つをアーカイブしようとすると、スペースには稼働中のプロジェクトが少なくとも 1 つ必要です。先に別のプロジェクトを復元または追加してください と表示されて断られます。
サーバー上の Space の Project は、サーバー上でアーカイブされます。そこでのセッションは終わり、どのデバイスからもアーカイブ済みに見えます。これにはサーバーが接続されている必要があります。
アーカイブした Project は 3 つの場所で見つかります。
設定 › アーカイブには、すべての Space のアーカイブした Project が新しい順にmy-space · セッション 3 件 · 今日にアーカイブの形で並びます。アーカイブ解除で元に戻します。削除は確認に変わり、もう一度クリックすると Project とその Thread が完全に削除されます。- コマンドパレットの
Show Archived Workspacesは、今の Space のアーカイブした Project を、もう一度実行するかウィンドウを閉じるまで、サイドバーの一番下に薄く表示します。その行をクリックしても何も起きません。右クリックするとアーカイブを解除か完全に削除…を選べ、後者は消える Thread の数を示してプロジェクトとセッションを削除を選ぶよう求めます。 - 同じフォルダをもう一度 Project として加える と、元に戻ります。
アーカイブを解除すると、Project は元の位置に戻ります。動いていたプログラムは戻りません。Thread は保存したレイアウトで開き直され、保存したディレクトリで新しいシェルが起動します。
コマンドパレットの Archive Active Workspace は、今いる Project を、動いているペインの数を示さずにすぐアーカイブします。
削除
| 対象 | 方法 | 終わるもの |
|---|---|---|
| Thread | セッションを削除、または行のごみ箱 | その中で動いているすべてのプログラム |
| Project | プロジェクトを削除 | すべての Thread と、その中で動いているものすべて。ディスク上のフォルダには触れません。 |
| ローカルの Space | 「my-space」を削除 | すべての Project と Thread、その中で動いているものすべて。ウィンドウは Default へ、Default がほかで開いていれば別の空いている Space へ移ります。 |
| サーバー上の Space | 「my-space」を削除/切断 | 選んだものによります — 下を参照 |
どれも確認を求めません。サイドバーで 2 段階目の操作が要るのは、ペインが動いている Project のアーカイブと、アーカイブした Project の削除だけです。あとで Project を取り戻すかもしれないなら、削除せずにアーカイブしてください。
いくつかの削除は、何も告げずに断られます。
- Project の最後の Thread — 代わりに Project を削除してください。端末が別のマシンで動いている Project は例外です。素の SSH や Mosh のホストの Project、またはサーバー上の Space の Project では、最後の Thread を削除すると Project ごと取り除かれ、それが Space で唯一の Project だった場合は
HomeProject が代わりに置かれます。 - Space の中で最後の、アーカイブしていない Project。
Defaultと、別のウィンドウで開いている Space。そもそもメニューに出てきません。
サーバー上の Space を手放す方法は 3 通りあり、区別しておく価値があります。
| 選択 | 起きること |
|---|---|
切断(サーバーは実行を継続) | このデバイスがその Space を表示しなくなります。サーバーは Space を持ち続け、中のセッションはすべて動き続け、ほかのデバイスからも見え続けます。このデバイスが次にそのサーバーにつないだときに戻ってきます。 |
サーバー上で削除(全デバイス) | Space をサーバーから削除し、すべてのデバイスから消します。中で動いているプログラムは終わらせません。それをするのは次の選択です。 |
削除してリモートセッションを終了 | サーバー上でその Space のセッションをすべて終わらせてから、あらゆる場所で削除します。サーバーが接続されている間だけ表示されます。 |
今の Space ではないサーバー上の Space については、別のスペースを削除/切断 は 1 つ目だけを 「my-space」を切断(サーバーは実行を継続) として示します。
Thread の唯一のペインで exit と打つと、閉じるのは端末であって Thread ではありません。ウィンドウはその Space で最近使った Thread へ、なければ新しい Thread へ移ります。
ツリーの中の SSH ホスト
リモートホストからホストを開いたときに何が加わるかは、接続方法によります — リモート を参照。
素の SSH または Mosh のホストは、今の Space の中に、ホストの名前が付いた Project として加わります。その Thread はすぐには接続せず、接続 ボタンのあるページで開きます。Mosh のホストはすぐに接続を始めます。セッションを切断 はセッションを終わらせて Thread を残し、セッションに接続 は新しいセッションを始めます。ThinkTerm がそのホストの OS を検出すると、Project にそのロゴが付きます。
ThinkTerm Connect のホストには専用の Space が用意され、最初はホストの名前が付き、同じ名前の Project と main Thread が入っています。1 台のサーバーは複数の Space を持てます。再び接続すると、このデバイスが最後に使った Space に着きます。サーバーが切断されている間は、Space ボタンの下に 再接続 の行が出ます。
切断中のリモート Space
サーバーに届かない間も、その上の Space を見ることはできますが、変えることはできません。Space、Project、Thread はサーバーのものであり、このデバイスにある写しは、先に編集してあとで突き合わせるためのものではないからです。名前の変更、作成、ピン留め、未読の印、並べ替え、アーカイブ、削除はすべて断られ、example-host は切断されています。再接続してからもう一度お試しください。 という通知が出ます。設定 › アーカイブ も同じように断り、このワークスペースは切断中のサーバー上にあります。先に再接続してください と表示します。
切断(サーバーは実行を継続) は切断中でも使えます。このデバイスしか変えないからです。
再起動のあと
この構造は、ワークスペースのデータディレクトリにある workspace_threads.json に保存されます — 設定 を参照。そこには、すべての Space、Project、Thread とその名前、並び、ピン留め、未読と完了の印、各 Space が最後に開いていた Thread、そしてローカルの各 Thread のレイアウト — タブと分割、各ペインのディレクトリ、タイトル、文字の大きさ — が記録されます。
何が戻るかは バックグラウンドのセッションサーバー によって決まります。
- オンのとき、ローカルの端末は一度も終わっていません。ThinkTerm はそれらにつなぎ直し、プログラムもスクロールバックも、離れたときのままです。
- オフのとき、終了した時点で端末は終わっています。Thread は保存したレイアウトで戻り、各ペインは保存したディレクトリで新しいシェルを起動します。プログラムとそのスクロールバックは戻りません。起動時にウィンドウが組み直すのは開く Thread だけで、ほかは開いたときに組み直されます。
サーバー上の Space の Thread は、ここにはレイアウトを持ちません。レイアウトとセッションはサーバーが持っており、再接続すればそのままの姿で戻ります。
Project のフォルダが開けないとき — 移動された、削除された、システムに拒否された — Thread はホームフォルダで黙って端末を開くのではなく、そのことを伝えるページを表示します。
ThinkTerm は workspace_threads.json の隣にコピーを残します。
- 起動するたびに、最初の保存の前に、それまでのファイルが
workspace_threads.json.bak1になり、古いものは順に.bak5まで送られます。 - ある保存でファイルの中身の大きな部分が失われそうなとき、そして起動するたびにセッションサーバーからの最初の更新を反映する前に、ファイルは
workspace_threads.shrink-<日付>-<時刻>.jsonのような日付入りの名前でコピーされ、種類ごとに新しい 10 個が残ります。 - 読めないファイルは
workspace_threads.unreadable-<時刻>.jsonにコピーされます。ThinkTerm はそのファイルなしで起動し、そのセッションの間は元のファイルに何も書き込まないので、そのセッションでの変更は保存されません。
これらのコピーは障害から立ち直るためのものです。ワークスペースを別のマシンへ移したり、自分で控えを取ったりするには 設定 › バックアップ を使います — 設定 を参照。
