AutoStacks Redux: Making Leopard work another way…

Several people have been asking for a slightly modified version of AutoStacks since we released the little utility this month, health so I figured I’d revisit the tool today.

In its original incarnation, AutoStacks moved selected files to a new folder and created a new Leopard “Stack” by adding the folder to the right-hand side of the dock. This is the way I expected Apple’s Stacks functionality to work out-of-the-box, but apparently, others have their own ideas as to how Stacks should act: In particular, many people seem to want their Stacks to contain aliases to existing files, rather than the files themselves.

Not to begrudge these people, I’ve made some changes to AutoStacks that should appease both camps: Starting with version 0.2, AutoStacks will now prompt the user upon first use as to which way they would like to have it behave from then on (move the files, or create aliases to them).

After the first use, it will assume you always want it to behave the same way, and it will refrain from asking again until you decide it’s time for a change; On the off chance you change your mind, you can always double-click the AutoStacks application icon (i.e., launch it without dragging files to it), and it will be happy to ask you again.

Oh! And I almost forgot… Thanks to the the original creator of a nice set of overlay icons and information provided by these fine folks, I’ve also added an extra icon to each new AutoStack to help restore some order to your AutoStacked dock. Hope you enjoy the extra touch!

Thanks again for all the encouragement, and I hope this works for everyone else as well as it has for me. Please let me know if it doesn’t!

To install AutoStacks on Leopard:

  1. Download the latest version.
  2. Unzip it.
  3. Drag the resulting into your Applications folder
  4. From there, drag the app onto your dock (if you want it there)
  5. Now try creating Stacks by dragging files onto the AutoStacks icon

And now for the adventurous, here’s a copy of the latest source code for the app. Note that once you’ve compiled the script, you’ll need to include an overlay icon file named ” IconOverlay” (with two spaces preceding the name, which ensures the icon is the first file in the Stack when sorted by name) within the Contents/Resources subfolder of the App.

(If none of that makes any sense, well… did I mention there’s a ready-to-run compiled version of AutoStacks 0.2 here?)

Download a compiled version of AutoStacks 0.2 here or by clicking the image above.


14 thoughts on “AutoStacks Redux: Making Leopard work another way…”

  1. Hi – this is very neat. I am trying to set up a Quicksilver trigger to automatically pass the selected files to AutoStacks, but I find that if I use Quicksilver to open the selected files with AutoStacks, the created stack only contains the first item from the selection.

    I was wondering if you might be willing to make the source code for this new version available, so I can explore and try to fix this, or if you might have any idea why this is happening.


  2. Hi ZZamboni. Thanks for the comment. I don’t use QuickSilver myself (although people tell me I should), but I’ve added the source file above. If you get a working QS version, please send us a link so we can let others know, too. Thanks!

  3. Hi,

    When you make a stack of aliases the ugly little arrows show up when it is opened up. Instead of creating aliases if you create hard links (Leopard supports hard links to folders also), these arrows disappear. The only problem with creating a hard link to a folder is that you should not use ‘rm -rf’ or move to trash on those.

    I could not find a command line program in Leopard that can create links to folders. So I wrote a couple, dlink and dunlink that does that job. The programs themselves are simple C programs – calling link(argv[1],argv[2]) and unlink(argv[1],argv[2]). It looks better.

  4. Thanks, KD. I agree about the arrows, and your solution sounds like a good compromise. It should be simple enough to edit the AppleScript above to accomodate this, for those who want to try it out. I may make “hard linking” yet another option in a future version.

    I personally like to use Stacks to get things off my desktop, and creating aliases and links doesn’t accomplish this. (But others definitely seem to like the idea of links or aliases.)

  5. I use stacks for grouping together documents and applications. For example, I have stacks labeled iLife (that includes iWork also), Developer and Internet. A stack called documents contains often used documents. With this, my Dock contains only 8 application icons!

    Using stacks for just removing stuff from the desktop is underusing them 🙂

  6. Ha! You obviously haven’t seen the number of files that congregate on my desktop. 😉

    It’s interesting the many different ways different people choose to get their work done.

    I tend to work using “piles” in real life as well as on my computer: Basically, I use my desktop as a quick-access holding area as I work on dozens of files pertaining to a single project while it begins to take form: photos, artwork, text copy, requirements docs and code-in-progress (i.e., just like the actual top of my workdesk). Once things start to take shape (or become unmanageable), I can now select the relevant files, drag them to the dock, and voila: a new stack containing all the files and folders I’ve created for a single project. And now my desktop’s clear and ready for another marathon development session — but the project’s files are always within quick reach in their new Stack.

  7. Hello,

    i change the script to let add files or folders progressively :

    set bToCreate to false as boolean

    make new folder at stackFolder with properties {name:timeStr}
    set bToCreate to true
    on error
    set bToCreate to false
    end try

    if bToCreate then
    copy folder iconFile to ” ” in folder newStackFolder
    end if

    if bToCreate then
    do shell script “defaults write persistent-others -array-add ‘” & plistStart & POSIX path of newStackFolder & plistEnd & “‘”
    do shell script “killall -HUP Dock”
    — This will set the Modification Date of the IconOverlay file so it remains on top of the Stack
    do shell script “touch -mt 202001010101.01 \”” & POSIX path of iconFile & “\””
    do shell script “killall -HUP Dock”
    end if

    If this can help…

  8. Great little app!!! I’m glad to know that I’m not the only one who was disappointed with the implementation of stacks in leopard! Thanks for putting this together.

    I might have missed something though. When I select the “make aliases” preference, it’s all good when I make a new autostack… it makes the aliases for me. But when I *later drag a new file onto the stack, it moves the real file rather than creating an alias. Is there any way to customize this so that it will continue to create aliases when I add new items to the existing autostack?

    I did the little tweak to the script that was posted (changing the “–“) but the stacks continue to behave in this way.

  9. Thanks, Matt. AutoStacks only assists in the creation of a Stack; after that, all regular rules apply — and unfortunately, this is the default behavior of Stacks. However, holding CMD and OPTION while dragging files in the Finder will always result in an alias rather than a moved or copied file, so you can always create aliases this way.

  10. Hey, thanks for the quick response. That’s actually genius! I didn’t know about that little shortcut. Mission accomplished as far as I’m concerned. I had been doing command-l then dragging the alias. You’ve saved me a step… but more than that, making aliases in that way is just a ton smoother. Thanks!!

  11. No problem. For some reason, my brain never remembers the drag-and-drop shortcut, regardless. I tend to use the CMD-L too, no matter how many times I immediately think “Dang, I shoulda just…” afterwards.

  12. Not working for me. It moves the files every time I add an app to it. The first one is an alias, but all consequent ones are not.



  13. Never mind, I guess doing it the old fashion way is the only way. Works for me. You guys should look into DragThing. It creates aliases that are tracked in the event you move the original. The aliases also don’t carry the damn arrow. You can also right click on the alias and get your old fashion hierarchy, plus other cool things. I still like the Doc better, so I guess I’ll keep wishing for DragThing’s functionality in the Doc.

  14. Hi Dorian, please see comments 8 through 10 above, as it seems you may be experiencing the same issue. The stacks created by AutoStacks are, like any other Stack, nothing more than a folder, and all regular Finder rules apply.

    As for DragThing… Well, that’s a whole different thing altogether. 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *