Keyboard Shortcuts
StorageScope follows the macOS keyboard-first convention. Every sidebar Smart View, scan command, item action, and standard menu function has a documented hotkey. Press Cmd+? from any menu in the app to discover more.
Default Shortcuts
| Shortcut | Action | Notes |
|---|---|---|
| Cmd1 – Cmd8 | Switch sidebar Smart View | See "Smart View hotkeys" below for the full mapping. |
| CmdF | Find / focus search field | Endpoints aware: searches files and paths, folder paths, duplicate paths, or extensions depending on the active view. |
| CmdW | Close window | Standard macOS close. |
| CmdCtrlF | Enter Full Screen | Toggle macOS full-screen mode. |
| Cmd, | Open Settings | Scan + display preferences, recent scans, duplicate hash cache state. |
| CmdR | Rescan current location | Re-scans the last scanned root with the same options. |
| Cmd. | Cancel active scan | Cancellable mid-scan, including during hash verification. |
| CmdO | Choose folder to scan | Opens the macOS folder picker with security-scoped access. |
| CmdShiftH | Scan Home folder | Direct shortcut; entry is disabled mid-scan. |
| CmdShiftD | Scan Documents folder | |
| CmdShiftL | Scan Downloads folder | |
| CmdShiftF | Reveal selected item in Finder | Opens the file's parent folder with the file highlighted. |
| Cmd↩ | Open selected item | Hands off to the default app for the file type. Disabled on inaccessible items with an explanatory help tag. |
| CmdOptionC | Copy selected file path | Places the POSIX path on the pasteboard. |
| Cmd⌦ | Move selected item to Trash | Routes through macOS Trash APIs with transactional rollback on partial failures. |
| CmdA | Select all (focused list) | Standard macOS text/list behavior. |
| CmdC / CmdV / CmdX | Copy / Paste / Cut (text) | Standard text editing inside focused fields. |
| CmdM | Minimize window | |
| CmdN | Show main window | Brings the existing main window forward (Window menu). |
| CmdQ | Quit StorageScope | App terminates after the last window closes. |
Smart View Hotkeys (Cmd+1 – Cmd+8)
Cmd+1 through Cmd+8 switch the sidebar Smart View in SmartView.allCases order,
so the menu order in View exactly matches the numeric order. Each entry also
persists the selection across launches.
| Shortcut | Smart View | Notes |
|---|---|---|
| Cmd1 | Overview | Default landing view; largest file / folder / oldest large file insight cards. |
| Cmd2 | Cleanup Review | Verified duplicates + suggested cleanup lanes. Carry file-type / size chips via FilterStore. |
| Cmd3 | Folder Tree | Expand All / Collapse All in header. Path-aware search prompt. |
| Cmd4 | Largest Folders | Sorted by total size descending. |
| Cmd5 | Largest Files | Sortable column headers with chevron direction. |
| Cmd6 | Old Large Files | Modified column shows relative time for recent files. |
| Cmd7 | File Types | Clicking a type row applies a `Type: |
| Cmd8 | Duplicate Review | Sidebar label is "Duplicate Review"; SmartView case is `.duplicateCandidates`. |
Shipped in v0.5.0
Search improvements
The v0.5.0 Search upgrade introduced mechanism-style find-next navigation built on the Mail / Finder convention. These entries shipped alongside the v0.5.0 release.
| Shortcut | Action | Notes |
|---|---|---|
| CmdG | Find next search result | Advances the current find-next target through the ordered result list, wrapping around at the end. |
| CmdShiftG | Find previous search result | Reverses direction; wraps around at the start. |
Notes
StorageScope uses standard macOS modifiers in every shortcut:
Cmd Command · Shift ↑Shift · Option Option / Alt · Ctrl Control · ⌦ Delete (Backspace) · ↩ Return / Enter.
Hotkeys follow the SmartView allCases order from
Sources/StorageScope/Stores/SmartView.swift, so adding or reordering a
SmartView case will renumber the Cmd+1&nd;8 binding. See the
changelog for the v0.4.5 introduction of the full menu suite
and the architecture page for how the menu is wired in
AppDelegate.buildMainMenu().
Find on macOS 14: Cmd+F focuses the search field on macOS 15+.
On macOS 14, the menu item still surfaces the "Find... F" hint but the programmatic
focus path is not bindable in SwiftUI's .searchable field (see the
architecture page for the if-available ViewModifier
bridge that handles this).