Skip to content

対応しているエスケープシーケンス ​

ターミナルの中で動くプログラムが送る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エンジン
1337iTerm2のインライン画像(File=)ブラウザPNG、JPEG、GIFを表示します
5522Kitty 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の対応表のとおりです。