major-ai-skills
Version:
Installable agentic skills / AI agent skills (SKILL.md) for Claude Code, Cursor, Codex CLI, Gemini CLI & Antigravity - 402+ professional app, token-efficiency, and common-sense skills. SEO/GEO ready.
133 lines (103 loc) • 7.28 kB
Markdown
name: dropover
description: "Configure Dropover file-shelf workflows and URL integrations, and diagnose macOS gesture or window behavior."
category: macos
risk: safe
source: self
source_type: self
date_added: "2026-08-26"
tags: ["dropover", "macos", "nspanel", "cgeventtap", "drag-and-drop", "url-scheme", "claude"]
tools: ["claude", "cursor", "gemini", "codex"]
# Dropover macOS Drag Shelf Utility AI Skill Guide (Claude)
## Overview & Engine Architecture
Dropover is a modular macOS productivity utility that provides temporary floating drag shelves to aggregate files, images, snippets, and web links across Mission Control Spaces and full-screen apps. Dropover operates via custom **`NSPanel` floating windows** styled with `.nonactivatingPanel` and `.canJoinAllSpaces` attributes, intercepts cursor movements via a **`CGEventTap` CoreGraphics mouse event monitor** to detect cursor shake gestures, and ingests dragged payloads through **`NSPasteboard` / `NSItemProvider`**. Claude operates as a Principal macOS Application Developer and Workflow Automation Specialist, specializing in **AppKit floating window lifecycle management**, **CoreGraphics event tap debugging**, **TCC Accessibility permission resolution**, and **Dropover URL Scheme (`dropover://`) scripting**.
### Dropover Window & Event Ingestion Architecture
```
┌─────────────────────────────────────────────────────────────┐
│ Dropover Engine Architecture │
│ │
│ Event Monitoring & Gesture Trigger Layer │
│ ├── `CGEventTap` Mouse Delta Vector Tracker (Shake Sensor) │
│ ├── Global Hotkey Listener (`NSEvent.addGlobalMonitor...`) │
│ └── TCC Accessibility & Input Monitoring Subsystem │
│ │
│ Floating Presentation & Shelf Layer │
│ ├── Floating `NSPanel` (`level = .floating`, Space Joining)│
│ ├── Quick Look Thumbnail Renderer (`QLThumbnailGenerator`) │
│ └── Multi-Shelf Manager (Group Actions, Cloud Uploading) │
│ │
│ Integration & IPC Protocol │
│ ├── Custom URL Scheme Handler (`dropover://action/...`) │
│ └── macOS Shortcuts & AppleScript Dispatch Interface │
└─────────────────────────────────────────────────────────────┘
```
## Operational Capabilities & Agent Directives
1. **Dropover URL Scheme Automation**: Construct automation workflows using `open "dropover://create-shelf?files=..."` to programmatically spawn floating shelves from scripts.
2. **Accessibility & Event Tap Diagnostics**: Diagnose unresponsive shake triggers by validating `CGPreflightListenEventAccess` and TCC permissions in macOS System Settings.
3. **Multi-Space Shelf Persistence**: Configure `NSWindow.CollectionBehavior` to ensure floating shelves remain visible across virtual desktops without disappearing during space transitions.
4. **Batch Clipboard & Drag Ingestion**: Author scripts to stage transient payloads into macOS pasteboards for batch ingestion into Dropover shelves.
## Production Python Automation: Automated File Stager & Dropover Shelf Dispatcher
Save this script as `stage_to_dropover.py` to collect files and programmatically open a Dropover floating shelf via its URL scheme:
```python
"""
Dropover macOS URL Scheme Dispatcher
Collects target files and triggers a new floating shelf in Dropover.
"""
import sys
import os
import urllib.parse
import subprocess
def create_dropover_shelf(file_paths: list):
valid_paths = [os.path.abspath(p) for p in file_paths if os.path.exists(p)]
if not valid_paths:
print("Error: No valid file paths provided.")
return
print(f"--- [DISPATCHING {len(valid_paths)} FILES TO DROPOVER SHELF] ---")
for p in valid_paths:
print(f" • {p}")
# Build Dropover URL Scheme payload
# Format: dropover://create-shelf?paths=<url_encoded_path1>&paths=<url_encoded_path2>
query_params = []
for path in valid_paths:
encoded_path = urllib.parse.quote(path)
query_params.append(f"paths={encoded_path}")
url = f"dropover://create-shelf?{'&'.join(query_params)}"
# Trigger URL via macOS open command
try:
subprocess.run(["open", url], check=True)
print("✅ Dropover shelf created successfully.")
except subprocess.CalledProcessError as e:
print(f"🚨 Failed to launch Dropover URL scheme: {e}")
if __name__ == "__main__":
if len(sys.argv) < 2:
print("Usage: python3 stage_to_dropover.py file1.png file2.pdf ...")
sys.exit(1)
create_dropover_shelf(sys.argv[1:])
```
## Technical Troubleshooting Matrix
| Issue & Failure Signature | Root Cause Analysis | Diagnostic & Resolution Pathway |
| :--- | :--- | :--- |
| **Shake Gesture Fails to Open Shelf** | Dropover lacks macOS Accessibility / Input Monitoring permissions to capture global cursor velocity. | 1. Open *System Settings $\rightarrow$ Privacy & Security $\rightarrow$ Accessibility*.<br>2. Enable **Dropover**.<br>3. In *Dropover Preferences $\rightarrow$ Triggers*, adjust **Shake Sensitivity** slider to Medium/High. |
| **Floating Shelves Disappear When Switching Spaces** | Dropover window collection behavior configured to standard space rather than `canJoinAllSpaces`. | In Dropover Preferences $\rightarrow$ **Shelves**, check **Keep shelves on screen across all Spaces**. |
| **`dropover://` URL Scheme Opens Safari Instead of App** | Custom URL scheme registration not registered in LaunchServices. | Run `/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain user`. |
| **High Memory Usage on Large Image Drops** | Quick Look thumbnail generation cache generating uncompressed bitmap buffers. | In Dropover Preferences, reduce maximum preview resolution or dismiss shelves after drop. |
## Command Line Syntax & macOS Terminal Recipes
```bash
# 1. Trigger Dropover Launch via macOS Terminal
open -a Dropover
# 2. Inspect Dropover Plist Configuration via defaults CLI
defaults read com.extendedmac.Dropover-mac
# 3. Create a New Empty Shelf via URL Scheme
open "dropover://create-shelf"
```
### Essential File Locations
- **Dropover Preferences**: `~/Library/Preferences/com.extendedmac.Dropover-mac.plist`
- **Application Support Cache**: `~/Library/Application Support/com.extendedmac.Dropover-mac`
## Agent Operational Directive
> **MANDATORY**: Verify that Dropover is granted Accessibility permissions in macOS System Settings before diagnosing shake gesture failures. Use encoded file paths when constructing `dropover://` URL schemes.