ターミナル
DR-Terminal は Kotlin でゼロから書かれた独自の VT100/xterm エミュレーターを搭載しています。WebView は使いません。xterm-256color、代替バッファ(vim/less/nano)、OSC 52 クリップボード、フォーカスイベント、マウストラッキング(mc、htop)に対応します。
キーボードとショートカット
| ショートカット | 動作 |
|---|---|
| Ctrl+C — テキスト選択時 | 選択範囲をクリップボードにコピーします。選択がない場合は通常の SIGINT がリモートプロセスに届きます。 |
| Enter — テキスト選択時 | 代替のコピーショートカット(Ctrl のないキーボードで便利)。 |
| 右クリック / コピーメニュー | 選択後のコンテキストメニュー — 常に利用できます。 |
| Ctrl+V | 貼り付け。複数行のクリップボード内容では複数行貼り付けの確認ダイアログが開きます。 |
| Shift+Insert | 貼り付け — X11/Windows でおなじみの操作です。単独の Insert は引き続きシェルに届きます。 |
| Shift+Delete | 選択範囲をコピーして選択を解除します(切り取りのような動作)。 |
| Ctrl+F | 検索バーを開きます(出力内の検索を参照)。このキー入力がシェルに届くことはありません。 |
| Ctrl+Shift+S | スニペットピッカーを開きます(スニペットを参照)。単独の Ctrl+S は引き続きシェルに届きます。 |
| ショートカットバー | esc、ctrl、tab、矢印、よく使うシェル記号、snip キー、⌨ トグル — モバイルで便利です。ファンクションキーとナビゲーションキーは、DevOps キーボードの fn レイヤーと任意の F キー行にあります。 |
| フォントサイズ | ターミナルメニューの A- / A+ ステッパー。範囲は 8〜32 pt です。 |
macOS では、上記で Ctrl と書かれている箇所は Cmd でも動作します。Cmd+C、Cmd+V、Cmd+F、Cmd+Shift+S は Ctrl 版と同じように振る舞います。
DevOps キーボード(Android・iOS)
システムのキーボードはターミナルでは邪魔になります。自動修正が sudo -rf を壊し、シェル記号は 2 レイヤー奥に隠れ、非ラテン系の配列にはそもそも ASCII がないことも。DR-Terminal はアプリ自身が描画する常時 ASCII の DevOps キーボード を搭載し、キーをターミナルへ直接送ります — システムの IME は一切関与しません。
- 縦向き — 画面下部の古典的なドック。
- 横向き — スプリットモード:左右の端に親指サイズのクラスターを 2 つ、半透明のガラスとしてターミナルの 上に 描画。全幅がそのままセッションを表示し続けます。
レイヤー:小文字、大文字(Shift)、数字、シェル記号(| ~ $ & ' " \ …`)、fn/nav レイヤー(F1–F12、矢印、Home/End、PgUp/PgDn)。Ctrl/Alt/Shift はスティッキー:タップで次のキーに対して有効化、ダブルタップでロック。⌫・矢印・スペースは長押しでリピート。隅に小さな印のあるキーは長押しで代替文字を入力します。
- 上部の グラバー(ピル) で FULL ↔ MINI を切り替え — MINI は htop やログ閲覧向けに必要最小限(Esc、Tab、Ctrl、矢印、⌫、↵)だけを残します。横向きは独自の状態を記憶し、MINI で開始します。
- グラバーをドラッグ してクラスターを移動;最寄りの端にスナップします。片方のクラスターをもう片方に重ねると 合体 して 1 つのフローティングキーボードに;分割ピルで再び分かれます。
- キーの上を 下にスワイプ するとキーボードが隠れ、フローティングの ⌨ ボタンで戻ります。⌨ キーは、ダイアクリティカルマークや絵文字が必要なときにシステムキーボードへ切り替えます。
設定 → キーボード(モバイル):デフォルトのキーボード — Auto はシステムロケールが非ラテン系(アラビア語、ヘブライ語、CJK…)なら DevOps キーボードを、それ以外ではシステム IME を選択;配列 — Auto/QWERTY/QWERTZ/AZERTY;不透明度 と キーサイズ のスライダー;Fキーを表示 — キーボードの上に常時表示される F1〜F10 の行で、mc や htop の作業に便利です。キーボード設定はすべて、スマートフォンやタブレットからエクスポートした暗号化構成バックアップで持ち運べます。
選択、コピー、貼り付け
デスクトップ:マウスでドラッグして選択します。ダブルクリックで単語、トリプルクリックで行を選択します。上記のショートカットでリリースするとコピーされ、右クリックでメニューが開きます。
Android と iOS:ターミナル内のどこでも 長押し して選択を開始し、ドラッグして範囲を広げ、離すとコピーされます。テキストはシステムのクリップボードに入ります。短いタッチは引き続きシェルへタップが届き、スワイプは引き続き履歴をスクロールするので、いつものジェスチャーはそのまま使えます。
- ターミナル上部バーの 貼り付けアイコン — 1 タップでカーソル位置にクリップボードを貼り付けます。クリップボードが空の場合は中立的な 貼り付けるものがありません というスナックバーが表示されます。
- ターミナルメニューの テキストを選択 — オフにするまで選択モードを維持するチェックボックスです。オンの間は、スクロールやシェルへのタップではなく、すべてのドラッグが選択になります。
- プロンプト行を長押し(カーソルがある行で、かつ履歴へスクロールしていない場合のみ)すると、選択を開始する代わりに貼り付けます。入力している場所にクリップボードを落としたいだけのときに自然な動作です。
OSC 52 により、リモートプログラム(tmux、vim、fzf)がエスケープシーケンスを通じてシステムのクリップボードへコピーできます。双方向です。
複数行の貼り付け:クリップボードに改行が含まれる場合、複数行貼り付けのプレビューダイアログが表示されます。確認していないコマンドの貼り付けを防ぎます。
スクロールバックと履歴
スクロールバックバッファは最大 1000 行を保持します。ホイールまたはタッチドラッグでスクロールします。カーソルは正しくビューポートから外れ(xterm の挙動)、選択範囲はテキストと一緒にスクロールします。
履歴をクリア はサイドバーの履歴タブにあり、その接続に保存された コマンド 履歴を消去します。画面上のスクロールバックには影響しません。
ターミナルの右端に スクロールバー が表示されます(デスクトップ)。マウスでつかんで履歴をスクロールできます。Android と iOS はタッチでスクロールします。ホイールスクロール速度 は設定 → ターミナルで設定できます(ホイール 1 回あたりの行数)。
代替バッファ(フルスクリーンアプリ)
vim、less、nano、htop、mc のようなプログラムは 代替バッファ に切り替わります。終了時に消える別画面で、メインのスクロールバックを汚しません。
出力内の検索
Ctrl+F(macOS では Cmd+F)を押すと 検索バー が開きます。スクロールバックをリアルタイムで検索し、すべての一致をハイライトして順に移動します。ハイライトはレンダリング時のオーバーレイであり、SSH ストリームに何かを注入することはありません。
フォント、テーマ、ハイライト
- フォントサイズ — ターミナルメニューの A-/A+ ステッパー、または 設定 → 外観 のスライダー。範囲は 8〜32 pt です。サイドバーのテーマタブにある カスタム フォントでは、さらにエイリアスごとに 6〜72 pt を指定できます。
- UI テーマ — ライト / ダーク / システム(ターミナルではなくアプリ全体)。
- ターミナルテーマ — 下の テーマ セクションを参照。テーマはエイリアスごとです。
- ハイライトルール — 設定 → ターミナル → 出力ハイライト。正規表現 + 色を追加します。例:
ERRORを赤で表示します。
スニペット
スニペット は、どのセッションにも送り込める再利用可能なコマンドテンプレートです。テンプレートには型付きのプレースホルダーを埋め込めます — ping -c {count:int=4} {host:ip} — このようなスニペットを実行すると、値を尋ねる小さなダイアログが開きます(int、ip、bool、enum のプレースホルダーには、それぞれに合った入力欄と検証が用意されます)。プレースホルダーのないスニペットはそのまま実行されます。すぐに実行 は、Enter まで送信するのか、それともコマンドをプロンプトに置くだけにして編集できるようにするのかを決めます。
実行方法:
- Ctrl+Shift+S(macOS では Cmd+Shift+S) — 入力しながら絞り込めるピッカーです。Enter で最初の一致を実行します。
- ターミナルメニューの スニペット — キーボードなしで同じピッカーを開きます。
- ターミナルサイドバーの スニペットタブ — 最近使ったものが先頭に並び、クリック 1 回で実行できます。エディターへのショートカットもあります。
- モバイルのショートカットバーと DevOps キーボードに固定された snip キー。ドック表示の DevOps キーボードでは、スニペットの タイルレイヤー も使えます。最近のスニペットを画面の見える範囲にまとめた、タップしやすいグリッドです。
各スニペットには 表示対象 があります。すべてのホスト、一つの グループ、または単一の ホスト です。任意の システム フィルター(Debian、RHEL、Arch、macOS…)でさらに絞り込めるため、apt のスニペットは Debian 系と検出されたホストにだけ表示されます。検出はログイン時の調査によるものです(下の ホストインサイト を参照)。利用可能な場合のみ表示 を使うと、そのコマンドがホストに存在しないと確認された場合にスニペットが隠れます。SSH ホストを持たないセッション(ローカル、シリアル、Telnet)にはグローバルなスニペットのみが表示されます。
スニペットは 設定 → ターミナル → スニペット で管理します。追加、編集、複製、削除に加え、表示対象、システム、すぐに実行フラグを設定できます。100 を超える既成のスニペットからなる同梱カタログ — システム別(Debian、RHEL、Arch、Alpine、SUSE、BSD、macOS)に加えて Docker、ネットワーク、ストレージ、ツールのセット — が初回起動時に登録されます。自分のスニペットと同じように編集・削除できます。
コマンド履歴とオートコンプリート
保存した各接続は、自身のコマンド履歴を記憶します(履歴を保存 がオンの場合)。上矢印で過去のコマンドを呼び出せ、オートコンプリートフィールドはサーバー上で利用できるコマンド名を提示します。これはシェルによるライブ補完であり、入力したコマンドの履歴とは別物です。
ホストインサイト(ライブ情報)
SSH セッションでログインすると、アプリは静かにホストを調べ — OS 名、CPU のモデルとコア数 — ライブ情報のポーリングを開始します。ロードアベレージ、メモリ、スワップ、マウントごとのディスク使用量で、それぞれ使用率バーが描かれ、75% を超えると橙色、90% を超えると赤色になります。
- ターミナルサイドバーの ホストタブ(一番左のタブで、SSH セッションでは既定のタブ)にすべてが一目で表示されます。
- 同じ項目は 接続情報 ダイアログにも表示されます。
- 設定 → ターミナル → リソース監視(CPU/RAM/ディスク) でポーリングのオン/オフをグローバルに切り替え、更新間隔(5〜300 秒)を設定します。接続フォームではホストごとに間隔を上書きでき、その ログイン時のシステムチェック ドロップダウンで完全な調査を実行する頻度を選べます。接続ごと、1日1回、週1回、または無効です。
セッションタブ
すべてのセッション — SSH、SFTP、ローカル、シリアル、Telnet — はタブに収まります。タブ、またはアクティブセッション一覧のカードを長押し(モバイル)または右クリック(デスクトップ)すると、そのメニューが開きます。名前を変更、接続情報、セッションを再起動、タブを閉じる です。セッションを再起動 は接続を破棄してゼロから接続し直しつつ、タブは維持します。サーバーの再起動後に便利です。リモートセッションが切断されると、ターミナルメニューに 再接続 の項目も現れ、その場で接続を張り直せます(ローカルターミナルにはありません。新しく開いてください)。
サイドバー(右パネル) — ホスト / 履歴 / 補完 / スニペット / テーマ
ターミナルの右側(デスクトップ / タブレット)には、5 つのタブを持つ折りたたみ可能なパネルがあります。右端の矢印で開き、左端をドラッグしてサイズを変更します。状態は エイリアスごと です。保存した各接続が自身のタブと幅を記憶します。
- ホスト — SSH セッションでの既定のタブです。検出されたシステム、CPU、ライブ情報を表示します。上の ホストインサイト を参照してください。
- 履歴 — 最近入力したコマンド。クリックするとコマンドがターミナルに入力されます。隣の トグルは Enter で自動送信するかどうかを決めます。履歴をクリア もここにあります。
- 補完 — サーバーのシェル補完によるコマンド名のリアルタイム候補。エイリアスごとに ミュート できます(ベルアイコン)。
- スニペット — このホスト向けのスニペット。最近使ったものが先頭に並びます。上の スニペット を参照してください。
- テーマ — ターミナルの外観。下のセクションを参照してください。
テーマ — ターミナルテーマ(435 種)
テーマは エイリアスごと です。各接続が独自の背景、前景、16 色 ANSI パレット(ls --color が使うのと同じインデックス:標準 0〜7 + 明色 8〜15)を持ちます。
- 435 種のテーマの組み込みカタログ — 検索… フィールドで名前により絞り込めます。各行は背景、前景、16 色の見本ストリップを表示します。クリックすると即座にテーマが適用されます。
- カスタム(このエイリアス) — デスクトップではサイドバーで、フォント、背景、前景、16 個の ANSI スロットを手動編集することもできます。各スロットには個別のリセット(⟲)があり、パレット全体には別のリセットがあります。
ls --colorの青いディレクトリ は ANSI 4(BLUE)または 12(BRIGHT_BLUE)です。変更するには別のテーマを選ぶか、その 2 つの見本を編集してください。
Android と iOS:デスクトップのサイドバー全体が、ターミナル上部バーの 1 つのパレットアイコン に置き換わります。タップすると、同じ 435 種のテーマカタログがボトムシートで開き、検索可能で見本のライブプレビューが表示されます。行をタップするとテーマが適用されてシートが閉じ、結果がすぐに見られます。上部の リセット ボタンはすべての上書きを破棄し、エイリアスを既定値に戻します。
435 種の組み込みテーマは、オープンソースの edcet/terminal-themes コレクション(MIT)に由来します。