Skip to main content
The menu bar widget provides instant access to r2Vault’s upload functionality and recent upload history, directly from your macOS menu bar.

NSStatusItem Integration

The widget uses a persistent NSStatusItem with a custom popover interface:
MenuBarManager.swift:16-27
The status item is configured with an upload icon:
MenuBarManager.swift:31-39
The menu bar icon is always visible, providing one-click access to r2Vault from anywhere on your Mac.

Popover UI

The popover uses .applicationDefined behavior to remain visible when the app loses focus:
MenuBarManager.swift:41-53
The popover stays open even when you switch to other apps, making it easy to drag files from Finder while keeping r2Vault accessible.

Always Active Window

A custom hosting controller ensures the popover always appears active:
MenuBarManager.swift:4-11
This prevents the UI from appearing grayed out when focus moves elsewhere.

Drop Zone for Uploads

The popover includes a prominent drop zone for quick file uploads:
MenuBarView.swift:135-184

Drag and Drop

Drag files directly onto the drop zone

Click to Browse

Click the drop zone to open a file picker

Active Upload Progress

While uploads are running, the widget shows real-time progress:
MenuBarView.swift:9-24
The progress section displays individual file progress bars:
MenuBarView.swift:188-221
Each upload row shows file name, progress percentage, and a cancel button:
MenuBarView.swift:484-532
Progress updates in real-time as files upload, with a cancel button for each individual file.

Recent Uploads (25 Most Recent)

The widget displays the 25 most recent successful uploads:
MenuBarView.swift:225-258
Only the 25 most recent uploads are shown in the widget for quick access. The full history is available in the main window.

History Row Actions

Each history row provides quick actions on hover:
MenuBarView.swift:353-454

Copy URL

Copy the public URL to clipboard

Download

Download file to Downloads folder

Delete

Delete file from R2

File Type Icons

History rows display color-coded icons based on file type:
MenuBarView.swift:456-479
File type colors make it easy to visually distinguish between images, videos, documents, and other file types at a glance.
When an upload completes, a toast notification appears at the bottom:
MenuBarView.swift:32-40
The toast implementation:
MenuBarView.swift:42-65
The public URL is automatically copied to your clipboard after every successful upload.

Glass Effects (macOS 26+)

On macOS 26 and later, the widget uses modern glass effects:
MenuBarView.swift:302-349
The widget automatically adapts its visual style based on your macOS version, providing modern glass effects on macOS 26+ while maintaining compatibility with older versions.

Bucket Switching

The settings menu allows quick switching between multiple configured buckets:
MenuBarView.swift:85-109
If you manage multiple R2 buckets, you can quickly switch between them without opening the main app window.

Upload System

Learn about the concurrent upload architecture

File Browser

Browse and manage files in the main window