It started with a plea for help from a chap named Tim:
I’ve been a PC user for more years than I care to admit to but have
recently bought a mac (10 days ago) and am already missing a very
important app I use in my work, rest and play. Namely, a text editor
that I can leave running in the background and have it automatically
grab whatever I copy to the clipboard (the PC app is NoteTabPro). I was wondering if anyone knows of a similar app for OS X. Thanks.
Members of the 43 Folders mailing list sprang into action with a list of helpful suggestions; NoteBook, DEVONthink, OmniOutliner, Notational Velocity, Clipboard Sharing, Quicksilver; many of them among the list of usual suspects when it comes to productivity and that mysterious nirvana known as getting things done.
All of them superb bits of software that do some clever and wonderful things; but none of them quite what Tim, the original poster, had been looking for. As he and others pointed out in follow-up messages, all these suggested apps required extra key presses or mouse clicks to get the contents of the clipboard copied to a file. What he wanted was something that did archived the data as soon as it was copied.
Sure, there are plenty of clipboard history apps out there, but none of them behave quite the way Tim wanted. Most concentrate on keeping a list of the last n copies, which is then available to the forgetful user. Tim’s request specifically mentioned appending text to a file, and could be used in quite a different way. Example: consider Webstractor, the neat little app that watches your web browsing and keeps an editable copy of everything you see. A simple copy-and-keep app could provide a simpler, text-only version of the same service.
Enter Sam DeVore, full-time dad and part-time programmer. He saw the need for something new, and suspected he could create it very rapidly. He posted to the list, announcing his plan, and set to work.
Sam, from Tucson, used to teach math and science at middle school. Now he spends much of his time as a stay-at-home dad, but still likes to meddle with the occasional programming project “to keep my brain from going away,”
as he puts it. Sounds like an excellent idea.
Although most of Sam’s coding projects lean towards education, since that’s his professional background, Sam was confident that he could put together a simple clipboard monitoring application that would do what Tim had asked.
Sam started by sketching out what he needed to do as a flow chart. Good old pencil-and-paper, although he adds: “I’ll probably translate it to an OmniGraffle document later.”
“After that,” he says, “I fired up REALBasic and started down the chart.”
The original post to the list had asked for a text editor. Rather than write a new editor (there are, as we all know, plenty of decent editors for Mac), Sam thought about creating an application that could keep a constant watch on the system clipboard. When new data is copied to the clipboard, it automatically and immediately appends it to a text file.
Sam’s working environment in REALbasic
Here’s Sam’s summary of how work progressed:
“As I went along I tried to identify those actions that would be used in more then one place and made a class (object oriented dev being all the rage) out of it. This let me abstract the storage and the access to the information.
“This was all done with what has now become the debugger window as a display to let me know in the background that I was getting stuff out of the clipboard.”
Clipboard Watcher’s debug window
“At this point I was only working on the input side. I knew that appending to the text file was a no brainer, it was just a form of logging which all my apps have built-in anyway. The thing that made this app so easy was that it has no real interface, which for me is always the most time consuming aspect.
“The really funny part of this process so far is that I have spent the most time on the really ugly icons that the app has now, then on getting the web and email list infrastructure set up, and the least amount on the coding.”
As far as next steps goes, Sam’s plans are flexible. There’s a wiki where users can contribute their own suggestions.
“I’ll probably add the ability to get URLs from the major browsers and file paths from all the editors that I have (BBEdit, TextMate, MS Word, and so on). Then probably look at adding a statusItem for a Menu Bar icon.
“I think after those two things are done, I’ll toss it into the wild and see what sticks.”
Sam’s pleased with the project.
“I really get a kick out of doing quick little apps; my Dock is full of little one-trick ponies that I have done; from AppleScriptStudio apps, to shell scripts wrapped in Platypus/REALbasic.
“This is what I love about my OS X box; there are so many great tools to build little things.”
The end result is something that exactly matches Tim’s request. Clipboard Watcher (the name is still up for discussion) keeps an eye on your clipboard and adds anything in it to a text file of your choice. You can adjust what other data is added alongside each clip, such as timestamp, name of source application, and so on.
From newbie request on a mailing list, to functioning release in one week. That’s what anyone would call “getting things done”.
Don’t you just love it when a plan comes together?