kitty 0.50、タイル外に置けるドック窓とログアウト後の復元
バージョン 0.50
要約
kitty 0.50 はドック窓をタイル計算の外に出し、ログアウト後もスクロールバックごと復元、Wayland ではタッチ操作にも対応した。
おすすめ- ソフト名
- kitty
- バージョン
- 0.50
- 料金
- 無料
- オープンソース
- オープンソース
- OS
- LinuxmacOS
- 更新日時
- 2026-11-10 23:00
kitty は Kovid Goyal が維持するターミナルエミュレータで、文字を OpenGL で描き、Linux と macOS、それに一部の BSD 系で動く。ライセンスは GPL-3.0 だ。分割、タブ、セッションの保存、独自の画像プロトコル、スクリプトから叩ける遠隔操作まで、すべてを端末の内側で済ませるのがこの道具の流儀で、外にウィンドウマネージャを足す前提がない。2026 年 11 月 3 日、版が 0.50 になった。
桟を格子の外へ出す
端末の中で開発用の画面を組もうとすると、側面の一覧と状態表示が欲しくなる。これまでは分割で足りた。ディレクトリの木、ログ、テストの小窓を同じ格子に詰める。ところがこの格子は全体で計算し直されるので、主領域が広がるほど端の列は数文字まで潰れる。
0.50 のドック窓は別の道を取る。ドック窓はタイル領域の外に置かれ、親ウィンドウかタブ全体の一辺に貼り付くだけで、タイル計算には入らない。ウィンドウ単位は launch --type=window-dock、タブ単位は launch --type=tab-dock で作り、--dock-edge で辺を、--dock-size で幅を決める。
寿命は二つで違う。ウィンドウ単位のドックは親に付いてタブを移り、親が閉じれば一緒に終わる。タブ単位のドックは、そのタブの最後の通常ウィンドウが閉じるまで残る。ドックの関係はセッションファイルにも書けるので、次にセッションを開けば桟は元の辺に戻る。
この変更が実際に変えるのは、側面の一覧がもう一区画ではないという点だ。区画は読んでいるものから場所を奪うが、ドックは作り付けの家具で、作業領域が伸び縮みしても幅を保つ。窓がたくさんある端末と、版面のある端末の違いはここにある。

ログアウトを越えて繋がる
新しい切り替え restore_session_after_logout が受け持つ。入れておくと、ログアウト、再起動、電源断のときに、各インスタンスの OS ウィンドウ、タブ、窓、巻き戻し内容までまとめて保存し、次の起動でそのまま並べ直す。macOS では保管した状態をキーチェーンの鍵で暗号化する。Linux ではデスクトップポータルの Inhibit を使い、システムが畳まれる前に書き終える時間を確保する。
セッションファイルの項目も増えた。os_window_position は OS ウィンドウの位置を記録し、save_as_session --os-window-geometry は大きさ、位置、状態をまとめて保存する。以前は窓の内側の並びまでしか戻せなかったが、いまは窓がどの画面にあったかまで戻せる。
タブが作業場所に近づく
小さな口が三つ開いた。launch --focus-existing は複製を開かずに既存のウィンドウかタブへ移る。launch --location by-title はタブを題名のアルファベット順に並べる。detach-window 命令と detach_window 動作は、窓を名前付きのタブへ送り、そのタブが無ければその場で作る。三つ合わせると、タブは「シェルを増やす場所」から、案件ごとに名前を付けて窓を往復させる枠になる。
だからといって文書の作業場所になったわけではないし、kitty もそう装わない。部品の狙いは、並べ方をスクリプトに任せることだ。案件のタブを開き、ログの窓をそこへ送り、すでに走っているものへ焦点を移す。遠隔操作はもともと自動化のための仕組みで、この三つの旗は言い訳を少し減らす。

タブの桟で忙しさが見える
Program Status Protocol はエスケープシーケンス OSC 7501 で運ばれる。プログラムが working、finished、failed、blocked のどれかを申告し、tab_title_template で tab.program_status を取れば、状態がタブの桟に出る。長いビルドの最中に窓を一つずつ開いて回る必要はなく、桟を一目見れば入力待ちで止まっているタブが分かる。
カーソルの後ろに粒を引く
独自シェーダーは 0.49 が敷いた道で、0.50 はその上に三つの軌跡を載せた。cursor-trail-railgun、cursor-trail-torpedo、cursor-trail-pixiedust である。軌跡を入れると、カーソルが動くたびに後ろへ粒が散る。シェーダーはキー割り当てからも起こせるようになり、その担当が新しい shader_event 動作だ。シェーダーの中で pointer_map() を定義すれば、クリックや選択がずれた座標ではなく、実際に描かれている文字に落ちる。
絵が配色に従う
画像プロトコルにインデックス色の形式が二つ増えた。画素の値が固定の色ではなく、端末の配色表の番号になる。配色を切り替えれば絵も一緒に変わり、画像を作り直す必要はない。

Wayland で指が使える
Wayland の詰め方が細かい。0.50 はタッチ画面に対応した。軽く触れればクリック、指を動かせば慣性つきで送り、押したまま引けば文字を選ぶ。GNOME のようなコンポジタではクライアント側の窓飾りが元の様式を真似し、題名欄の書体、文字の拡大率、ボタンの位置と押し方までデスクトップに合わせる。入力方式の候補窓は変換前の文字の先頭に固定され、打鍵のたびに飛ばなくなった。
細かいが毎日触る所
新しい項目 collapse_window_margins は、隣り合う窓の外側の余白を足し算ではなく統合にする。枠が揃い、間隔がようやく均等に見える。mouse_map は車輪も割り当てられるようになり、上下左右の四方向がそれぞれ一つのボタンとして数えられる。Ctrl を押しながら車輪で文字の大きさを変える、といった割り当てが設定一行で済む。罫線素片、カーソル、題名欄の枠の太さは文字の大きさに合わせて拡縮するので、文字を大きくしても線が髪の毛のように細らない。
直った所
0.50 は抜け道を一つ塞いだ。細工した要求を非同期要求の取り消しに偽装し、遠隔操作の合言葉を通り抜けられた。その一群の命令の解析も書き直した。action、send-key、set-colors、ls、run はこれまで項目を無視し、起きていない成功を報せ、不正な入力を黙って飲み込んでいた。いまは規則どおりに誤りを返し、応答の無い相手が一つあっても通路全体が詰まらない。記憶の安全では、設定の再読み込み時のヒープ緩衝域の溢れ、範囲外への書き込み、解放後の使用を直した。
速さも動いた。GPU のスプライトキャッシュの膨らみが遅くなり、input_delay が零でないときの CPU 使用も下がる。あわせて、太字斜体の記号が無関係な書体で描かれる件、ssh kitten がディレクトリを複製するときに権限を落とす件、ドラッグでディレクトリを自分の下位へ移してしまう件も直した。いずれもデータを実際に失う類の不具合である。
どこで動くか
kitty は Linux、macOS、そして BSD の一部を覆う。Windows は元から対応しておらず、WSL2 の中で Linux 版を動かす形になる。開発は Kovid Goyal が一人で進めており、更新の間隔は短い。0.49 が 9 月 21 日、0.50 はそれから一か月余りで来た。
0.50 の意味はシェーダー何本かではない。ドック窓が「並べ方」と「作り付けの桟」を別物に分けたことにある。端末を本気で作業場所にするなら、並べ直しに従わない窓を許さなければならない。ログアウト後の復元は、その考えを一度のセッションから、電源を切ってから入れるまでの間に広げる。