Beam

Test Mac layouts beyond your screen

A small rounded silver aluminium box rests on a dark surface as a thin teal beam rises vertically from its top into the darkness.

On Tuesday morning, you are at your desk with a settings window squeezed beside your editor. One more pull on its corner is about to hide the sidebar, move a toolbar command, or leave a bottom action with nowhere to go. Test the smallest allowed size, every point where the layout visibly changes, and several extreme aspect ratios. Check each change from both directions.

A macOS app layout rarely fails at a familiar display preset. It fails one point before or after the arrangement changes. We use those visible changes as the checklist, then beam the running window to another Mac when its display offers more room for unusual shapes. Windows should adapt fluidly and have clear minimum and maximum sizes, but the useful test cases live at their boundaries.

Put the running window on the other Mac

Beam puts a window from one Mac onto another: the window itself, on your desktop, at its own size, with its own Dock icon and a place in ⌘ Tab. A beamed window is that individual running app window on the receiving Mac, separate from the other Mac’s full display. A window, not a screen explains why that matters in daily use.

Both Macs run Beam. They talk directly over the local network, or over your Tailscale tailnet when apart. No account, no server, no cloud.

A tailnet is the private network Tailscale uses to connect your devices when they are apart. When you beam a window, the picture, your keyboard and mouse input, and the clipboard if you have clipboard sync on, go straight from one of your Macs to the other.

On the same network, Beam discovers other Macs running Beam locally, without asking anything outside the network. Pair them once and the connection is encrypted and pinned to those two machines. The picture is streamed at your display’s exact resolution, so text stays crisp. We keep the workflow grounded in the window you can see and operate.

  1. Run the app on one Mac and leave the window open.
  2. Open Beam on the Mac in front of you, then pair the two Macs.
  3. Choose the app window from the picker and beam it.
  4. Use the keyboard and mouse to exercise the running app at each boundary.

Drag a corner of a beamed window and the real window resizes over there. Type into it and the keystrokes land in the app, shortcuts included. While you work in a beamed window, nothing moves on the other Mac’s screen. You can keep that Mac arranged for its own task while testing from the Mac in front of you.

That gives you room to examine the transition itself instead of settling for a few convenient presets.

Begin with the narrow path

We begin by reducing the width until every layout change has occurred. Watch the sidebar collapse, then widen the window and confirm that it returns without losing the selected item, scroll position, or editing context. A sidebar may hide automatically when space runs out and return when more space becomes available. Critical actions should remain reachable when it disappears.

Keep narrowing until toolbar items move into an overflow menu. You still decide which commands move first, so check that their order remains predictable and that the commands a person needs most remain easy to find. Labels should stay legible throughout the change. Content should never overlap, clip, or slide beneath controls while the window moves through the boundary.

Finish at the smallest allowed size. Check the settled window there, then attempt to cross that minimum from several starting shapes. Begin once with a tall window, once with a short one, and once near the expected minimum. This catches a window that stops correctly from one direction but briefly shows a broken intermediate arrangement from another.

Do not treat the narrow path as a single screenshot. Resize slowly, use the controls, and scroll the content while space is disappearing. We want to see whether the running app preserves the person’s place during the change. A layout can look correct after it settles and still lose a selection, focus, or unfinished edit while getting there.

Record the last width at which each full arrangement fits and the first width at which the next arrangement appears. Those measurements become useful test cases for later builds. They also give you precise shapes to revisit after labels grow, toolbar commands change, or a new sidebar item adds pressure to the same narrow window.

Cross each layout change twice

Test immediately below and above every point where the layout changes. Resize narrower and then wider, pausing on both sides. Repeat from the opposite direction while a field has focus, a sidebar row is selected, and a detail area contains unsaved work. The arrangement matters, but the person’s current state must survive the move as well.

When the window changes between alternate arrangements, the first arrangement that fits should appear. Move across the boundary several times without racing through it. Watch for a toolbar command or sidebar that repeatedly appears and disappears around the same dimension.

Use the app at each side rather than only looking at it. Type into the focused field, invoke a shortcut, select a different row, and return to the unsaved detail area. We test these ordinary actions because a transition is complete only when the new arrangement remains usable and preserves the context established in the previous one.

Record the live dimensions at the first incorrect frame and the first correct one. Those two numbers turn what you saw into a report another person can reproduce. Include the direction of travel and the state you preserved, such as narrowing with a field focused. That detail separates a boundary problem from a layout that merely happens to share the same dimensions.

Return later with different content. A longer title, an extra toolbar command, or a sidebar row with a longer label may cause the change at another width. The exact boundary can move as the app evolves, but the method remains stable: approach it from both directions, keep meaningful work in progress, and note the first frame on either side.

Name the area you measured

Be precise about what your dimensions describe. The complete window includes the title bar, while the usable area where the app’s content appears is smaller. Either measurement can describe a real failure. The report becomes reproducible only when another person knows which edges you used and can place their own window at the same size.

If you measure from the outer edges, include the title bar and border. If you measure only the area occupied by the app’s content, leave them out. Both measurements can be correct. We name the measured area every time because two accurate numbers can otherwise appear to contradict each other during testing or review.

Keep the choice consistent within one set of results. Record the usable area when the problem concerns the room available to content. State that choice beside the first incorrect frame and the first correct frame.

Height deserves the same precision as width. A bottom action may disappear because the complete window is short, while the content area becomes even shorter after its fixed controls take their share. Measure the area relevant to what you saw, and describe the visible result. Another tester should not need to infer which rectangle produced the clipped control.

A clear measurement also makes later comparisons fair. If a title bar changes or the content gains another fixed row, the complete window and usable area will no longer move together in quite the same way. Keeping both ideas separate lets you identify whether the boundary moved or whether the app simply has less room for its content.

Stretch width and height separately

Do not stop after testing small, medium, and large rectangles. Try a narrow, tall window. Inspect split panes, areas that scroll, sidebar restoration, and actions fixed to the bottom. Confirm that the extra height does not hide a width problem and that a restored sidebar returns to the same selection and scroll position.

Then try a wide, short window. Look for clipped controls, controls that fit only when the window is taller, excessive whitespace, and content that cannot reach the area that scrolls. A generous width can disguise a height failure, especially when a toolbar remains comfortable while the content below it loses the room needed for an action.

A receiving Mac with more display room makes these shapes convenient to inspect. It can give the source app substantially more usable width, much like giving another Mac’s app an ultrawide.

A Mac without a monitor is often called a headless Mac. A headless Mac gets a virtual display from Beam at Retina density. A virtual display gives that Mac room for windows even though no monitor is attached.

For ordinary on-screen sizing, Rectangle can move and resize windows with shortcuts or snap areas. It is useful for repeatable presets. Both Macs require macOS Sonoma or later, with the same local network or a tailnet connecting them.

We save the boundary dimensions and the extreme shapes that revealed something useful. On the next build, those sizes become the first places to revisit, followed by the new transitions created as the interface changes. The next testing session starts with evidence from this one, then moves forward to the boundaries the app has not met yet.

Beam The app

Beam puts a window from one Mac onto another. These notes are written by the people who make it.

More from the blog

  1. · 5 min read

    Run a headless Mac mini and see its windows

    Beam shares one window at a time, or a whole display when you pick one. Then make sleep and reboot reliable.

  2. · 4 min read

    Use one Mac app without sharing the whole desktop

    Beam puts one app window from another Mac on your desktop, with direct input, crisp text, optional audio, and no whole-desktop viewer.

  3. · 5 min read

    When a shared Mac window disappears

    Minimize, hide, close, and Spaces affect Mac windows differently. See what each action means while you work with a beamed window.

All posts