Desktop Workspace Manager

DeskScene

Your 12-pane trading layout won't fit the hotel laptop. This says what to give up, and why.

Free right now — no account, no card

Get DeskScene free Windows & Mac · one file, nothing to install

Preview

1 interface design, then a screenshot of it running. Drag, scroll or use the arrows.

Interface design DeskScene, 1 of 1
Screenshot DeskScene running on Windows today

Free while we’re in preview

Get DeskScene

Your 12-pane trading layout won't fit the hotel laptop. This says what to give up, and why.

The Mac button is for Apple Silicon. On an older Intel Mac, get this one instead.

One file, both ways. Double-click it for the window. Run the same file from a command prompt with arguments and it behaves as the command-line tool, because the engine is inside it. Nothing else to download and nothing to keep beside it.

Early preview. The window has been built and run, but not yet on a real Windows PC or Mac, so expect rough edges. The engine underneath it is fully tested.

  • One file — no installer
  • Runs on your machine, offline
  • Source code published below

Free while in preview. It isn’t signed yet, so Windows or macOS will ask you to confirm the first time you open it. At launch, DeskScene is included in every plan along with the rest of the range.

Degradation under constraint

WorkspaceForge computes exact rectangles from rules you wrote, and always succeeds because you told it precisely what to do. DeskScene does the opposite job. You describe panes with a priority, a minimum useful size, an ideal area, whether they can share a tab group, and whether they’re required at all costs. It decides what stays full size, what shrinks, what gets stacked behind tabs, and what gets dropped.

Every degradation comes with a reason in plain English: “dropped: at priority 84 it was the cheapest thing to lose, and after the kept panes were packed no free rectangle of 720x300 remained”.

advise tells you the smallest hardware change that would fix it, and it derives that rather than guessing. Candidate topologies are generated, sorted by pixels added, and the fit is genuinely re-run against each one. render draws the result as an SVG. compare scores two scenes on the same hardware.

What it isn’t

It has no idea what monitors you own. The display topology is JSON you write. No EDID, no xrandr, no EnumDisplayMonitors.

It also never moves a window. It computes rectangles and prints them. Feeding that plan to i3, yabai or FancyZones is your job, which is what --json is for.

Reading on the job itself

Advanced & technical details Command-line builds, source code, checksums and a recorded session — for developers and IT teams

A working command-line build of the fit optimiser: panes carry a priority, a minimum useful size and an ideal, and the optimiser decides what stays full, what shrinks, what shares a tab group and what has to go — then explains each decision in a sentence. It also works out the smallest hardware change that would let the whole scene fit, and verifies that answer by re-running the fit. The packer is a documented heuristic, not proven optimal; it plans placements rather than moving real windows.

Naming status

Working name only — brand verdict **AVOID** (Very High). Collision: DeskScene. Rename completely.

What it draws on

Existing paid software whose best ideas shaped this program: DisplayFusion Pro, Stardock Fences, Actual Window Manager, Stardock Start11.

Command line

There is nothing extra to install. The program you download is the command-line tool as well: give it arguments instead of double-clicking it and it runs as one, with its output on your terminal. The standalone builds below are the same engine on its own, for machines where you would rather not ship a window at all.

deskscene - degrade a multi-monitor scene onto the screens you actually have (Techlosoft Workspace Center)

USAGE
  deskscene fit      --scene <scene.json|preset> --displays <displays.json> [--out <file.svg>] [--json]
  deskscene compare  <sceneA> <sceneB> --displays <displays.json> [--json]
  deskscene advise   --scene <scene.json|preset> --displays <displays.json> [--json]
  deskscene render   --scene <scene.json|preset> --displays <displays.json> --out <file.svg> [--json]
  deskscene presets  [--json]
  deskscene help | -h | --help

COMMANDS
  fit        Decide the best realisable variant of the scene on the given
             displays: what stays full size, what shrinks, what gets stacked
             behind tabs, and what is dropped - with a reason for each.
  compare    Score two scenes on the same hardware and say which degrades less.
  advise     Report the smallest hardware change that would let the scene fit
             at full size, found by re-running the fit against candidate
             topologies rather than by guesswork.
  render     Draw the computed placement to scale as an SVG file.
  presets    List the built-in scenes. Any preset name may be used wherever a
             scene file is expected.

FLAGS
  --scene <ref>      Scene JSON file, or the name of a built-in preset.
  --displays <file>  Display topology JSON file (monitors, work areas, scales).
  --out <file.svg>   Write the placement to an SVG file (fit, render).
  --json             Machine-readable JSON output (all reporting commands).

SCENE JSON
  {"name":"...","panes":[{"id":"editor","priority":100,"minWidth":900,
   "minHeight":600,"idealArea":1260000,"required":true},
   {"id":"logs","priority":60,"minWidth":640,"minHeight":300,
    "idealArea":336000,"stackable":true,"stackGroup":"aux"}]}

DISPLAYS JSON
  {"name":"desk","monitors":[{"id":"m1","width":3840,"height":2160,
   "scale":100,"workArea":{"x":0,"y":0,"width":3840,"height":2100}}]}

EXAMPLES
  deskscene presets
...

Recorded from the shipped binary, not written by hand.

Source

Every file the program is built from:

advise.go · console.go · console_test.go · fit.go · guided.go · main.go · main_test.go · model.go · pack.go · svg.go

SHA-256 checksums · build instructions & scope notes · full build plan