Skip to content
Phoenix124Public

About

Free, open-source drag & drop shelf for macOS and Windows — a Yoink / Dropover alternative

Topics

Resources

Security policy

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

Droper icon

Droper

A drag & drop shelf for macOS and Windows.
Start dragging, drop it on the shelf, take your time, drag it out wherever it belongs.

macOS Windows Electron TypeScript Tests

English · Русский

The shelf
The shelf
Preview popover
Space to preview
Search
⌘F to search

✨ Features

🪄 Shows up when you drag When a drag starts, at the screen edge, under the pointer, or when you shake the pointer mid-drag. On macOS it reacts only to real drag sessions, not text selection or window moves.
📦 Takes anything Files and folders (kept as references; Keep a Copy stores a copy so an item survives the original moving), text → .txt, links → .webloc / .url, images straight from the browser.
🎯 Precise drag-out A native addon asks the OS whether the target app accepted the files. Cancelled or refused drops leave items where they are.
🗂️ Stacks Merge items into one stack, drag it out in one go, split it back, or drag single files out of the stack preview.
👀 Preview Space opens a popover next to the shelf: images, PDF, text, video, audio, Quick Look thumbnails, folders, stacks.
🔍 Search ⌘F / Ctrl+F filters by name and path.
🗑️ Clean up Compress to ZIP puts an archive of the selection on the shelf. Move to Trash deletes the files behind selected items; the menu-bar icon shows how many items are waiting.
🔒 Lock & undo Locked items stay after drag-out. Restore Removed Items brings back the last removal.
🙈 Ignored apps No shelf for drags from apps you choose, with one-click buttons for recent drag sources.
📐 Your size and place Shelf width, height and icon size, applied live. Move the shelf and it reopens there on that display.
📸 Screenshots Optional. New screenshots land on the shelf as soon as they are saved.
📋 Clipboard history Optional. Text, links, images and files with pins, search and filters.
🔗 Automation droper:// links for Shortcuts, Alfred, Raycast or scripts.
⚙️ Fits in Menu bar / tray (drop files or text on the menu-bar icon on macOS), global shortcut, launch at login, Explorer Send to → Droper.

⌨️ Keyboard

Key Action
Space Preview the selected item (again to close)
↑ ↓ Move through items; the preview follows
⌘F / Ctrl+F Search the shelf
Enter Open
⌫ / Delete Remove from the shelf
⌘A / Ctrl+A Select all
Esc Close preview → search → shelf
⌘⇧Y / Ctrl+Shift+Y Show or hide the shelf from anywhere

🖼️ More screenshots

Text preview
Text preview
Stack preview
Stack preview
Settings
Settings
Clipboard history
Clipboard history

💾 Install

Grab the latest build from Releases.

Platform File First launch
🍎 macOS (Apple Silicon) Droper-<version>-arm64.dmg Unsigned: see below, then allow Accessibility when asked
🪟 Windows (Intel / AMD) Droper-Setup-<version>-x64.exe Unsigned: SmartScreen → More info → Run anyway
🪟 Windows (ARM) Droper-Setup-<version>-arm64.exe Same as above

Note

Accessibility lets Droper see global mouse drags. Without it the shelf still works, but only through the shortcut or menu.

🍎 First launch on macOS

Droper isn't signed by Apple yet, so macOS blocks it the first time. Either:

  • System Settings: open Droper once, then go to System Settings → Privacy & Security and click Open Anyway next to the Droper message.

  • Terminal: after copying Droper to Applications, clear the download quarantine flag:

    xattr -dr com.apple.quarantine /Applications/Droper.app

Only do this for builds downloaded from this repository's Releases, after checking them against SHA256SUMS.txt.

🔄 Updates

Once a day Droper asks GitHub for the latest release (a single request to api.github.com, nothing else is sent). When there is a newer version you get one notification and an Update Available item in the menu-bar menu that opens the release page; download and install it like the first time. Check for Updates… in the same menu checks right away, and Settings → Check for updates turns it off. Droper doesn't update itself: that needs a signed build.

🗑️ Uninstall

  • macOS: menu-bar icon → Uninstall Droper…. It removes the Accessibility permission, the login item and Droper's data (settings, shelf, clipboard history, kept copies), then moves the app to the Trash. Files you put on the shelf stay where they are.

    If you already dragged Droper to the Trash, the permission entry stays in System Settings. Put the app back in Applications, run the commands below, then delete it:

    /usr/bin/tccutil reset All com.droper.app
    rm -rf ~/Library/Application\ Support/Droper
  • Windows: Settings → Apps → Droper → Uninstall. It also removes the Send to → Droper shortcut. Settings and shelf data stay in %APPDATA%\Droper; delete that folder for a clean slate.

🔗 Automation (droper://)

Link Does
droper://show · hide · toggle Show, hide or toggle the shelf
droper://add?path=/Users/me/a.pdf&path=/Users/me/b.png Add files (repeat path)
droper://add-text?text=Hello Add a text snippet
droper://add-url?url=https://example.com&title=Example Add a link
droper://clear · restore Clear the shelf / bring back the last removal
open "droper://add?path=$PWD/report.pdf"        # macOS
start "" "droper://add-text?text=Call%20Anna"  # Windows
🛠️ Development
npm install       # also builds the native drag addon
npm test          # core unit tests (vitest)
npm start         # build + run
npm run dist:mac  # release/Droper-<ver>-arm64.dmg
npm run dist:win  # release/Droper-Setup-<ver>-x64.exe and -arm64.exe

Pushing a v* tag makes GitHub Actions build both platforms and attach them to a draft release.

🏗️ Architecture
src/core/      pure logic without Electron, covered by tests
  shelfStore       items, stacks, lock, remove/restore, prune
  dragDetector     mouse down/move/up → "show the shelf"
  dragOut          whether a drag-out should remove items
  ingest           dropped text/links/images → files
  clipboardHistory clipboard history
  settings         validated settings
  preview          preview kind and popover placement
  urlScheme        droper:// parsing
  ignoredApps      ignore-list matching
src/main/      Electron main: panels, tray, IPC, mouse hook, clipboard
src/preload/   contextBridge APIs
src/renderer/  shelf, preview, settings and clipboard UI (vanilla TS)
native/        N-API addon: native drag-out and app-under-pointer

Telling a real drag from a text selection or window move. On macOS a background JXA process watches the system drag pasteboard; the shelf appears only when an app actually starts a drag session. Windows has no equivalent, so it defaults to "drag to the screen edge", and an empty shelf hides itself again.

Precise drag-out. macOS uses NSDraggingSession and reads the operation from draggingSession:endedAtPoint:operation:. Windows uses SHDoDragDrop with CF_HDROP and honours CFSTR_PERFORMEDDROPEFFECT for Explorer's optimized moves. Without the addon Droper falls back to judging by where the mouse was released.

⚠️ Known limitations

  • 🧪 The Windows build passes CI but hasn't been hand-tested yet.
  • ☁️ No Handoff / iCloud, Services menu or widgets.
  • 📄 On Windows, Copy puts file paths on the clipboard as text.
  • 🖼️ The preview is Droper's own popover, so formats without a thumbnail generator show their icon.

About

Free, open-source drag & drop shelf for macOS and Windows — a Yoink / Dropover alternative

Topics

Resources

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages