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.

Prefer the keyboard?

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 suwu server — tiles and their shell sessions resume.
Tip

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.