19 lines
1.0 KiB
Markdown
19 lines
1.0 KiB
Markdown
# Shell Window Feature
|
||
|
||
**Purpose**: Interactive pseudo‑terminal session inside a krate.
|
||
|
||
**Implementation**:
|
||
- Front‑end component uses **xterm.js** (or equivalent) for terminal UI.
|
||
- Backend opens a WebSocket that proxies to `kubectl exec -it <pod> -n <ns> -- sh` (or the container's default shell).
|
||
- Input handling: when the mouse is over the shell window, all keypresses are forwarded to the terminal; space does not trigger Spotlight.
|
||
- Scroll wheel over the terminal scrolls its content; `Ctrl/⌘+scroll` still zooms the canvas.
|
||
- No PTY needed on the server side beyond the exec stream; the WebSocket carries stdin/stdout/stderr.
|
||
|
||
**Interaction**:
|
||
- Click a result in Spotlight or Collection and press **Alt+S** to open a Shell window in a new/existing Krate.
|
||
- Resize like any Detail Window; sibling windows resize proportionally.
|
||
- Double‑click header or press `z` to maximize to the viewport.
|
||
- The shell window obeys the global pan/zoom shortcuts (Space‑drag pans, Ctrl‑scroll zooms) when the cursor is inside it.
|
||
|
||
**State** (`Window` type `shell`).
|