Skip to content

Repository files navigation

perch

drop it in the notch, drag it out anywhere

the shelf — files, folders, images, links, and text, caught at the top of your screen until you know where they're going.

part of nebelhaus themed by nebelung macOS 14+ license


You know the dance: drag a file, realise the destination window is buried, let go, dig it out, drag again.

Perch kills that. Start dragging anything, flick up to the notch, and a little shelf drops down to catch it. Pile in as much as you like from as many places as you like — then grab any tile and drag the whole group to its real home in one motion.

No Dock icon. No Accessibility, Input Monitoring, or Screen Recording permission. It only ever sees what you choose to drop on it.

📖 nebelhaus.com/perch

why perch

Shelf apps aren't new — Yoink, Dropover, and friends have carried the idea for years. Perch's angle is dependability and restraint:

  • copies, not moves — a shelf that moves your only copy can delete it before the destination finished reading it. Perch stages copies and exports copies, so an interrupted drag never loses data.
  • minimal permissions, no surveillance — no Accessibility, no input taps, no screen reading, no Dock icon, no telemetry. nothing about your files is ever written to a log.
  • native and calm — one sandbox-friendly menu-bar app in the nebelung fog-grey palette, which follows your rice's flavor and contrast and swaps with macOS Light/Dark.

install

brew install --cask nebelhaus/tap/perch

Signed with our Apple Developer ID and notarized, so it opens straight away — no Gatekeeper prompt, no quarantine hack.

Perch installs by default in the nebelhaus rice, but it stands alone — the cask works on any Mac running macOS 14 or newer.

Then turn off System Settings ▸ Desktop & Dock ▸ "Drag windows to top of screen to enter Mission Control". macOS arms that top-edge trigger for the whole of any drag — files included — and it fires over the same band the notch shelf lives in, so without this the Dock steals the drop. The rice flips it for you; standalone installs do it once, by hand. (why)

what it does

  • a target that finds the notch — the drop zone hugs the physical camera housing when a display has one, and falls back to a tidy top-center catch band on notchless screens. either way the collapsed shelf draws no chrome of its own — no synthetic notch, no tray.
  • you can see it's holding something — a staged shelf lights a small sage ember under the camera housing, or under the menu bar on a notchless screen: a pip per item and a flare as each one lands. it tells you the shelf is holding something, not exactly how much — for that, open it.
  • it never touches your originals — every dropped item is copied into a private, collision-proof staging area. drop two files with the same name from different folders and both survive. nothing on disk is moved, renamed, or modified, ever.
  • it handles the awkward producers — Photos exports, Safari images, and other apps that hand over files lazily (AppKit "file promises") go down their own import path, so they land correctly instead of arriving empty.
  • it stays responsive — imports run off the main thread with a two-at-a-time limit, and iCloud placeholders are downloaded explicitly. drop a multi-gigabyte file and the shelf keeps animating.
  • it survives a relaunch — completed items are written to an atomic manifest. quit and reopen and your pile is still there; startup even recovers files whose manifest write got interrupted.
  • pin it for repeat drops — pin a tile and it stays on the shelf after a successful drag, ready to drop into several destinations in quick succession. the pin survives relaunch; unpinning restores the usual one-and-done behavior.
  • it drags out as a group, and clears the shelf — grab any tile and every completed item comes with it, advertised as a copy. Once a destination accepts the drop, the item leaves the shelf; a refused or cancelled drag springs the tiles back. Your original files are never touched — only Perch's staged copies move.
  • it follows you around — one panel per display, tracking Space, fullscreen, and Stage Manager changes with public AppKit behavior. on Tahoe it wears NSGlassEffectView; older systems get an AppKit material fallback.

"Perch" is a working title. Product naming is deliberately kept separate from the storage and drag/drop architecture.

more

the family

  • 🏠 nebelhaus — the house. the whole rice, one Nix flake. start here.
  • 🐾 pounce — the palette. keyboard-first launcher; every command a file.
  • 🐦 trill — the messages. native iMessage/SMS/RCS, read from chat.db.
  • 🪺 perch — the shelf. files, caught in the notch. (you are here)
  • 🌫️ nebelung — the theme. the silver-mist palette.
  • 🧰 workshop — the bench. where the family is built.

Each one stands alone. Together they're a house.

license

MIT © nebelhaus

About

A native macOS file shelf that grows out of the MacBook notch.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages