# Side Bar Enhancements takes over both Sublime Text sidebar menus, and asks you to blank the originals by hand

> A Python Sublime Text package that puts a trash delete, a clipboard and a close-rename-reopen cycle into the sidebar, in exchange for suppressing two built-in context menus by hand. The readme explains those two empty files in detail and leaves four other shipped files unexplained.

**titoBouzout/SideBarEnhancements** — Side Bar Tools and Enhancements for Sublime Text. Files and folders.

- Repository: https://github.com/titoBouzout/SideBarEnhancements
- Stars: 2,221 · Forks: 379
- Language: Python
- License: not declared
- Published: 2026-10-14 · Updated: 2026-10-14 · Language: en
- Canonical page: https://hysenlabs.com/projects/titobouzout-sidebarenhancements

## What the package changes when you delete, rename or move

titoBouzout/SideBarEnhancements is a Sublime Text package written in Python, and its audience is narrow: people who reorganise files and folders from the sidebar while a project is open. The readme names 3 additions. Delete becomes "move to trash". A clipboard appears. And "files affected by a rename/move command are closed, renamed/moved, and re-opened again", which reverses the usual outcome of a move, where a buffer closes and the file has to be found again. None of the 3 is an editor setting; all of them arrive through a context menu resource file. Code sits in `SideBar.py`, with `SideBarAPI.py` beside it, and there is no panel or preferences page anywhere in the documentation, so configuration means editing files inside a package folder rather than filling in a form. The readme also gives no keyboard shortcut for any of the 3 items, so nothing here tells you which key to press.

## Two empty files decide which sidebar menu wins

The override is the part that catches people out. `Side Bar.sublime-menu` is "designed to fully replace both the `Side Bar.sublime-menu` and `Side Bar Mount Point.sublime-menu` context menus from the `Default` Package", and installing that resource over the built-in one is not enough on its own. Stock entries have to be suppressed by hand, by creating 2 empty files inside your own copy of the built-in `Default` package:

```bash
<data_path>/Packages/Default/Side Bar Mount Point.sublime-menu
<data_path>/Packages/Default/Side Bar.sublime-menu
```

Both files must exist and hold nothing. Where the directory is missing, the readme points at "Preferences -> Browse Packages" to create it. Until they exist, a stock installation shows built-in rows and package rows in one menu, which reads like a failed override rather than a half finished install. Nothing documents a removal path for those 2 files, so putting the original menus back means deleting them again, and the readme does not say whether they survive a fresh editor install.

## Promote and Unpromote against the Mount Point menu

2 menu items carry the folder management logic, and both live in the menu you are suppressing. "Promote" takes any folder visible in the FOLDERS trees and "ALSO makes it a Mount Point (i.e. top-level folder)", on top of the top-level folders already in the project. The readme calls "Unpromote" its "opposite", then defines its job in detail: it replaces the "Remove Folder from Project" item from the `Side Bar Mount Point.sublime-menu` context menu, and "accomplishes the same thing without deleting the folder". That difference is the whole point of the rename. One row is named after a destructive action, the other after its effect. Clicking that row then means something different from what a Sublime Text user expects, and nothing in the readme flags the change. Both items speak about folders, and no file-level equivalent appears anywhere in the readme, so a reorganisation plan that works on individual files gets nothing from these 2 entries.

## The clipboard entry has no documented scope

Renames carry the most moving parts, because the package takes responsibility for buffer state. Instead of leaving the editor to drop the file, it closes the affected files, performs the rename or move, and re-opens them, so a folder restructure does not scatter closed tabs across the session. `SideBar.py` is where that sequence lives. The clipboard entry beside it is described in the documentation with 3 words, "a clipboard", and no statement about whether it shares state with the system clipboard. That silence matters for anyone expecting to paste between a sidebar copy and an external application. `hurry.filesize` is bundled for formatting file sizes, which is how the sidebar prints a readable size without a separate dependency, while `desktop` hands files to system handlers. The reopen step is tied to the files a rename catches, and no limit on it, no confirmation step and no way to skip the reopen appears in the readme.

## Why desktop, send2trash and hurry.filesize sit in the repo

A look at the top level listing explains why no pip step appears anywhere in the instructions. Alongside the menu resources and `SideBar.py`, the repository carries `desktop/`, `edit/`, `hurry/` and `send2trash/` directories, and the readme credits 4 external libraries with an upstream page each:

```bash
http://pypi.python.org/pypi/desktop
http://pypi.python.org/pypi/Send2Trash
http://pypi.python.org/pypi/hurry.filesize/
```

Vendoring those directories is what lets the package work by being unzipped into a Packages folder. What you inherit in exchange is copies pinned by the author rather than versions your system resolves, and `send2trash` decides where a deleted file goes by talking to the desktop trash of the running system, so a locked down profile changes what Delete does. Held in `edit/` is "Edit.py", described as an ST2/3 Edit Abstraction, the compatibility layer that lets one code path serve both editor generations; the default branch of the repository is named st3.

## Rolling back to the pre-13-Jul-2023 build by hand

After 13-Jul-2023 the package was simplified, and the rollback route pins one commit instead of a version. In order: remove the installed package, open the pinned tree, download the zip, unzip it into the right folder, restart. That is 6 steps, all of them manual.

```bash
https://github.com/titoBouzout/SideBarEnhancements/tree/289fa49d005352c47cfb9ba36656794dade7ced3
Code(green button) -> Download Zip
Sublime Text -> Main menu bar -> Preferences -> Browse Packages
Packages/SideBarEnhancements/
```

Nesting is the part that bites. The readme tells you to make sure the result is not double wrapped as "Packages/SideBarEnhancements/SideBarEnhancements", because an archive that unpacks one level too deep leaves the package unloaded without an error worth reading. With no version list to compare against, the only evidence the rollback worked is that the sidebar entries appear after the restart step. The readme has no separate install section, so those same steps, minus the removal of the old copy, are the only route it documents for putting a copy in place.

## Four shipped files the readme never explains

A close look at the repository listing says more about the scope than the documentation does. `Commands.sublime-commands` is the file Sublime Text reads to add entries to the command palette, and the readme names not one command it registers. `FindFilesResults.sublime-syntax` is a syntax definition for the find-files results view, so the package reaches past the sidebar into how the editor's own file finder output is tokenised. `Side Bar.sublime-settings` carries settings keys the readme never lists, which leaves that file as the only place to look for them. `Tab Context.sublime-menu` and `Main.sublime-menu` widen the reach past the sidebar to tab and main menus, and `SideBarAPI.py` is the only file named like an entry point for other packages, with no documented call in it. Same listing holds `push.sh`, `.gitignore` and a `.github/` directory, which are delivery plumbing rather than features. The contradiction is plain: a package whose documentation is mostly about 2 empty files also ships a syntax definition and a command palette file.

## The cost of taking over both sidebar menus

The bill for all this is manual, and it persists. You create files inside a directory that belongs to Sublime Text's built-in package, the stock rows disappear while those files exist, and the readme documents no undo beyond deleting them again. Licensing has the same shape. No licence identifier is recorded in the repository metadata, while readme.md carries the full GNU General Public License notice and a copyright line reading Copyright (C) 2011-2024 Tito Bouzout, which covers every file in the package unless a file says otherwise. On upgrades: the last push was on 2026-07-17, and the repository publishes no GitHub releases, so there is no tag an installer can pin to and no upgrade note to read before a change lands in `SideBar.py`.

The real alternative is Sublime Text's own `Default` menus. They cost nothing, they keep the built-in Remove Folder from Project row, and they ask for no patching of a shipped package; what you give up is the trash delete, the clipboard and the close-rename-reopen behaviour. Second option is the pinned pre-13-Jul-2023 build, the package as it stood before the simplification, again installed from a zip by hand.

## Conclusion

Adopt Side Bar Enhancements if you reorganise files from the sidebar during a real refactor, because the trash delete, the clipboard and the close-rename-reopen cycle are the reason to install it. Leave it out if you already script moves outside the editor, or if patching a folder that belongs to Sublime Text's own Default package is not something you want to maintain by hand. Verify two things first: that the two empty files you create in that folder are the only step between you and a working trash delete, and that the vendored send2trash copy talks to a desktop trash your system actually has.

## FAQ

### How do I install Side Bar Enhancements in Sublime Text?

The readme gives no package-manager line. Its only documented route is the manual one used for the older build: unzip the files into `Packages/SideBarEnhancements/` reached through Preferences -> Browse Packages, then restart the editor.

### Why do the default sidebar items still show after installing Side Bar Enhancements?

The package's menu file overrides the built-in one, but the readme says you also have to create 2 empty files under `<data_path>/Packages/Default/` to suppress the stock rows. Until both exist, the built-in entries and the package entries share one context menu.

### What is the difference between Promote and Unpromote in Side Bar Enhancements?

Promote turns any folder visible in the FOLDERS trees into a Mount Point, meaning a top-level folder, alongside the ones already in the project. Unpromote replaces the Remove Folder from Project item and reaches the same result without deleting the folder.

### Does Side Bar Enhancements delete files permanently?

Its delete item is described as "move to trash", handled by the bundled `send2trash` library that the readme credits with sending to trash instead of deleting forever. Which desktop trash receives the file follows from the system the editor runs on.

### Can I go back to the version of Side Bar Enhancements from before 13-Jul-2023?

Yes, by hand. Remove the installed package, download the zip from the pinned commit tree, unzip it into `Packages/SideBarEnhancements/` without wrapping it a second time, and restart Sublime Text.

### Which external libraries does Side Bar Enhancements need?

Four, all credited in the readme and carried inside the repository: desktop, send2trash, hurry.filesize and Edit.py. Their directories sit in the top level listing, so nothing is installed through pip at install time.

## Sources

- [Issues](https://github.com/titoBouzout/SideBarEnhancements/issues)
- [README](https://github.com/titoBouzout/SideBarEnhancements/blob/st3/README.md)
- [titoBouzout/SideBarEnhancements on GitHub](https://github.com/titoBouzout/SideBarEnhancements)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/titobouzout-sidebarenhancements
