対応しているエスケープシーケンス
ターミナルの中で動くプログラムが送るOSC(Operating System Command)のうち、sshcが受け取って動くものの一覧です。画面の描画と大半のシーケンスはブラウザのxterm.jsが受け持ち、sshcはタイトル、通知、作業フォルダ、クリップボードなどを足しています。受け取る所がsshcエンジンのものは、どのブラウザでも開いていないセッションでも効きます。
OSC
| 番号 | 内容 | 受け取る所 | 説明 |
|---|---|---|---|
| 0、1、2 | タイトル | sshcエンジン | ペイン名、セッション一覧、コマンド検索の候補の名前になります。制御文字を取り除き、64文字までです。1(アイコン名)もタイトルとして扱います。タイトルと通知 |
| 4、104 | 色番号の色を変える・戻す | xterm.js | |
| 7 | 作業フォルダ(file://ホスト/パス) | sshcエンジン、ブラウザ | 開き直すときの場所、相対パスのプレビュー、SFTPで開く操作に使います |
| 8 | ハイパーリンク | ブラウザ | 表示の文字が行き先と違うアドレスのときは、すぐには開かず、行き先を表示したメニューを開きます |
| 9 | 通知(iTerm2形式) | sshcエンジン | 数字と;で始まるもの(ConEmuの命令)は通知にしません |
| 9;4 | 進み具合(ConEmu形式) | sshcエンジン、ブラウザ | ペインの見出しに線、セッション一覧の行に輪で出します |
| 9;9 | 作業フォルダ(ConEmu形式) | ブラウザ | WindowsのPowerShellとcmd向け。OSC 7と同じように使います |
| 10、11、12、110、111、112 | 文字・背景・カーソルの色の設定、問い合わせ、戻す | xterm.js | |
| 52 | クリップボードへの書き込み | ブラウザ | 既定では無効です。読み取りの問い合わせ(?)には答えません |
| 99 | 通知(kitty形式) | sshcエンジン | 分割して送る通知と、base64の本文に対応します |
| 133 | シェル統合(A・B・C・D) | sshcエンジン、ブラウザ | コマンドと出力の左の線(Dの終了コードで色を変える)、上に残るコマンドの見出し、スクロールバーの印、30秒以上かかったコマンドの終わりの通知、プロンプトのクリックでカーソルを動かす操作に使います |
| 7742 | コマンドの時刻(7742;C;Unixミリ秒、7742;D;Unixミリ秒) | ブラウザ | sshcエンジンが、シェルが送ったOSC 133のCとDを見た時刻を、出力のあとに足すものです。プログラムが送るものではありません。コマンドを始めた時刻とかかった時間に使います |
| 777 | 通知(rxvt形式、notify;タイトル;本文) | sshcエンジン | |
| 1337 | iTerm2のインライン画像(File=) | ブラウザ | PNG、JPEG、GIFを表示します |
| 5522 | Kitty clipboard protocol | ブラウザ | 書き込みは、OSC 52を有効にしているときだけ受け付け、text/plain、text/html、image/pngをクリップボードへ入れます。読み取りは断り、貼り付けの知らせ(mode 5522)で渡した一度きりのパスワードを付けたときだけ、貼り付けた中身を渡します |
| 7501 | プログラムの状態(idle、working、blocked、done、error) | sshcエンジン、ブラウザ | セッション一覧の行の点と2行目に出します。タイトルと通知。問い合わせ(?)に答え、セッションごとに状態を記録します。シェルのプロンプト(OSC 133のA)が出たときとシェルが替わったときにworkingとblockedを消し、RIS(ESC c)ですべて消します。titleとmsgは制御文字を含むと受け取らず、書式の文字(文字の向きの指定など)を取り除きます |
通知(9、99、777)は4096バイトを超えると、初めの部分だけを使います。未読の印、ブラウザ通知、通知音の出方はタイトルと通知にあります。
次のOSCは受け取りません。
- 52の読み取り(クリップボードの中身をプログラムへ渡すこと)
- 1337のうち
File=以外(SetUserVarなど) - 5522の、貼り付け以外の読み取りとprimary selection
OSC以外
| シーケンス | 内容 | 説明 |
|---|---|---|
| DCS(Sixel) | 画像 | 画像と文字幅 |
APC G(kittyの画像形式) | 画像 | データとして送られた画像だけを表示します |
| Kitty keyboard protocol | キーボード | 問い合わせと、要求に応じた切り替えに対応します |
| mode 5522(貼り付けの知らせ) | 貼り付け | プログラムが有効にしていると、貼り付けたときに文字を打ち込まず、貼り付けた中身の形(text/plain、image/pngなど)の一覧と一度きりのパスワードを知らせます |
DECSSDT(CSI Ps $ ~)、DECSASD(CSI Ps $ }) | ステータス行 | VT320のステータス行です。プログラムが書く行(DECSSDT 2)をターミナルの下に1行で表示し、DECSASD 1のあとの出力をそこへ書きます。表示している間は、プログラムへ伝える行数が1つ減ります。ターミナルが状態を出す行(DECSSDT 1)は表示しません |
| mode 2027(書記素クラスタ) | 文字幅 | プログラムが有効にしている間、ZWJでつないだ絵文字や国旗などを1つの文字として2マスに描きます。画像と文字幅 |
mode 2033、CSI ? 998 n(visibility reports) | 見えているかの知らせ | sshcエンジンが答えます。どこかのブラウザがターミナルを表示していれば見えている、どれも表示していなければ見えていないと知らせます |
そのほかのCSIやモード(マウス、bracketed paste、代替画面など)は、xterm.jsの対応表のとおりです。