Ledge

How to move a file between two apps that never overlap

Two apps that never share the screen is a normal state of affairs on a Mac. Mail sits full-screen in one Space, a project folder waits in Finder in another, and a terminal lives on a second display you keep to the side. The file you want to move exists in one of them and belongs in another, and there is rarely a moment when both are visible at once. Ordinary drag and drop assumes there is. It expects you to grab the file, see the destination, and release, all in one motion. When the target is behind three windows or off in another Space, that motion has nowhere to end.

Why the standard drag falls apart

Drag and drop was designed for a desktop where everything sits in view. You pick up an icon, the destination is a folder a few inches away, and you drop it. The gesture is one continuous press of the mouse button from start to finish. That is the hidden requirement: you must hold the file the entire time, and you must be able to see where it lands before you let go.

Modern Mac use breaks both assumptions. Windows are maximised. Spaces separate apps so they never overlap on purpose. A second monitor puts the source and the target on different physical screens. So the moment you lift a file out of one app, you are stuck holding it while you try to summon the other. Mission Control, a four-finger swipe, hovering over a Dock icon to bring a window forward: each of these is a way to keep the mouse button down and hope. Drop too early and the file lands on the wrong thing. Drop too late and your hand cramps.

The three ways people cope, and their costs

Most people settle into one of three habits. The first is the round trip through the desktop: drag the file out to a bare patch of desktop, switch apps, then drag it in again. It works, but it litters the desktop and doubles the number of drags.

The second is copy and paste through the Finder. Reveal the file, copy it, navigate to the destination folder, paste. This is reliable for files that live in folders, but it does nothing when the destination is a chat message or a text field that wants the contents rather than the file.

The third is the side-by-side shuffle: open both windows, resize them so they sit next to each other, and drag across the seam. This is the closest to the original design, and it is also the most fragile. The instant one window is full-screen or on another Space, the layout is gone and you are back to juggling.

None of these is wrong. They are all workarounds for the same missing piece: a place to set the file down between picking it up and putting it away.

Put the file down before you pick a destination

The fix is to split the one impossible gesture into two easy ones. First, move the file out of the source app and onto a holding spot. Then, separately, whenever the destination is ready, move it from the holding spot into place. Neither half requires both apps to be visible at the same time, because the holding spot is always visible and always in the same location.

This is what Ledge is built around. You drag the file up to the notch at the top of the screen and let go. It lands on a shelf that drops down and stays there. The source app can now close, go full-screen, or slide off to another Space; the file is safe on the shelf. When you switch to the destination, whether that is a folder, a terminal, or a chat window, you open the shelf again and drag the file off into it. The trip that used to demand both windows at once is now two short, calm drags with a pause in the middle.

Because the shelf sits at the top centre of the screen, it does not care which Space you are in or which display holds the target. You glance up, the file is there, and you take it wherever you happen to be.

The right version arrives at the destination

Moving the file is only half the job. The other half is that different apps want different things from the same file, and this is where a plain copy usually fails. A terminal does not want the file, it wants the path. A chat window wants the file uploaded. A Finder window wants the file itself moved. A text field wants the text.

When you drag something off the shelf, Ledge hands each destination the representation it can actually use. Drop a downloaded invoice on a Finder folder and the file moves there. Drop the same invoice on a terminal and it pastes the path, ready for a command. Drop a screenshot on a chat window and it uploads. Drop a link on a note and it becomes a proper link. You are not converting anything by hand or hunting for a menu; you throw the same item at each place and it lands in the form that place understands.

A short routine that survives full-screen apps

Put together, the routine is small enough to become a habit. Lift the file to the top of the screen. Switch, with no rush, to wherever it belongs, even if that means changing Spaces or waking a second monitor. Pull the file down from the shelf into the destination. Because the shelf holds several items, you can gather a batch first, a PDF from Mail, an image from Downloads, a folder from the desktop, and then place each one where it goes in a single sitting.

The problem was never that the two apps refused to overlap. It was that the file had nowhere to wait while you moved between them. Give it a place to wait at the top of the screen, and two apps that never share a pixel stop being a problem worth thinking about.