feat(desktop): add opt-in full-screen window-manager surface#266
Conversation
|
[REBASE NOTIFIER] Hi @yanmxa! This PR has merge conflicts. The How to fix thisresolve the conflicts — Fix the merge conflicts locally, then push the resolved changes. After fixing:
|
|
[REBASE NOTIFIER] Hi @yanmxa! This PR has merge conflicts. The How to fix thisresolve the conflicts — Fix the merge conflicts locally, then push the resolved changes. After fixing:
|
2 similar comments
|
[REBASE NOTIFIER] Hi @yanmxa! This PR has merge conflicts. The How to fix thisresolve the conflicts — Fix the merge conflicts locally, then push the resolved changes. After fixing:
|
|
[REBASE NOTIFIER] Hi @yanmxa! This PR has merge conflicts. The How to fix thisresolve the conflicts — Fix the merge conflicts locally, then push the resolved changes. After fixing:
|
0d8a81d to
ab31087
Compare
Introduce a Surface enum (inline / desktop) and a new internal/app/desktop window manager (windows, layout, tiling) wired to the root model through desktop_surface.go. The seam owns the per-frame pane snapshot, the input bar, and key/mouse routing while the desktop is active; content is rendered by the model and handed over as strings, so adding a window is just adding a Pane. Inline scrollback stays the default. Also carries this branch's base bash interactive-hang changes (setsid detach, process-group teardown, non-interactive env nudges) that overlap with genai-io#264. Signed-off-by: Meng Yan <yanmxa@gmail.com>
ab31087 to
dd2f476
Compare
Add an opt-in full-screen "desktop" surface — an alt-screen window manager — alongside the default inline scrollback view.
internal/app/desktoppackage: window manager with a tiling layout.desktop_surface.gois the seam between the root model and the desktop: the model renders each pane's content to strings and hands it over at its assigned width, so adding a window is just adding a Pane. The desktop package never reaches into the model.