Multiple Clipboards on Mac OS X
We all copy and paste without thinking about it. Can you remember back to when you started using a Mac and were introduced to the notions of copying and pasting, and the invisible but omnipresent "clipboard"? Probably you understood right away, thought to yourself, "good idea," and just moved on. At that time, you also had to internalize the fact that any time you copy, you wipe off the clipboard whatever you copied previously.
This fact is probably by now so deeply internalized that you no longer realize how much it dictates your working habits. You are unconsciously careful, after copying (or even more critical, after cutting, which makes the data live in the clipboard and nowhere else) not to hit Command-C again until you’ve pasted the current clipboard to retain it. Nevertheless, I bet you’ve made that mistake on occasion, each time cursing at the loss of the previously copied data.
Another frequent situation is that you have more than one thing to move from one place to another, either within the same application or between applications. You’re probably so accustomed to inconvenient ways of coping with this necessity that you don’t even think of them as workarounds. For example, knowing that you need to move three sentences from various places within a paragraph, you copy and paste the whole paragraph and pare down the pasted results afterwards. But there are also situations where this strategy fails, and you’ve probably found yourself resigned to going back and forth, back and forth between two applications, copying and pasting, copying and pasting.
Various individual applications assist with these difficulties. Many applications let you split a window so that you can see two parts of the same document at once, which makes it a lot easier to move bits from one general area to another. And more and more applications now provide multiple internal clipboards, or something equivalent: for example, Nisus Writer, BBEdit, and Microsoft Word do this. But what’s really needed is multiple clipboards at the system level, and it’s no credit to Apple that the clipboard of 2003 is so much like that of 1984.
The situation is particularly surprising in view of the fact that Mac OS X’s clipboard underpinnings are considerably more sophisticated than in previous systems. The clipboard is now the responsibility of a background daemon called "pbs" (for "Pasteboard Server"). This daemon is perfectly adequate to provide multiple clipboards (pasteboards), and in fact already does so. You may have noticed, for example, that the text you enter into the Find dialog in Safari then shows up in the Find dialog in BBEdit; that’s because pbs maintains a separate Find Pasteboard. In fact, pbs maintains five pasteboards, and applications are free to add others. Thus, if you were the developer of two applications, you could allow each of them to copy and paste extra data by way of a sixth pasteboard, which other applications could use too if they knew about it. At present, however, only one of pbs’s pasteboards is the General Pasteboard, the one that all applications know about and share during Copy and Paste operations. To implement multiple pasteboards at system level would be simply a matter of adding more General Pasteboards, and providing an user interface to them. (Look at BBEdit to see how such an interface might work.)
Anyway, until Apple wakes up to these possibilities, there are third-party utilities to provide multiple clipboards on Mac OS X right now, and this article describes three of them: PTHPasteboard, Keyboard Maestro, and CopyPaste X.
PTHPasteboard — PTHPasteboard’s chief virtues are its simplicity and its price (free!). It’s an ordinary application that runs in the background; it has no Dock icon, but rather appears as an icon in the rightward part of the menu bar. Every so often (I believe it’s every half-second) behind the scenes, it polls the clipboard, and if the clipboard’s contents have changed it adds them to a list. Thus, as long as you don’t copy too frequently, all your copied material (up to a user-configurable limit) finds its way into this list. From here it can be recovered and pasted.
To see the list, you do one of three things. You can click on the PTHPasteboard icon in the menu bar; you can type a user-configurable hot key combination; or you can choose from the Services menu, in those applications that support services. Any of these brings up a floating window listing the currently saved bits of clipboard data; clicking one pastes it at the insertion point in the current application, or you can hit the Escape key to dismiss the window.
PTHPasteboard doesn’t work well with Classic applications – it doesn’t paste at all, though it does seem to see copied material correctly, and it can usually at least alter the contents of the clipboard even if it can’t make them appear in a document. Its menu item in the Services menu uses the keyboard shortcut Shift-Command-V, and this can’t be changed – a minor point, since it doesn’t interfere with any other application’s use of this shortcut, but it does mean that such an application overrides PTHPasteboard’s use of it, and in any case user-configurability would be nice. Its appearance as an icon in the menu bar is often useless to me, since typically my real menu items crowd out any extra menu bar icons, and it’s unnecessary because the floating window can be summoned with a keyboard shortcut instead. (The menu bar icon can be removed, but then you have to keep the floating window always visible; I don’t see the logic behind this.)
But these are quibbles. PTHPasteboard is robust, it’s simple, it has a small footprint in memory and CPU time, it does the job, and it’s free.
Keyboard Maestro — Keyboard Maestro, by Michael Kamprath, is actually a sort of macro utility. It revolves around the notion of attaching a keyboard shortcut to an action or sequence of actions; such actions can include things like hiding applications, opening a particular file or folder, running an AppleScript or Unix script, typing text, and changing sound volume or screen brightness. It’s an application switcher, too. And it also functions as a multiple clipboard utility, which is why it has found its way into this article.
Keyboard Maestro’s multiple clipboard interface is somewhat similar to PTHPasteboard’s, and is also reminiscent of John V. Holder’s QuickScrap, which I remember using on Mac OS 9 some years ago. It responds to particular user-configurable keyboard shortcuts for cutting, copying, and pasting. When you cut or copy with one of these keyboard shortcuts instead of the standard Command-X or Command-C, Keyboard Maestro puts up a window with a list of clipboards; here, you choose either to append a new clipboard to the existing list or to reuse one of the existing clipboards. The clipboards can be assigned names, and you can get some idea of what’s in them through a tooltip that appears when you hover the mouse over one of them. Keyboard Maestro performs the cut or copy back in the application you were originally in, puts it on the normal clipboard and in its own clipboard list, and returns you to what you were doing. Pasting works similarly; Keyboard Maestro shows you its list of clipboards, and you pick the one you wish to paste.
Keyboard Maestro has the advantage of being extremely clean and simple. It’s also free, as long as you don’t want more than four clipboards at time (and just $20 to get as many as you like). Plus, of course, you get Keyboard Maestro’s other macro and application-switching features, which you can use or disable as you please. It doesn’t work well with Classic; in my tests, copying or pasting with Keyboard Maestro in Classic applications caused the current selection to be changed, so that the wrong material was copied or replaced in the document. On the other hand, PTHPasteboard doesn’t work well with Classic either, so between the two of them it comes down largely to a choice between very different interfaces and overall approaches.
PTHPasteboard doesn’t require any special action on your part in order to remember what you copy; it simply remembers everything that passes through the system’s clipboard. That’s great for those times when you realize after the fact that you need some material copied earlier, but it also means that everything you copy is remembered whether you like it or not. Thus, if you set the list size at ten, and you realize that you need the data from eleven copies ago, you’re out of luck because it’s fallen off the end of the list. You get no choice between copying to PTHPasteboard’s list and just copying normally. Keyboard Maestro, on the other hand, offers exactly this choice. That’s good, but now you face the opposite disadvantage: if you don’t remember to copy something with Keyboard Maestro explicitly, it doesn’t go onto the list. Also, having to pass through a window every time you want to copy to Keyboard Maestro’s list might strike you as helpful or might deter you from using it at all. It’s all a matter of your particular needs and your peculiar psychological makeup. The best way to see how you feel about the interface is to try it.
CopyPaste X — CopyPaste X is the descendant of the Classic extension I reviewed in TidBITS-364 from 1997. In Mac OS X, it’s an ordinary application, which means it’s more compatible and reliable than ever before. It also means you don’t have to run it all the time; I frequently don’t, and then when I want it I can launch it from anywhere, using a universal contextual menu item that it optionally installs.
Once CopyPaste is running, it provides ten numbered clipboards, accessible most simply by keyboard shortcuts that work within any application: Command-C-1, Command-V-1, Command-C-2, Command-V-2, and so forth (the trick is to hold the Command key while striking first the letter, then the number). You can turn these shortcuts off, or replace Command with Control. Furthermore, these ten clipboards constitute a set, and you can switch among any number of sets, again using a universal contextual menu, or with CopyPaste’s Dock menu, or by means of a floating palette. Furthermore, every time you copy or cut in the ordinary way, the data goes onto a Clipboard Recorder list (similar to PTHPasteboard), accessible in the same three ways.
These features are supposed to work across the Classic boundary, in cooperation with the Classic CopyPaste extension (version 4.5). When this cooperation is working, it behaves just as you would expect: what’s copied with Command-C-1 on one side of the X-Classic boundary can be pasted with Command-V-1 on the other side, and whatever is copied in the ordinary way on one side ends up in the Clipboard Recorder on the other. Plus, the CopyPaste X palettes can be used to copy and paste in Classic applications. My experience, however, is that this cooperation is rather flaky. You must start up CopyPaste X before you start up Classic, and the Classic extension loses its ability to list the ten clipboards hierarchically in the Edit menu. More important, sometimes Classic will crash, and often CopyPaste X will freeze up and stop working altogether (and at this point it can even interfere with the ability to do ordinary copy and paste). For stability, therefore, I find it best to disable CopyPaste Classic altogether, which is a pity.
CopyPaste also contains a surprisingly full-featured word processor (the "clipboard editor"), and implements a number of text-munging functions (changing to lowercase, for example). I regard these features as unnecessary bloat. Text-munging would be better implemented separately, as a Service perhaps; properly speaking it has nothing to do with the clipboard at all. Word processing should be left to the user’s choice of dedicated word processor. Instead of these ancillary features, I’d prefer to see attention paid to better reliability in the cooperation between the Mac OS X and Classic versions.
The manual is pretty good, but it requires the built-in word processor, and has not been always been correctly or completely translated from the original German. This adds to one’s overall sense that many areas of CopyPaste suffer from a rather amateurish quality. Nonetheless, at $20 CopyPaste remains a bargain, and its implementation on Mac OS X is a significant achievement. Personally, I like its interface the best, in particular the keyboard shortcuts Command-C-1 and Command-V-1 and so forth, which allow me to communicate with each specific clipboard numerically by means of the keyboard alone.
Picking a Paste Pot — Whatever utility you choose, you owe it to yourself to try multiple clipboards. You’ll wonder how you ever got any serious work done without them. Having only one clipboard is like being able to use only application at a time; it’s downright primitive, the sort of thing we ought to have left behind back in the days of System 6. Thanks to these utilities, you can save your Mac OS X machine from this Dark Ages holdover.
PayBITS: Did this article help you work better? Copy and paste
the URL below into a Web browser and support Matt via PayPal!
Read more about PayBITS: <http://www.tidbits.com/paybits/>