Windows qscn backend: vertical scroll / scrollback does not work on iPad client
- Dominant language
- HTML
- Stars
- 48
- Forks
- 2
- Avg merge
- 1m
- Merged PRs (30d)
- 7
Description
## Feature request: enable vertical scroll / scrollback on the Windows (qscn) backend
### Environment
- **OS:** Windows 11, QuickTUI server v1, **qscn** session backend (installed by default on Windows)
- **Client:** iPad QuickTUI app (also reproduced in browser client)
### Symptom
On iPad, the **one-finger vertical swipe does nothing** — I can't scroll back through terminal history (long command output, agent logs, etc.). One-finger **horizontal** swipe (switch window/session) works fine. The in-app tutorial lists "1-finger vertical → Scroll the terminal with inertia," so the gesture itself is configured correctly.
### Root cause (from client code)
In the client bundle (`app.js`), the vertical scroll gesture handler starts with:
```js
if (e.supportsCopyMode === false || ...) return;
```
So when the connected session reports `copyMode` capability as `false`, the vertical scroll gesture is **silently dropped** — nothing is sent, nothing scrolls.
The **qscn** backend currently implements only session lifecycle (`new` / `attach` / `ls` / `kill` / `rename` / detach) and has **no copy-mode / scrollback / history support**, unlike the tmux backend on macOS/Linux. As a result the server reports `copyMode: false` for qscn sessions, and the client disables vertical scrolling.
### Impact
On Windows, users lose one of the advertised core features ("tmux windows, panes, **scrollback**, copy-mode") from the iPad/iPhone — exactly the device the app is designed for. Only horizontal (window-switch) gesture works.
### Suggested improvements
1. **Implement copy-mode / scrollback in qscn** — parity with the tmux backend.
2. **Or: client-side local scrollback fallback when `copyMode` is unsupported.** The client already buffers 200 lines locally (`terminalScrollbackLines = 200`) and runs on xterm.js, which supports local scrollback. Falling back to local buffer scrolling when `supportsCopyMode === false` would at least let users review the current session's output on Windows.
Thank you for the great product — this would make Windows + iPad remote work much more usable.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the vertical scroll handler in app.js and the qscn session backend, then compare its capabilities with the tmux backend's copy-mode support. Determine whether the work should add qscn scrollback or use the existing xterm.js local buffer when copyMode is unsupported. Done means vertical scrollback works for qscn sessions on the iPad and browser clients.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- backend, cli, mobile
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100