Desktop Workspace Manager

WorkspaceForge

Works out where every window goes when today's screen isn't yesterday's.

Free right now — no account, no card

Get WorkspaceForge 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 WorkspaceForge, 1 of 1
Screenshot WorkspaceForge running on Windows today

Free while we’re in preview

Get WorkspaceForge

Works out where every window goes when today's screen isn't yesterday's.

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, WorkspaceForge is included in every plan along with the rest of the range.

Saved on three 1440p screens, opened on a laptop

Describe your monitors in one JSON file and your workspace in another: nested rows and columns with weights, leaves named as zones, rules saying which app lands in which zone. workspaceforge plan solves that into exact rectangles. refit --from desk3.json --to laptop.json maps the same layout onto different hardware and reports which window moved, which was resized, and which got folded in from a monitor that no longer exists. Monitors on both sides are ranked by the same canonical order, rank pairs with rank, and screens with nowhere to go fold onto the primary as equal columns.

The pixels add up

Weighted splits hand out leftover pixels by the largest-remainder method, so five zones on a 1439 px screen sum to exactly 1439. The last zone in a row ends precisely on the parent’s right edge, and the error doesn’t compound down a nested tree. When a minimum size can’t be met, the shortfall is named in pixels instead of quietly fudged.

It is a calculator

No call to Xrandr, CoreGraphics or EnumDisplayMonitors. It doesn’t enumerate your displays, doesn’t list your open windows, doesn’t move anything, and integrates with no window manager. Take the JSON or the to-scale SVG to something that can. Keyboard shortcuts are WindowDeck’s job.

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 layout solver: weighted splits resolved to exact integer rectangles that tile the work area with no gap and no overlap, minimum sizes checked and named when they cannot be met, and a documented re-fit that maps a layout saved on one set of monitors onto a completely different one. It computes where a window would go and draws it to scale as an SVG; moving real windows is out of scope.

Recorded session

Recorded terminal session showing WorkspaceForge running
A real recorded session — WorkspaceForge’s actual output, captured by running the shipped binary.

Naming status

Working name only — brand verdict **AVOID** (Very High). Collision: WorkspaceForge. 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.

workspaceforge - window layout solver and re-fitter (Techlosoft Workspace Line)

USAGE
  workspaceforge plan   <layout.json> --topology <topology.json> [--windows <f>] [--json]
  workspaceforge check  <layout.json> [--topology <topology.json>] [--windows <f>] [--json]
  workspaceforge refit  <layout.json> --from <topology.json> --to <topology.json> [--json]
  workspaceforge render <layout.json> --topology <topology.json> --out <map.svg> [--json]
  workspaceforge topo   <topology.json> [--json]
  workspaceforge help | -h | --help

COMMANDS
  plan     Solve the layout against the topology and print the exact integer
           rectangle of every zone and every window.
  check    Validate a layout: structure, tiling, overlaps, out-of-bounds
           rectangles, minimum-size violations, unmatched windows and
           unreachable rules. With --topology it also solves the geometry.
  refit    Take a layout authored for one topology and map it onto another.
           Monitors are paired by rank (primary, then descending area, then
           position); zones are re-solved against the new work areas; monitors
           that no longer exist are folded into the destination primary. Every
           window that moves, resizes or is folded is reported.
  render   Draw the solved layout as a real, to-scale SVG diagram you can open
           in any browser.
  topo     Validate and describe a topology file: bounds, work areas, scale,
           canonical rank order and adjacency.

FLAGS
  --topology <file>  Display topology JSON (plan, check, render).
  --from <file>      Source topology the layout was authored on (refit).
  --to <file>        Destination topology to map it onto (refit).
  --windows <file>   Window list JSON, replacing the layout's own "windows".
  --out <file>       SVG file to write (render).
  --json             Machine-readable JSON output. Available on every command.

Short forms -t, -l, -w and -o are accepted for --topology, --layout, --windows
and --out. Flags may appear before or after positional arguments.

EXAMPLES
  workspaceforge plan desk.layout.json --topology desk.topology.json
  workspaceforge check desk.layout.json --topology desk.topology.json --json
...

Recorded from the shipped binary, not written by hand.

Source

Every file the program is built from:

console.go · console_test.go · geometry.go · guided.go · layout.go · main.go · main_test.go · refit.go · solve.go · svg.go · topology.go

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