Is it possible to disable autosave?


#1

I have a script watching for changes to my TaskPaper file. If I pause too long in the middle of creating a task, it sees my partial change and starts syncing, which causes a bit of chaos. Is it possible to keep TaskPaper from writing to the disk until I actually press Save?


#2

Sorry I don’t know of an easy way to do it. Maybe instead make your script that watches the file not trigger until the file hasn’t changed for some period of time. That would be a more robust solution I think.


#3

That’s a pretty painful way to work, though: that means I have to save my TaskPaper file and then wait for some period of time before it shows up in my other app (Habitica). Right now it’s pretty much instantaneous.

Why does TaskPaper autosave in the first place? It’s not what I’d expect. It still says “Edited” in the title bar, but apparently it’s already saved to disk? That’s rather misleading, no?


#4

I guess I’m not sure I fully understand the problem, I was thinking you would need to delay the running of your script by maybe 0.5 seconds or something. TaskPaper’s just uses the build in system document/save/autosave behavior. In that system a manual save is more like saving a new version that you can browse using time machine, then just a plain save. You might search more generally about cocoa’s autosave system, there might be system wide settings or flags that you can tweak to adjust the autosave delay, I’m not really sure.


#5

Wow, really? I had no idea that was a feature built into the OS. TextMate certainly doesn’t do anything like that, but it does preserve open windows and preserve the contents of unsaved documents between quitting and reopening. I thought that was all the new OS-level features did.

Delaying by 0.5 seconds doesn’t really cover it for me. If I type half of a task and then need to go look something up before I can finish it, my script has already seen the half-baked task.

But I found the answer! You can turn off autosaving with:

defaults write com.hogbaysoftware.TaskPaper3.direct ApplePersistence -bool no