FileShift

by qctsu
5
4
3
2
1
Score: 35/100

Description

This plugin has not been manually reviewed by Obsidian staff. Reorder files and folders in File Explorer with drag and drop. No filename changes.

Reviews

No reviews yet.

Stats

stars
138
downloads
0
forks
1
days
NaN
days
NaN
days
0
total PRs
0
open PRs
0
closed PRs
0
merged PRs
0
total issues
0
open issues
0
closed issues
0
commits

Latest Version

Invalid date

Changelog

README file from

Github

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.

demo

Features

  • 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 vChildren API for reliable rendering
  • Zero file modifications — order is stored in plugin config, not in filenames

Installation

  1. Install BRAT plugin
  2. Add this repo: Qctsu/obsidian-file-shift
  3. Enable "FileShift" in Community Plugins

Manual

  1. Download main.js, manifest.json, and styles.css from the latest release
  2. Create folder .obsidian/plugins/file-shift/ in your vault
  3. Copy the files there
  4. Enable "FileShift" in Community Plugins settings

Usage

  1. Click the ↕ ribbon icon (or use command palette: "Toggle custom ordering on/off")
  2. Drag files/folders to reorder them
  3. Reorder: drop on top/bottom edge of an item → reorder indicator (line above/below)
  4. Move into folder: drop on center of a folder → highlight indicator, file moves into that folder
  5. 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)
  • 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 + InfinityScroll invalidation for reliable DOM updates
  • Stores order per-folder in data.json

Compatibility

  • Obsidian 1.7.2+ (uses vChildren / InfinityScroll APIs)
  • Desktop only (tested on Windows, should work on macOS/Linux)

License

MIT