Linelark Finder++
What shipped in 0.5.0.
The things a file browser is expected to have
- ⇧⌘. shows hidden files in the file views. The sidebar’s own tree does not answer to it — a deliberate limit rather than an oversight, so a favourite’s disclosure chevron still reflects only its visible contents.
- Sortable list columns. Click Name, Date Modified or Size to sort by it, click again to reverse. A genuinely new navigation resets to the location’s natural order; reloading the folder already on screen keeps the sort you chose.
- Rename in place. In the list view the name becomes editable where it sits, with the base name selected and the extension left alone. Return commits, Escape reverts. The other views keep the dialog.
- It reopens where you left off — the last real folder, the view mode, and which panels were open.
- Get Info says more: kind, size, created and modified dates, permissions, owner and the default app, with a combined count and total size when several items are selected.
Files move with a way back
- Undo and redo for move, rename, New Folder and Move to Trash. Not for copy, duplicate, compress or Make Alias. Undoing a New Folder trashes it rather than deleting it outright, so anything put in it since goes with it; redo makes a fresh empty one rather than trying to restore what undo just trashed.
- Undoing a trash needed the app to know where each item actually landed in the Trash, which it used to discard. It now keeps that, and restores files to their own individually different original folders rather than to one shared destination.
- Progress and a Cancel button once a move or copy is big enough to be worth watching, with the work off the main thread. Quitting while one is in flight asks rather than silently refusing.
- Drag and drop between folders, in the list and icon views only — not the gallery filmstrip, not the column browser. It is always a move; there is no Option-to-copy modifier yet.
- ⌘X marks files for moving, alongside Control-X. It only claims the keystroke once nothing is being edited, so ⌘X still cuts text in the search field, the path field and an inline rename.
The folder keeps up with the disk
- A change made elsewhere — another app, a shell in the terminal panel, a sync client — now appears in the folder on screen within about half a second, rather than waiting for ⌘R.
- It watches the folder’s own file descriptor rather than using the full FSEvents API, which would earn its complexity only for a recursive or rename-surviving watch this does not need. Recents, Shared, the tags and search results are still re-read on ⌘R alone.
- Reloading — from the watch, from ⌘R, or after any file operation — now keeps the selection as well as the scroll position.
Under the surface
- Directories are read off the main thread, and the views work from a
FileItemmodel rather than passing bare URLs around. Applications and Utilities are merged the way Finder shows them, in every view, including what is on the system volume. - A file is thumbnailed once rather than once per view size. The icon grid asked for a 64pt preview and the gallery filmstrip for 56pt — two cache entries for the same file, so switching between Icons and Gallery regenerated every thumbnail on screen.
- The sidebar’s check for whether a folder can be expanded no longer runs synchronously the first time it is asked, so a favourite on a slow network share cannot hold up launch; and it is re-checked rather than cached forever, so a folder that gains its first subfolder later stops being stuck without a chevron.
Known limits in 0.5.0
- Undo, redo and drag and drop shipped with unit coverage over the file-moving primitives but without hands-on use in the running app. The release commit says so plainly, and so does this: they are the newest and least exercised things in the build, and they are the ones that move your files.
- Undo covers move, rename, New Folder and Move to Trash — not copy, duplicate, compress or Make Alias.
- A cut is internal to this app rather than the system clipboard, and files stay put until pasted. An existing name at the destination is never overwritten; that item stays pending instead.
- The toolbar field filters the current folder by name. Going deeper or looking inside files means picking one of the offered searches, and those results are a query rather than a folder: at most 1000 files, nothing can be created in them or pasted into them, and they are only as good as the Spotlight index behind them.
- Recents, Shared and the tags are queries, not folders. Recents shows at most the 500 most recent files, Shared and each tag at most 1000 items, and all of them are empty if Spotlight is off or the volume is not indexed.
- The Trash usually opens in Finder.
~/.Trashis behind Full Disk Access, which no app can ask for — you grant it in System Settings or not at all. Without it the row hands the Trash to Finder. - There are no AirDrop or Network rows: neither is a folder and neither has a public API. Sending files by AirDrop still works from Share… in the contextual menu.
- Cross-volume moves use Foundation’s move operation. This is not a resumable transfer engine.
- “Open in New Finder++” launches a second copy of the app rather than a second window. The two share Favorites through the same preferences, so whichever changes them last wins.
- It does not replace Finder and does not integrate with the system as a Finder substitute.
