A folder sidebar for Windows File Explorer. QuickPane embeds a pinned-folders pane inside every Explorer window, so your groups, recent locations, drives, network shares, and WSL distros travel with the window you are already using. Pin it inside the window, float it beside the window, or run it as a slim screen-edge dock. Everything runs locally as a single tray app, no code is ever injected into Explorer, and all data stays in plain files under your user profile.
QuickPane puts your folders one click away inside Explorer itself, with:
- 📁 Inside, beside, or dock: embed the pane in each Explorer window and shift its content, float a follower pane at the window's edge, or run dock-only
- 🗂️ Pinned folder groups: organize folders into groups and tabs, backed by real folders and shortcuts on disk
- 🕘 Real Recent: it tracks the folders you actually browse in Explorer, not only the ones clicked inside the pane
- 🖥️ This PC, Network, and Linux: expandable drives and lazy folder trees, plus Network and WSL sections
- 🪟 Stays at the window's z-level: the beside pane is an owned window of its Explorer window, never forced above everything else
- 📌 Desktop dock: an optional screen-edge AppBar with auto-hide and all-virtual-desktops pinning
- 💾 Open and Save dialog support: the pane attaches to file dialogs and navigates them too
- 🔎 Search box: filters every folder in the pane as you type
- 🚀 Recent Apps: the programs you have been using, where a row opens its app and browser rows open out into their profiles
- 🎯 Per-app folders: set a folder as an app's starting point and its Save and Open dialogs land there
- 👤 Profiles: independent workspaces, each with its own groups, recents count, and width
- 🎨 Native feel: dark and light themes that blend into the Windows shell
- 🔒 Local storage: groups are folders of shortcuts and settings are a JSON file you can back up
Three ways to show the pane, chosen in Settings:
- Inside reparents the pane into each Explorer window and shifts the file view to the right to make room, so the pane reads as part of the window.
- Beside floats a follower pane against the left edge of each window without shifting its content. The pane is an owned window of its Explorer window, so Windows keeps it at that window's z-level, on that window's virtual desktop, and hides it when the window is minimized.
- Off uses only the desktop dock and leaves Explorer windows untouched.
Folders live in groups, and a group can hold several tabs.
- Pin a folder from the Pin to Quick Pane context-menu verb on any folder, from the folder background, or by dragging it into the pane
- Create, rename, and delete groups, tabs, and pins
- Drag to reorder groups, tabs, and pins, with a visible drop line while reordering
- Drag one group onto another to merge their tabs, or drag a tab into empty space to make it a new group
- A group with a single tab renders like a plain list; with several tabs it shows a horizontally scrollable tab row
- A seeded default group appears on first run so the pane is never empty
The pane is a stack of sections you can show, hide, reorder, and rename:
- Search box: filters the rows already on screen as you type, so it stays instant however many groups are pinned
- App Folders: inside a file dialog, the folder you set as that app's starting point
- Groups: your pinned folder groups
- Recent: folders browsed directly in Explorer, captured through window activation, title changes, and a light periodic check, with a location-URL fallback when the shell returns nothing, and a configurable count from 5 to 50
- This PC: a This PC row that opens the folder and expands to the drives, each drive expanding into subtrees that enumerate lazily like the native Explorer tree
- Network and Linux (WSL): each its own section with a proper icon and a visibility toggle
- Recent Apps: the programs you have been using, each opening its app
Drag files from Explorer onto a pinned folder to file them. Dropping moves on the same drive and copies across drives, while Ctrl forces a copy, Shift forces a move, and Alt creates a shortcut. The operation runs through the shell, so progress, conflicts, and undo behave exactly as they do in Explorer.
An optional AppBar at the left screen edge, independent of the window pane.
- Auto-hide collapses it to a thin strip that slides out on hover
- A setting shows it on every virtual desktop instead of only the one it opened on
- Clicking a folder navigates the active Explorer window and brings it forward, or opens a new window when none is open
QuickPane attaches to file Open and Save common dialogs and honors the same pane mode as real windows. Inside mode shifts every one of the dialog's controls and widens the dialog so nothing overlaps the pane, and beside mode floats a pane against the dialog's edge. Both the classic dialog and the modern common item dialog navigate to the clicked folder.
A box at the top of the pane filters every row beneath it as you type. Because it narrows what is already on screen rather than searching the disk, it stays instant however many groups are pinned.
- A heading disappears along with the rows beneath it
- A folder stays visible when something inside it matches
- Escape clears the box
The programs you have been using, where a row opens its app rather than a folder. An app reaches the list either by being brought to the front or by having its Save or Open dialog used, and a setting chooses which of the two count.
- Browser rows open out into that browser's profiles, which are read from the browser's own profile list
- Chromium-family browsers and Firefox are both read
- Programs carry the name and icon Windows shows for them, which tells side-by-side installs such as Chrome and Chrome Canary apart
- The folder an app's dialog was last sent to is on the row's right-click menu
Right-click a folder while an app's Save or Open dialog is open and choose "Always start {app} here". That app's dialogs then offer the folder from an App Folders section at the top of the pane, which appears only inside a dialog.
An optional shortcut moves focus into the pane, where the arrow keys move between folders and Enter opens one. It stays off until it is switched on under Settings, Hotkeys, so no key combination is taken from the rest of the system by default.
Each profile is an independent workspace with its own groups folder, recents count, and sidebar width.
- Switch profiles from the tray icon's right-click menu or from the profile tab row under the title
- The profile tab row can auto-hide, sliding out when the cursor is over the header
- Manage profiles in a multi-column settings layout with add, remove, and rename
- Drag a group between profile columns to move it, or hold Ctrl to drop a copy so one group can live in more than one profile
Section headers, groups, and folder subtrees remember whether they are open, keyed by section type, group folder, and tree path. The state survives pane rebuilds, profile switches, window switches, and restarts.
- A title header with the logo and a chevron collapses the pane to a thin strip, or toggles auto-hide on the desktop dock
- Dark and light themes, applied live
- Adjustable pane width from 160 to 400 px, dragged from the inner edge
- Settings apply live with no Apply button
- Windows 10 or Windows 11, 64-bit (developed and tested on Windows 10 LTSC)
- .NET Framework 4.8 runtime (preinstalled on current Windows)
- To build from source: Visual Studio 2019/2022 with the .NET Framework 4.8 targeting pack
- To build the installer: Inno Setup 6+
- Download the latest
QuickPaneSetup.exefrom the Releases page (or build it yourself below) - Run the installer. It installs per-user with no administrator rights, registers the Pin to Quick Pane folder verb, adds a startup entry, and launches QuickPane
- Open any Explorer window and the pane appears inside it
git clone https://github.com/lso2/QuickPane.gitBuild the app
- Open
QuickPane.slnin Visual Studio - Select the Release | x64 configuration (x64 only)
- Build the solution. The executable is produced at
QuickPane\bin\x64\Release\QuickPane.exe - Run
QuickPane.exe
Build the installer (optional)
- Build the app first so
QuickPane.exeexists at the path referenced in[Files] - Open
Installer.issin Inno Setup and press Compile - The single-file
QuickPaneSetup.exeis produced in the output folder
The installer's
[Files]source points at theRelease\x64output. If you buildDebug, changeReleasetoDebuginInstaller.iss.
QuickPane sits alongside Windows' built-in navigation pane rather than replacing it, so the two will show side by side until you turn the native one off. In any Explorer window, open the View tab, click Navigation pane, and uncheck Navigation pane so QuickPane is the only tree on the left.
- Right-click any folder in Explorer and choose Pin to Quick Pane, or right-click inside a folder's empty background, or drag a folder into the pane
- Click a pinned folder to navigate the current Explorer window to it
- Drag a group, tab, or pin to reorder it
- Drag one group onto another to merge their tabs
- Drag a tab into empty space to split it into a new group
- Right-click a group or section header to rename it
- Open Settings and pick Inside, Beside, or Off under Pane mode
- Enable the Desktop dock for a screen-edge bar that works in any mode
- Switch from the tray menu or the profile tab row under the title
- Add, rename, remove, and move groups between profiles in the Settings window
- Open Settings from the tray icon or the gear in the pane
- Grouped into tabs: Groups, Pane, Hotkeys, Connections and Backup
- Adjust mode, theme, pane width, recents count, section visibility and order, the desktop dock and its options, the profile tab row, which apps Recent Apps lists, the keyboard shortcut, and profiles
- A footer shows the running version and offers a download when a newer release is published
- Changes apply live
All data is stored locally under your user profile:
%APPDATA%\QuickPane\
├── settings.json # All settings, sections, dock options, and profiles
├── Groups\ # Groups, tabs, and pinned shortcuts on disk
├── uistate.txt # Remembered open/closed state of sections, groups, and trees
└── debug.log # Diagnostic log
Groups are stored as ordinary folders: a group is a folder under Groups\, a tab is a subfolder, and a pin is a .lnk shortcut. You can back up, edit, or rearrange the Groups tree directly and QuickPane reflects it.
- No cloud sync: everything stays on your computer
- No accounts: no login or registration
- No telemetry: QuickPane makes no external network requests
- Readable formats: a JSON settings file and ordinary Windows shortcuts you can open and back up anywhere
{
"groupsPath": "%APPDATA%\\QuickPane\\Groups",
"sections": [
{ "type": "groups", "visible": true, "order": 0 },
{ "type": "recents", "visible": true, "order": 1 },
{ "type": "computer", "visible": true, "order": 2 },
{ "type": "network", "visible": true, "order": 3 },
{ "type": "linux", "visible": true, "order": 4 }
],
"recentsMaxCount": 15,
"sidebarWidthPx": 220,
"mode": "inside",
"desktopDock": false,
"desktopDockAutoHide": true,
"desktopDockAllDesktops": false,
"profiles": [
{ "name": "Profile 1", "groupsPath": "%APPDATA%\\QuickPane\\Groups", "recentsMaxCount": 15, "sidebarWidthPx": 220 }
],
"activeProfile": 0,
"showProfileTabs": true,
"profileTabsAutoHide": false
}| OS | Supported | Notes |
|---|---|---|
| Windows 11 | ✅ | Full support |
| Windows 10 (incl. LTSC) | ✅ | Developed and tested here |
| Windows 8.1 | Untested; some shell integration may differ | |
| Windows 7 | Untested; the Explorer window classes differ | |
| macOS / Linux | ❌ | Windows-only (Win32 + WPF) |
Make sure Pane mode is Inside or Beside rather than Off in Settings. A new window shows the pane the moment Windows has presented it and laid out its toolbar, so the pane appears on its own without you resizing the window.
QuickPane navigates file dialogs through the address bar rather than the File name box, so clicking a folder changes the location without committing a save. If a third-party app runs its own custom dialog that fights the inside layout, QuickPane drops that dialog to the non-invasive beside pane automatically.
Closing QuickPane restores each window's content view to full width. If a window was mid-load when QuickPane exited, open a new window and it will be normal.
The project uses the C# 7.3 language version that is the default for .NET Framework 4.8. Build with the .NET Framework 4.8 toolchain rather than retargeting the project to a newer framework.
QuickPane is a tray application built on WPF and documented Win32 interop only; it never injects code into explorer.exe, so a fault in QuickPane can never bring Explorer down. The core ideas:
- SetWinEventHook out of process discovers Explorer folder windows and tracks them as they are created, shown, moved, activated, and destroyed
- Inside mode reparents a WPF
HwndSourceas aWS_CHILDof theCabinetWClasswindow and shifts Explorer's content host (ShellTabWindowClass) to the right. A readiness gate holds the shift until the window is actually presented and its toolbar has laid out, so the pane never flashes blank or sits over the toolbar - A short burst, not a constant poll, holds the split the moment a window opens or is activated, because those are the only times Explorer resets its content to full width. Resize is held purely from location events, so dragging the window edge stays smooth
- Beside mode makes the Explorer window the pane's owner via
GWLP_HWNDPARENT, so Windows keeps the pane at that window's z-level and on its virtual desktop with no manual tracking - File dialogs are detected as a
#32770carrying aComboBoxEx32(classic comdlg32) or aSHELLDLL_DefView(modern common item dialog). Requiring#32770is deliberate, because the desktop itself hosts aSHELLDLL_DefViewand must never be matched - The desktop dock reserves the screen edge with
SHAppBarMessageand pins itself to every virtual desktop throughIVirtualDesktopManager - Groups on disk are folders of
.lnkshortcuts, read and written through the shellIShellLink, so the model is just files you can see - Settings serialize to JSON with
DataContractJsonSerializerusing atomic temp-then-replace writes, with migration that upgrades older files in place; remembered open/closed state lives inuistate.txt
QuickPane/
├── QuickPane.sln # Visual Studio solution
├── Installer.iss # Inno Setup installer script
├── CHANGELOG.md # Version history
├── screens/ # Screenshots used in this README
└── QuickPane/
├── QuickPane.csproj # Project (.NET Framework 4.8, x64, WPF)
├── app.manifest # Per-monitor DPI, runs without elevation
├── App.xaml(.cs) # Tray host and service startup
├── Interop/
│ ├── NativeMethods.cs # All Win32 P/Invoke
│ ├── WinEventHook.cs # Out-of-process window-event hooks
│ ├── ExplorerNavigator.cs # Navigate a real Explorer window
│ ├── DialogNavigator.cs # Detect and navigate file dialogs
│ └── VirtualDesktop.cs # Virtual-desktop queries and pinning
├── Explorer/
│ ├── ExplorerWatcher.cs # Discovers windows, drives layout, burst enforcer
│ ├── ExplorerWindow.cs # One embedded (inside) pane and its content shift
│ ├── ExplorerFollowerWatcher.cs # Beside-mode follower panes
│ ├── DialogPaneWatcher.cs # Panes for Open/Save dialogs
│ ├── DialogInsidePane.cs # Inside-mode pane for a dialog
│ ├── RecentTracker.cs # Capture real Explorer navigation
│ └── AppBarHost.cs # Desktop dock AppBar
├── Models/
│ └── Models.cs # Settings, profiles, and pinned-folder models
├── Services/
│ ├── SettingsStore.cs # JSON load, save, migrate
│ ├── GroupStore.cs # Groups, tabs, and pins on disk
│ ├── UiState.cs # Persistent open/closed state
│ ├── RecentFoldersService.cs # Recent list model
│ ├── DriveService.cs # Drive and tree enumeration
│ ├── KnownFolders.cs # Known-folder resolution
│ ├── ShellLink.cs # Read and write .lnk shortcuts
│ ├── FileDropOps.cs # Shell move/copy/shortcut drops
│ ├── ThemeService.cs # Dark / light theming
│ └── Log.cs
└── UI/
├── SidebarControl.xaml(.cs) # The pane shell
├── GroupSection.xaml(.cs) # A group with its tabs
├── ComputerSection.xaml(.cs) # This PC, drives, trees
├── RecentsSection.xaml(.cs) # Recent folders
├── ShellRootSection.cs # Network and Linux roots
├── FolderItem.xaml(.cs) # One folder row
├── FolderTreeNode.cs # A lazy tree node
├── SettingsPanel.xaml(.cs) # Settings
├── GroupPickerWindow.xaml(.cs) # Pick a group when pinning
├── TextPrompt.cs # Top-level prompts for text entry
├── DropLineAdorner.cs # Reorder drop line
└── DragGhostAdorner.cs # Drag ghost
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes (keep to documented Win32 and the existing C# 7.3 / .NET Framework 4.8 target)
- Build and test on Windows 10 or 11
- Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
PlexPixel (plexpixel.com)
MIT, see the LICENSE file for details.
⭐ If QuickPane made Explorer feel like home, please star the repository!
If QuickPane saves you time every day, consider supporting its development.
Why support?
- ☕ Fuel continued development
- 🚀 New features and modes
- 🐛 Faster fixes and updates
- 📚 Better documentation
Made with ❤️ for people who live in File Explorer.


