Tiling Window Manager
Split, focus, move, and swap tiles with fast key bindings or a click and drag. Your sessions live in the layout — refresh, disconnect, come back tomorrow, every tile comes back exactly as you left it.
Quick Start
Suwu opens with a single terminal tile. Use keyboard shortcuts or the mouse to split, rearrange, and manage your workspace. All layouts are persisted — close the browser, restart the server, your tiles stay.
Keyboard Shortcuts
Every window-manager shortcut is Alt-based, so it never collides with the shell and readline bindings inside a terminal tile. They also work from inside a focused terminal, an app tile, or an extension tile — the same list is always available with Alt+Shift+/.
| Action | Shortcut |
|---|---|
| Split right | Alt+Enter |
| Split below | Alt+Shift+Enter |
| Focus left / right / up / down | Alt+Arrow |
| Focus next / previous pane | Alt+J / Alt+K |
| Move a tile | Alt+M, then move and click |
| Swap with another tile | Alt+S, then click a tile |
| Toggle focus / fullscreen | Alt+F |
| Close tile | Alt+Q |
| Switch to space 1–9 | Ctrl+1…9 |
| Next / previous space | Ctrl+Tab / Ctrl+Shift+Tab |
| Show / hide the spaces bar | Alt+L |
| Open the app menu | Alt+/ |
| Show the shortcut list | Alt+Shift+/ |
| Copy selection / paste | Ctrl+Shift+C · Ctrl+V |
| Log out | Alt+Shift+L |
Mouse Controls
- Click a tile to focus it.
- Drag the grip in a tile's hover toolbar to move it — see Drag to Layout.
- Hover tools — the top-right corner of a tile reveals drag, swap, focus, move-to-space, and close.
- Header split buttons — split the focused tile left, up, down, or right without touching the mouse over the grid.
- Right-click a tile to open the context menu (split, close, change type).
- Drag the border between tiles to resize.
Drag to Layout
Moving a tile is one gesture, not four commands. Press the grip in the tile's hover toolbar (or press Alt+M for the keyboard-driven version) and drag over another tile: the target shows exactly where the tile will land, and the change is committed on release.
- Tile edge — the dragged tile becomes that half; the target takes the other. This splits, so a drop near an edge never leaves you with a tile the size of a postage stamp.
- Tile center — the two tiles swap places.
- Gutters and empty space — no drop, nothing changes.
- Esc cancels at any point, and so does releasing over no target.
The preview is the layout you will get, not a generic highlight, and the reflow animates into place. The old move left/right/up/down commands and their chevron buttons are gone — the drag covers all of them.
Alt+M enters the same mode without a mouse: a full-viewport surface catches the pointer over tile iframes, so you move to highlight a drop zone and click to commit. Alt+S still does a straight swap, with every tile highlighted at once.
Spaces
The workspace holds multiple spaces — separate layouts you switch between without losing tiles. Jump with Ctrl+number, cycle with Ctrl+Tab, or pick one from the header's space control. Spaces you have not touched for a while are hidden away by themselves, and Alt+L collapses the bar entirely when you want the grid to fill the window.
Layout Persistence
Your tile layout is saved server-side. This means:
- Refresh the page — tiles restore automatically.
- Disconnect and reconnect — same layout.
- Restart the
suwuserver — tiles and their shell sessions resume.
Each tile remembers its working directory and environment. You can set up a complex multi-pane workspace once and reuse it indefinitely.
Tile Types
Every tile can host different content. Right-click any tile and select Change type to switch, or add tiles from the App Menu in the header:
- Terminal — a full shell session (default).
- Code Explorer — a multi-tab editor over the server's files, with search and highlighted ranges.
- File Browser — navigate and download files.
- File Viewer — view files with syntax highlighting.
- Port Forward — TCP/UDP forwarding status.
- Dropbox — file upload/download.
- Folder Sync — mirror a server folder into a local one.
- DB Browser — query SQLite, MySQL, or PostgreSQL.
- REST Helper — build and send HTTP requests.
- Git Graph — visual branch history.
- Diff — side-by-side diffs.
- X Display — stream a remote X11 display.
- Extension — your own JavaScript app, if you have installed one.
The App Menu also decides which apps appear in the New App picker and in what order, and lets you save a tile as a Custom App with its own label, icon description, and pre-filled parameters — a one-click "restart the dev stack" tile, for example.
Where the Header Sits
The app header is movable. In Settings → Header you can dock it to the top (default), bottom, left, or right edge. On a side, the bar becomes a narrow vertical strip: labels read at 90° and every icon stays upright, and the space and split menus open inward. The notification panel follows the header to the opposite side so it never covers it.
The choice is stored per browser, so you can keep a left-hand rail on a wide monitor and a top bar on a laptop.