Plugins

Local Filesystem Panel

Provides local filesystem roots (drives and mount points) to the file panel.

Version 1.0.19 Official plugin Released 306 downloads

Install it from Commander: Plugins → Manage, or drop the signed bundle into the plugins/ directory.

What this bundle provides

One download, 3 plugins.

Local Filesystem Panel

dev.nuclr.plugin.core.panel.fs

Provides local filesystem roots (drives/mount points) to the file panel.

FilePanel Apache-2.0

Temporary Local Filesystem Panel

dev.nuclr.plugin.core.panel.fs.temp

Provides temporary local filesystem panel.

FilePanel Apache-2.0

Windows Shortcut Quick View

dev.nuclr.plugin.core.panel.fs.quickview.lnk

Provides QuickView support for Windows .lnk shortcut files.

QuickView Apache-2.0

About

🗂️ Local Filesystem Panel

An official Nuclr Commander plugin that adds local drives and mount points as a file panel root. It enumerates roots dynamically from the host OS via FileSystems.getDefault().getRootDirectories() — Windows shows C:\, D:\, etc.; Linux and macOS show /.

The bundle ships three plugins: the panel itself, a FAR-style Temporary Panel used to hold search results, and a Quick View provider for Windows .lnk shortcuts.

Screenshots

Nuclr Commander local filesystem panels

Copy options for local filesystem entries

✨ What it does

FeatureDetails
🖥️ Drive enumerationRe-enumerates all OS root directories on every drive-menu open, so removable media appears without a restart
⚡ Streaming listingsEntries are published to the panel as they are read, so large folders paint incrementally
📁 File operationsCopy (F5), move/rename (F6), make folder (F7), delete (F8), delete permanently (Shift+F8), create file (Shift+F4)
🔍 Find filesAlt+F7 — name masks, content search, scopes, filters, streaming results window
💽 Drive informationCtrl+L — volume type, capacity, free space and filesystem details for the current drive
📋 ClipboardCopy files, copy full paths, and paste (files or a path from text) into the current folder
🔗 Symlink resolutionFollows Windows junctions and reparse points (e.g. C:\Documents and Settings) to their readable target
📊 Selection summarySingle-item type/size line, or byte / file / folder totals for a multi-selection
🔤 SortingName, extension, modified, created, accessed, size, unsorted, plus the sort dialog (Ctrl+F3…Ctrl+F12)
📂 Directory walkingRecursive or single-level tree walk with cancellation, used by the host for size and copy scans
📋 Context menuOpen · Reveal in File Manager · Copy file(s) · Copy full path(s) · Delete
🔊 Sound eventsConfirmation / error / process-complete / popup cues routed through the host's sound service
⌨️ Go to pathCtrl+Shift+G (Windows/Linux) / Shift+Cmd+G (macOS)

🔍 Find File (Alt+F7)

A non-modal search dialog and a streaming results window.

OptionValues
Name patternWildcard mask (default *)
Containing textText, Regex or Hex match modes
Text optionsCase sensitive · whole word · invert match · explicit charset
ScopeCurrent folder · Both panels · Marked items · Volumes · Custom path
TraversalSubfolders · follow symlinks · include hidden
.gitignoreOptionally skip ignored files, using JGit's real IgnoreNode semantics — each repository by its own rules, including repositories found below the search root
FiltersModified from/to, min/max size

Results stream into a window as they are found. From there you can jump to a hit (the panel navigates to its parent folder and puts the cursor on it) or open the whole result set in a temporary panel, where the hits behave like ordinary entries — copy, move, delete, view and edit all work, and .. returns to the folder the search started from.

🔗 Windows Shortcut Quick View

.lnk files get a rendered Quick View card showing the shortcut's target, arguments, working directory, icon location, and the link's own metadata — parsed with mslinks, with a note when a shortcut carries no standard target path.

📥 Installation

Copy the signed plugin archive and detached signature into the Nuclr Commander plugins/ directory:

filepanel-fs-<version>.zip
filepanel-fs-<version>.zip.sig

Nuclr Commander verifies the RSA-SHA256 signature against nuclr-cert.pem on load. The plugin becomes available immediately without a restart.

🔨 Building

# The SDK must be installed to the local repo first
cd ../../../plugins-sdk && mvn clean install

cd ../plugins/core/filepanel-fs
mvn clean verify -Djarsigner.storepass=<password>

The build produces target/filepanel-fs-<version>.zip and a detached .zip.sig. Signing needs the keystore at C:/nuclr/key/nuclr-signing.p12 (alias nuclr).

Unit tests run headless on every build. The AssertJ-Swing GUI tests (**/*GuiTest.java) need a real, focused display and run only under -Pgui-tests.

⚙️ How it works

LocalFileSystemPlugin registers as a FilePanelNuclrPlugin. It claims a resource only when the path belongs to the default filesystem — a mounted SFTP server (filepanel-net) or a zip archive (filepanel-zip) answers Files.isDirectory() just as truthfully, and claiming those would misroute a cross-panel move. F6 therefore moves into the opposite panel only when that panel's folder is a real local directory; otherwise it degrades to an in-place rename.

Two methods the host calls on the EDT — menuItems() and getSelectionSummaryText() — deliberately never touch the filesystem. They answer from the attributes each entry already carries, because a single stat there costs the full spin-up of a sleeping HDD while nothing paints.

Deletes show a confirmation listing the full paths, then run on a virtual thread behind a progress dialog. Copy and move each have a setup dialog, a conflict dialog, and a progress dialog with pause-aware cancellation.

🗂️ Source layout

src/main/java/dev/nuclr/plugin/core/panel/fs/
├── LocalFileSystemPlugin.java    plugin entry point, action routing
├── TempFilePanelPlugin.java      FAR-style temporary panel over an arbitrary hit list
├── QuickViewLnkPlugin.java       Quick View for Windows .lnk shortcuts
├── FileNuclrResource.java        NuclrResource wrapper for local files
├── Helper.java                   resource building, symlink resolution, reveal-in-file-manager
├── PluginActions.java            action-type constants
├── SystemOpen.java               OS "open with default application"
├── SoundEvents.java              host sound cues
├── DriveInfoService.java         volume capacity / filesystem probe
├── DriveInfoDialog.java          Ctrl+L drive information UI
├── DeleteDialogs.java            delete confirmation / error dialogs
├── DeleteProgressDialog.java     deletion progress UI
├── find/
│   ├── FindFileDialog.java       Alt+F7 search dialog
│   ├── FindFileRequest.java      immutable search specification
│   ├── FindFileContext.java      panel-agnostic dialog inputs
│   ├── FindFileService.java      streaming search execution
│   ├── FindResultsWindow.java    live results window
│   ├── ScopeType.java            search scopes
│   ├── ContentMatchMode.java     Text / Regex / Hex
│   ├── GitIgnoreMatcher.java     JGit IgnoreNode evaluation
│   ├── GitIgnoreProbe.java       repository / ignore-file discovery
│   ├── LocalResourceNavigator.java
│   ├── ResourceBrowser.java
│   └── ResourcePathParser.java
└── service/
    ├── Alerts.java
    ├── ClipboardService.java     copy files / full paths, paste
    ├── CopyService.java          copy entry point, clipboard paste
    ├── CopyEngine.java           scan + byte-copy loop with cancellation
    ├── CopyOptions.java · CopyDialog.java · CopyConflictDialog.java · CopyProgressDialog.java
    ├── DeleteService.java        recycle-bin and permanent delete
    ├── MakeNewFolderService.java
    └── move/
        ├── MoveService.java · MoveEngine.java · MoveOptions.java
        └── MoveDialog.java · MoveConflictDialog.java · MoveProgressDialog.java

📚 Dependencies

Most dependencies are provided by Nuclr Commander at runtime. Only the two compile-scoped libraries below are bundled into the plugin ZIP's lib/.

LibraryVersionScopePurpose
dev.nuclr:platform-sdk5.0.0providedNuclr platform interfaces
commons-io2.22.0providedHuman-readable sizes, file utilities
org.apache.commons:commons-lang33.20.0providedOS detection
com.formdev:flatlaf (+ flatlaf-extras)3.7.1providedThemed Swing components
org.slf4j:slf4j-api2.0.17providedLogging
org.projectlombok:lombok1.18.46providedAnnotations
org.eclipse.jgit6.10.0bundled.gitignore semantics for Find File
org.jabref:mslinks1.2bundledWindows .lnk parsing

📜 License

Apache License 2.0 — see LICENSE.

Releases

Version Released Size Download
1.0.19 3.8 MB Download
1.0.18 3.8 MB Download
1.0.16 3.8 MB Download
1.0.15 3.8 MB Download
1.0.14 3.8 MB Download
1.0.13 3.7 MB Download
1.0.12 3.7 MB Download
1.0.11 3.7 MB Download
1.0.10 3.7 MB Download
1.0.9 3.7 MB Download
1.0.8 3.7 MB Download
1.0.7 3.7 MB Download
1.0.6 3.6 MB Download
1.0.5 3.6 MB Download
1.0.4 3.6 MB Download
1.0.3 3.6 MB Download
1.0.2 3.6 MB Download
1.0.1 0.0 MB Download

Details

Plugin ID
dev.nuclr.plugin.core.panel.fs
Repository
nuclrdev/plugin-filepanel-fs2
Platform SDK
5.0.0
SHA-256
85d4e6759f758b57f17b9754926e2c91f925f9ec4710c8d0df4a2432cd6700a5