I have made some progress on TotalFinder during the weekend. This is mostly a maintenance release.
I wanted to make stable install/uninstall experience and fix bugs reported by early adopters. Thank you guys! I’ve added a new feature of updating TotalFinder via Sparkle. It was really easy to integrate. Kudos Andy!
ALPHA v0.3 changes
- NEW: Sparkle updating system.
- NEW: Added red face preventing continuous crashing during startup (because Finder is being restarted after crash by launchd).
- NEW: Added uninstall script.
- FIXED: Changed TotalFinder window level so that auxiliary floating windows are visible on top of it (more info).
- FIXED: Fixed Echelon registration into startup items. Previously Echelon wasn't started again after restart.
- FIXED: Desktop icons should persist during Finder restarts. I'm restoring important .DS_Store files to original locations during restart.
Unhappy red face
The Finder is being automatically restarted after a crash by the launchd process. This is usually a good thing. The user is not confused that her Finder is missing.
The problem with TotalFinder is that it may be unstable and crash on some machines during Finder startup. This would lead to infinite cycle of restarts and crashes. I’ve implemented sad red face, which appears as menu item if Finder crashes during the first ten seconds after launch. If you feel lucky, you may try to re-launch it again. Anyway, don’t forget to “send me”:mailto:email@example.com your crash report.
Persistent desktop settings
In v0.2.1 you might lose your desktop icons positions and other settings during system restart. This applies only when in .DS_Store redirect mode.
I did investigation of what is happening during system launch. The problem was that TotalFinder is not injected into Finder.app immediately but with some delay. In this time period Finder looks for .DS_Store on desktop, but there is no such a file, because it was redirected last time when TotalFinder was live. So Finder creates brand new .DS_Store on desktop and resets settings to defaults.
My solution to this problem is to copy important .DS_Store files back to original places when TotalFinder is about to be terminated. This works pretty reliably. Right now I’m restoring .DS_Store on user’s desktop and in user’s home folder. This seems to be working fine for me. Let me know if there is another important .DS_Store file which should be restored during Finder restart.
Towards stable TotalFinder
My goal for next week is to make TotalFinder really stable. Do some refactoring and lay out good foundation for next big feature: dual-panel mode. I know this will be hard to implement, but I’m still quite optimistic.
Thank for your time testing v0.3.