前言¶
在 DSH 裏做開發時,經常會遇到需要查看 shell 輸出、執行交互式命令或運行全屏終端程序的情況。如果只需要靜態文本,普通輸出面板可能已經夠用;如果希望保留 ANSI 顏色、光標移動和 256 色輸出,就需要一個真實 PTY 終端。dsh-plugin-terminal 就是面向 DSH Web 的這類插件。
下面介紹它的功能、安裝方式和需要注意的限制。
這是什麼¶
dsh-plugin-terminal 是一個 DSH Web 插件:在 VS Code 風格的可摺疊底部面板中提供真實 PTY 終端。它由 host PTY + WebSocket + xterm.js 組成,插件 owner 是 mervyn-teo,許可證爲 MIT。
核心功能¶
- 提供真實交互式終端,通過 PTY 運行默認 shell:Windows 默認
PowerShell,其他環境默認$SHELL或/bin/bash。 - 使用
xterm.js渲染 ANSI 顏色、光標移動、全屏應用和 256 色輸出。 - 提供 VS Code 風格可摺疊底部面板,包含頭部、頂部可拖拽調整高度、重啓按鈕和摺疊開關。
- 支持
Ctrl+`切換面板。 - 面板尺寸變化時,PTY 會重新流式佈局。
- 在
Settings → Plugins中提供 Terminal 設置卡片,可配置主題、字體大小、最大高度、不透明度、初始摺疊、shell 和工作目錄。 xterm.js無法加載時,提供純流式視圖 fallback。
安裝與啓用¶
先確認 DSH 已掛載 subprocess 和 webServer 服務。安裝插件後,再重啓 dsh web,因爲 host bundles 在啓動時加載。
dsh plugin --profile web add github:mervyn-teo/dsh-plugin-terminal
典型用法¶
1、在 DSH Web 中使用 Ctrl + ` 切換終端面板。
2、打開 Settings → Plugins → Terminal,調整主題、字體大小、最大高度、不透明度、初始摺疊、shell 和工作目錄。
3、主題、不透明度、字體大小、最大高度會立即應用;shell 和工作目錄在下次打開終端時應用。
4、Windows 默認使用 powershell.exe。如需 Command Prompt,可設置 shell 爲 cmd.exe 且 shellArgs: []:
shell: cmd.exe
shellArgs: []
適用場景與注意¶
適合需要在 DSH Web 中直接操作真實 shell 的 DSH 用戶和插件開發者。使用前注意:
- 插件以當前
dsh進程權限運行,安裝前應檢查源碼與許可證。 - 終端會話是
process-local,不會在 harness 重啓後保留。 - WebSocket 路由像 Web GUI 一樣綁定
loopback。 - Windows 需要 Windows 構建的
node-pty(conpty/winpty)。 - 首次渲染
xterm.js需要訪問jsDelivrCDN;離線時仍可使用純流式 fallback。
結尾¶
dsh-plugin-terminal 的價值在於把真實 PTY 終端放進 DSH Web 的底部面板,提供可摺疊面板、終端渲染、即時尺寸調整和終端設置卡片。GitHub 倉庫:mervyn-teo/dsh-plugin-terminal。