Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 38 additions & 10 deletions .github/release-notes.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,47 @@
rexplorer's context menu on the desktop: right-click the desktop and get the same menu as in a rexplorer folder.
Lower CPU use and quicker responses: rexplorer no longer reloads a folder on every change notification, preloads
less, and keeps slow shell work off the window's thread.

**Install.** Download the zip, extract it, and run `rexplorer.exe` to try it. `rexplorer.exe --install` makes it
the default file manager for your user; it needs no administrator rights. Already installed? Run the new
`rexplorer.exe --install` to replace the old copy. Undo with
`%LOCALAPPDATA%\Programs\rexplorer\rexplorer.exe --uninstall`.

**Changes.**
- Desktop context menu: a small helper (`rexplorer --desktop`, one per sign-in) shows rexplorer's menu when you
right-click the desktop. On icons it has the shell's verbs for the selection; on the background it has View,
Sort by, Refresh and Paste plus the shell's background verbs. Explorer still draws the desktop, the taskbar and
Start. Install adds a Startup shortcut so the helper runs at every sign-in, and starts it right away.
- Install and uninstall close a running helper before they replace or remove the exe, and start it again
afterwards. If an install fails, Roll back also removes or restores the Start menu and Startup shortcuts.
- Not covered yet: right-dragging desktop icons (the press goes to the menu), and Shift+F10 or the Menu key on the
desktop, which still open Explorer's menu.
**CPU and latency.** Measured on the developer's machine against 0.1.1.
- Change notifications (#11): a folder whose files keep changing reloads at most once a second, and not at all while
the window is minimized; restoring it catches up once. A folder under constant writes costs about a third of the
CPU it did, and about none while minimized. Idle CPU is about 7x lower.
- Sidebar (#12): it is rebuilt every 30 seconds while shown instead of every 5, and right away when a drive is added
or removed.
- Hover preview (#9): only text files and light images (png, jpg, gif, bmp, webp, ico) are loaded ahead when the
pointer rests on them, only once it has stopped moving for the hover delay, and only while rexplorer is the
active window. PDFs and other heavy types are previewed only when selected.
- Preview pane (#10): showing the same file again keeps its preview handler instead of starting a new one.
- Home (#13): it is built faster at startup, and its icons repaint in batches.
- First launch (#14): Windows' system icons are exported only when the theme uses them (`icon_theme=default`).
First-launch CPU went from about 4.5 s to 0.5 s.
- Icons view (#15): heavy types (PDF, video, documents) show icons instead of rendered thumbnails; pictures keep
thumbnails, and only pictures are loaded ahead of the scroll.
- Open terminal (#16): it starts in the background, so the window no longer waits for it.
- From the #17 backlog:
- Sorting runs on the load thread. Cell text and icons are cached, so repaints and type-to-select no longer ask
the shell again.
- Switching tabs reloads a folder only if it changed while the tab was in the background.
- Thumbnails of rows scrolled past are skipped, and thumbnails are scaled off the window's thread.
- Copy, Cut, Paste, Delete and Properties no longer load every shell extension (Copy: about 350 ms down to 80 ms).
- A navigation that is superseded stops early. Search stops at its result cap, and the elevated index search can
be cancelled.
- The breadcrumb chevron no longer lists network folders, the hidden folder tree is not kept in sync, and the
text preview reads up to 64 KB.
- A second launch waits for a busy first window instead of opening its own window after 3 s.

**Fixes.**
- Sorting keeps the selection on the same files. Before, it stayed on the same row positions, so a Delete right
after a sort could act on a file you had not picked.
- Sorting in the Icons and Thumbnails views no longer leaves thumbnails on the wrong files.
- Open terminal finds Windows Terminal installed outside the Store (scoop, the zip) on PATH, and never runs a
`wt.exe` found through the browsed folder.

**Roadmap.** `VERSION-1-X.md` lists what a stable 1.0 needs; each item has an issue in the v1.0 milestone (#71).

The binary is built by GitHub Actions from the tagged commit; `SHA256SUMS.txt` lists the checksums. It is not
code-signed, so SmartScreen may warn on first run.
4 changes: 2 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 5 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ Sidebar, every row read from the shell with its localized name and icon:
Click a row to go there; the row of the current folder, or of its nearest ancestor, is highlighted. Right-click a
pinned Quick Access folder for **Unpin from Home**, a frequent (not pinned) one for **Pin to Home**, a bookmark for
**Remove bookmark** (its `bookmark.<label>` line leaves settings.ini). Pinned and frequent are told apart by the
shell's `System.Home.IsPinned` property. The rows are built on a worker thread, rebuilt every 5 s while the window is active and right after
shell's `System.Home.IsPinned` property. The rows are built on a worker thread, rebuilt when the window is activated, every 30 s while the sidebar shows, when a drive comes or goes, and right after
a pin or unpin from rexplorer, so the sidebar fills in after the first listing. More > **Folder tree** shows the
shell's folder tree in the sidebar's place (choose it again for the sidebar).

Expand Down Expand Up @@ -406,9 +406,10 @@ Icon themes: `icons\<name>\` holds PNGs named by extension (`rs.png`, `pdf.png`.
the system icons, for folders, archive members and search results alike. A folder whose name ends in a themed
extension (a zip, a folder to the shell) gets that extension's PNG. PNGs are decoded on first use, so a theme of
hundreds costs nothing at startup. `icons\default` is written on first run: `folder.png` and `file.png` in the
theme's accent, then, in the background (about ten seconds), Windows' own 48 px icon for every extension registered
on the machine that has an icon of its own (about 560 here; `system-icons.txt` lists them and marks the export
done; delete it to pick up extensions registered since). The export never overwrites a PNG, so edit or replace any.
theme's accent. Only while a theme sets `icon_theme=default`, the app also exports, in the background (about ten
seconds), Windows' own 48 px icon for every extension registered on the machine that has an icon of its own (about
560 here; `system-icons.txt` lists them and marks the export done; delete it to pick up extensions registered
since). The export never overwrites a PNG, so edit or replace any.

Opening-app icons: a file type Windows registers without an icon of its own shows Explorer's blank page (`.ps1` on
a machine whose PowerShell file type was never registered, `.py` or `.md` opened with an editor that registers no
Expand Down
Loading
Loading