About macgrunt

publishing industry production grunt : interested in workflow automation and optimisation : particularly applescript

InDesign tip : #34

sometimes things go awry with InDesign and it behaves abominably. sometimes things go even more awry and you can no longer open the application at all. these are the times to trash your preferences. but sometimes even this doesn’t work — and that’s what we’re going to cover in this post.

but first — trashing preferences. the best way to do this is to manually remove two files (if it’s running, quit InDesign to do this). both of these can be found in the user ‘Library’ which is, in recent versions of OSX, a hidden folder which does not normally show up in the Finder’s Go menu. but if you click Go and then hold down the option key — you’ll see Library get added to the list :
two version of the Finder's Go menu.

once inside the library folder, navigate to and delete these two files (after making a backup copy somewhere) :
> Preferences > Adobe InDesign > [version number] > [language] > InDesign Defaults
> Caches > Adobe InDesign > [version number] > [language] > InDesign SavedData

unfortunately, deleting those two files will also delete handy things like print and document presets and whatnot (luckily, things like workspaces, customised keyboard shortcuts, and PDF presets are not lost) BUT it will fix InDesign in the overwhelming majority of cases.

sometimes however this DOES NOT work and InDesign will continue to crash when attempting to start up. this may be caused by some recalcitrant recovery data. so the next thing to try is deleting this folder — also in the caches folder (again, after making a handy backup copy somewhere) :
> Caches > Adobe InDesign > [version number] > [language] > InDesign Recovery >

but once in a purple-polka-dotted moon you may find that EVEN THIS DOES NOT WORK. then it’s time to get radical and delete everything else inside that last level of the caches folder (again, after … you know the score):
> Caches > Adobe InDesign > [version number] > [language] >

if even THAT doesn’t work then … well … you’re on your own. sorry.

macgrunt icon

InDesign tip : #33

this post may become a bit of a hodge-podge of a couple of different things, but the main message for today is …

if you have not already ‘upgraded’ to InDesign CC
— DON’T DO IT.

the CC version of InDesign is proving to be a real dog — it sporadically suffers from serious time lags for even the most mundane tasks (eg. selecting text) and is clunky in a bunch of other ways (the UI is simply grotesque — quite windows-like — click to enlarge) :
dialogs comparison between CS6 and CC

we’ve already looked at solving one speed issue that’s been with us since CS4 — the live preflight ‘feature’ — way back in InDesign tip : #09.

upgrading your operating system to OS X 10.9 does help the CC time lag issue significantly, but does not completely resolve the problem. so, you need a couple of other workarounds to help speed things up. these are NOT optimum solutions because they take away some handy functionality which many of us have come to rely upon — but they will help to save you from punching yourself in your own head.

with CC, the speed issue seems to become noticeable once you’ve imported a bunch of high res images (anything more than about half a dozen appears to unsettle the poor blossom). so here are two things to change to get things rolling again (somewhat).

the Pages panel generally looks something like this (screen grabs have been taken from CS6, but most versions are similar) :
pages panel with thumbnails

click on the little icon in the top right corner and you’ll get a dropdown menu — select Panel Options … :
pages panel dropdown

then you can uncheck the thumbnails checkbox :
pages panel options dialog

and all you get is blank page previews :
pages panel without thumbnails

then do the same with the Links panel :
links panel with thumbnails

links panel dropdown

links panel options dialog

links panel without thumbnails

while you’re in the links panel options dialog, you may want to have a bit of a look at the other things you can display in the columns (top section of links panel) and the link info (bottom section). you may find there’s stuff here which is specific for your workflow :
links panel with additional rows
the columns of the links panel can be resized (click and drag the little black line between column headings) and rearranged (click and drag the column heading itself).

you may even find it helpful to set up different versions of the links panel for different workspaces (see tip #08 if you have not yet discovered the benefits of workspaces). for example, some people find it handy to have a basic setup (similar to above) for standard work, but a more extensive set of choices for a separate prepress workspace :
links panel extended

as mentioned, this is not an ideal workaround, but if you’re stuck with InDesign CC and you find the time-lag issue excruciating, then give this a go, at least until Adobe get their act together and restore InDesign to its former glory.

macgrunt icon

InDesign tip : #32

it’s amazing the stuff you’ll find sometimes just by poking around in a program. it seems that if you hold the command key while selecting InDesign > about InDesign you’ll get this panel :
InDesign Component Information Panel

it contains all kinds of gobbledegook — the top section of the panel relates to the InDesign application, the bottom section is about the current document.

no doubt this stuff is useful to professionals who know what’s what, but the bit that’s probably most informative to us amateurs is the document history in the bottom left corner. if you scroll down in that panel you find a blow-by-blow rundown of what’s happened to the document since it was first created in InDesign :
Indesign Document History 01
this one shows a document that was originally converted from a QuarkXpress file back in 2009, has been ‘saved as’ several times, and went through a conversion this morning when it was opened on a different machine in a different version of InDesign.

the listed dates may well help you track down earlier versions of a document but it’s particularly good at letting you know when a file might be getting a little tired (before it finally falls over and refuses to budge).

there are two ways to quickly build a fresh version of a failing file. the first way is the ‘authorised’ technique : save or export your file to the idml format, then open and save. the advantage of this method is that you get an exact duplicate of the old file (with ALL styles, swatches, etc.). the new document history will look something like this :
Indesign Document History 02

but way back in tip #05 we looked at a different method. it basically involves moving pages to a new document :
Move Pages dialog

this is a superior method in several respects : it’s faster, especially as documents get bigger (‘converting’ an idml file can often take some time) ; it also strips out all unused styles, swatches, master pages, etc. so you basically end up with a cleaner file. and the new document history will look something like this :
Indesign Document History 03

have a look and add a comment if you find another cool use for the Adobe InDesign Component Information panel.

macgrunt icon

Photoshop action : flexagon

christmas is a good time for doing stuff with the kids and we’ve been playing around with a few paper toys.

flexagons are groovy little things but they’re a real bugger to set out the artwork for. so here’s a photoshop template and action to do the difficult bits. if you don’t know what a flexagon is, check out this demo from dutchpapergirl, who also shows how to score, fold and glue the finished product.

the blank template looks like this :
screen grab of blank template

just place your artwork in a single layer behind the 3 hexagonal windows. the artwork layer needs to be ‘flattened’ — if it is just graphics with a transparent background, the action won’t work properly :
screen grab of loaded template

then ensure your artwork layer is selected in the layers panel and run the action to rearrange the various bits :
screen grab of finished layout

be aware that only the front faces of the flexagon display your original artwork :
screen grab of front faces

you get a different result if you flip the flexagon over :
screen grab of reverse faces

those funky snowflakes are based on artwork created by the talented chris spooner, who can be forgiven for drawing 8-ray snowflakes because he’s offering the vectors for free download.

you can download the photoshop template and action here.

and if you like mucking about with paper toys like the flexagon, you should also check out the crazy paper thing.

macgrunt icon

renaming finder items IV — part 3

the last two posts looked at using applescript to develop an app to make batch renaming finder items even easier than automator, or bridge, or whatever. first, we created the basic functionality, then we improved the script to make it more user friendly. this post will be the final instalment — the final revision to optimise usability.

to understand this post you’ll first need to review renaming finder items IV and renaming finder items IV — part 2.

the app has been created as a droplet — drop files on the app’s icon and they are processed by the script. pretty simple. but the app would be better still if it could be activated in a number of ways. so, we’re going to alter it so that, as well as accepting dropped files, it can accept a dropped folder of files, or just run when it is double-clicked.

it would also be better if it ran faster.

making it faster is easy. in its current form the script will rename 1000 files in a bit over a minute — not bad. but if you take every instance of this line :

tell application "Finder"

and replace it with :

tell application "System Events"

you’ll find that renaming 1000 files will take about a second. that’s even more not bad.

“System Events is an agent (or faceless background application) that supplies the terminology for using a number of features in AppleScript scripts. … Provides terminology to access disks, files, and folders without targeting the Finder. This can be more efficient than using the Finder …”
Mac Developer Library

ok, so much for speed, now for the varied functionality. the original script started with an on open command and assumed that the user would be dropping a bunch of files on the droplet.

here’s how to change that on open command so that it could accept either a bunch of files or a folder :

on open (mgDropped)
  tell application "System Events"
    if (count of mgDropped) = 1 then
      if (mgDropped as string) ends with ":" then
        set mgFiles to files of item 1 of mgDropped
      else
        display dialog "You're really using a script to rename one file?" & return & return & "OK ... whatever."
        set mgFiles to mgDropped
      end if
    else
      set mgFiles to mgDropped
    end if
  end tell
  my mgProcess(mgFiles)
end open

the files to be renamed are now defined by the variable mgFiles before being passed to the subhandler mgProcess. the reason we are now using a subhandler for the renaming is that the on open command is not the only script initiator — we’ll also be including an on run command.

the on run command is what allows the app to run by just double-clicking it. when the app is double-clicked it will ask the user to choose a folder of files to rename — again passing those files to the mgProcess subhandler. so the full start of the script now looks like this :

-- thanks to Yvan Koenig for the on run/on open clue :
-- http://macscripter.net/viewtopic.php?id=41214
on run
  set mgFolder to choose folder
  tell application "System Events"
    set mgFiles to files of mgFolder
  end tell
  my mgProcess(mgFiles)
end run

on open (mgDropped)
  tell application "System Events"
    if (count of mgDropped) = 1 then
      if (mgDropped as string) ends with ":" then
        set mgFiles to files of item 1 of mgDropped
      else
        display dialog "You're really using a script to rename one file?" & return & return & "OK ... whatever."
        set mgFiles to mgDropped
      end if
    else
      set mgFiles to mgDropped
    end if
  end tell
  my mgProcess(mgFiles)
end open
---------------------------------------------

so, to reiterate, having both the on run and on open commands allows this script to behave both as a standard app and as a droplet.

there are a bunch of other minor revisions that need to be made to the original script to accommodate this new functionality — not least the encapsulating of the basic script within a subhandler. the new completed script would look like this :
screen grab of finished EasyRenaming script

but you can get the complete EasyRenaming app here.

have fun improving this script for even greater functionality.


• related post : renaming finder items : renaming using automator or applescript.
• related post : renaming finder items II : renaming by list.
• related post : renaming finder items III : renaming by creation date.

macgrunt icon