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.
- Drag & drop files and folders to reorder them within the same parent
- Move files into folders — drag to center of a folder to move it there (Obsidian native behavior preserved)
- 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
- Install BRAT plugin
- Add this repo:
Qctsu/obsidian-file-shift - Enable "FileShift" in Community Plugins
- 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
- Click the ↕ ribbon icon (or use command palette: "Toggle custom ordering on/off")
- Drag files/folders to reorder them
- Reorder: drop on top/bottom edge of an item → reorder indicator (line above/below)
- Move into folder: drop on center of a folder → highlight indicator, file moves into that folder
- Order persists automatically
| Command | Description |
|---|---|
| Toggle custom ordering on/off | Enable/disable FileShift |
| Reset all custom ordering | Clear all saved orders, revert to default sort |
When active, the plugin:
- Intercepts drag events in the file explorer (capture phase)
- Uses 3-zone detection on folders: top 25% = reorder above, middle 50% = move into folder (Obsidian native), bottom 25% = reorder below
- Uses Obsidian's
vChildren.setChildren()API +InfinityScrollinvalidation for reliable DOM updates - Stores order per-folder in
data.json
- Obsidian 1.7.2+ (uses
vChildren/InfinityScrollAPIs) - Desktop only (tested on Windows, should work on macOS/Linux)
MIT