FileShift
pendingby Qctsu
Reorder files and folders in File Explorer with drag and drop. No filename changes.
FileShift
Reorder files and folders in Obsidian's File Explorer using drag and drop. No filename prefixes, no hacks — just drag items where you want them.
Features
- Drag & drop files and folders to reorder them within the same parent
- Persistent order — survives restarts, saved in plugin data
- Toggle on/off via ribbon icon or command palette
- Works with virtual scroll — uses Obsidian's internal
vChildrenAPI for reliable rendering - Zero file modifications — order is stored in plugin config, not in filenames
Installation
Via BRAT (recommended)
- Install BRAT plugin
- Add this repo:
Qctsu/obsidian-file-shift - Enable "FileShift" in Community Plugins
Manual
- Download
main.js,manifest.json, andstyles.cssfrom the latest release - Create folder
.obsidian/plugins/file-shift/in your vault - Copy the files there
- Enable "FileShift" in Community Plugins settings
Usage
- Click the ↕ ribbon icon (or use command palette: "Toggle custom ordering on/off")
- Drag files/folders to reorder them
- Drop indicator shows above/below target position
- Order persists automatically
Commands
| Command | Description |
|---|---|
| Toggle custom ordering on/off | Enable/disable FileShift |
| Reset all custom ordering | Clear all saved orders, revert to default sort |
How it works
When active, the plugin:
- Intercepts drag events in the file explorer (capture phase)
- Blocks Obsidian's native drag-to-move-into-folder behavior for sibling reordering
- Uses Obsidian's
vChildren.setChildren()API +InfinityScrollinvalidation for reliable DOM updates - Stores order per-folder in
data.json
Compatibility
- Obsidian 1.7.2+ (uses
vChildren/InfinityScrollAPIs) - Desktop only (tested on Windows, should work on macOS/Linux)
License
MIT
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.