Titles and Descriptions in Photos.app


Adding Captions and Comments to photos in macOS’ Photos.app is easy after you have shared it via iCloud photo sharing. But how to add titles or descriptions to photos you don’t plan on sharing right away, such as just cataloguing old pictures for easier searching?


Get Info

The Photos UI is rater limited and no obvious place to add titles is visible. But select one or more photos, hit ⌘+I (or pick Info from the Window menu) and this opens a dialog with information about selected items, among other things, Title, Description, Keywords and Location. This is especially nice if you pick multiple items, you can assign title or description to all of them in group.


In the above examples I have picked two photos and assigned title, longer description and location to an old photo from 2001. All these fields are now searchable. I have used the description field to list people in the pictures, etc.


Google Translator Service

MacOS has very handy shortcut ⌃⌘D to look up translations in the built-in dictionary. Unfortunately this does not always help if the word in question is either not in English or the definition is equally puzzling.

Automator to the rescue

Combining sources like this question in apple.stackexchange and this blog post in blog.fosketts I created an Automator Service that takes selected text from any application and then opens Google Translate with Auto->ET translation of the selection. Also added a shortcut for it: ⌃⇧⌘D

The AppleScript

Open Automator and create a New > Service, then search for Run AppleScript and drop that into the workflow. Then paste in this AppleScript from below.

on run {input, parameters}
	set phrase to input as string
	set myBrowser to "Google Chrome"
	set toLang to "et"

	tell application myBrowser
		open location "https://translate.google.com/#auto/" & toLang & "/" & phrase
	end tell
end run

Change myBrowser to your preferred browser and also toLang to desired destination language and then save the service. I chose name Translate to Estonian for obvious reasons.

The global shortcut


Next open System Preferences > Keyboard > Shortcuts and scroll down to your new service. Then add a convinient shortcut. I chose ⌃⇧⌘D because that is similar to the official Look up shortcut.

Now go forth and translate! 🖖

Atom New Window (via AppleScript)

Again, building on my previous scripts it was dead to make a script that creates new window for Atom editor.

This is best used with Spotlight or Alfred to quickly create new window in current space (even if another window was open in some other space it will not switch there).

Alfred activating Atom New Window script
Alfred activating Atom New Window script


Download: Atom New Window v1



  1. Unzip the archive and place it in Applications folder. Right-click the Atom New Window icon and select Open and then allow OS X to open this (as it is downloaded from internet).
  2. Newer OS X versions require you to enable Assistive Access for the app. Go to System Preferences -> Security -> Accessibility and then enable this app.
Go to System Preferences > Security > Accessibility to enable Atom New Window to control application menus.
Go to System Preferences > Security > Accessibility to enable Atom New Window to control application menus.

Of course, you are advised to explore the script yourself: right click the app icon and select Show Package Contents and then open the file Contents/Resources/Scripts/main.scpt with Apple Script Editor to view it’s contents.

PS. In related posts section you can find similar scripts for other apps.

Safari New Window

Safari New Window icon

Download: Safari New Window

Previously I have written AppleScripts to open new windows for TextMate, Sublime Text 2 and also Safari. But the latter was somehow corrupt when using with Mac OS X 10.8.3, so I rewrote it based on previous two, adding features in the process:

  1. Checks if Safari is already running and creates new window (without switching spaces)
  2. Activates Safari if it’s not running yet.

The full source code is here:

-- quickly check if app is running.
-- Thanks https://discussions.apple.com/message/13184433#13184433
on appIsRunning(appName)
    tell application "System Events" to (name of processes) contains appName
end appIsRunning

property appName : "Safari"

-- Open new windows or If app is not already running, start it
if appIsRunning(appName) then
    tell application appName
        make new document
    end tell
    tell application appName to activate
end if


Sublime Text 2 New Window (via AppleScript)

Download: SublNewWindow

Building upon my older post on opening new window in Text Mate 2, I now threw together small script to do the same in Sublime Text 2.

While Sublime Text 2 is superb text editor, it is not Mac native, thus it’s even less probable that a new Mac-style Dock icon menu will appear in near future, that allows opening new window quickly. Thus a helper application is in order.


Based on the original TMNewWindow code, only small modifications were needed. One unexpected behavior was with detecting working state of the application. For whatever reason the original script gave errors when run against Sublime Text 2.

Again, the AppleScript application is linked below and feel free to send me updates and patches if needed.



Mount partitions like a boss (AppleScript)

How to quickly mount partitions when the need arises? A small AppleScript to help you out.

The need

No good comes without little drawbacks. When I swapped ODD with HDD, I noticed that it was quite a bit noisier than SSD and even compared to similar MBP with HDD in original bay (probably because ODD bay has a slot that lets noise out easily). So, now I tend to eject the secondary disk when I don’t need it, so my Mac can spin it down. All nice and dandy, but reattaching it when needed was a bit tedious.

The Script

set partList to {"Meedia", "BOOTCAMP"}
choose from list partList with prompt "Choose partitions" with multiple selections allowed
if result is not equal to false then
	repeat with part in result
		do shell script "diskutil mount " & part
		display dialog "Volume " & part & " mounted"
	end repeat
end if

This script asks for which of the partitions to mount and then iterates with diskutil through the selection.


You can copy-paste the above script to AppleScript Editor and adjust it to your needs, or you can download this as a ready to use application.



Installing Windows 7 on MacBook Pro without SuperDrive

Right after I swapped my SuperDrive to second internal HDD I was graving to move my 20 GB Boot Camp partition to the other drive and make it bigger, so that I don’t have to carry another USB disk for my games.

UPDATE: From the comments it seems that on Mountain Lion 10.8.2 you do NEED rEFIt for the Windows partition to be visible in Boot Menu.

UPDATE 2: I have confirmed lately that the official Boot Camp Assistant method does work on MacBook Pro Retina (Mid 2012) with OS X 10.8.2 (12C3012) on it. So if your Mac came without SuperDrive from the Factory, try the official method first.

UPDATE 3: @Jorge_Rui posted excellent step-by-step instructions down in the comments on how he got it working. Take a look.

What didn’t work

You can skip to Success Story if you are not curious. Also, YMMV, so if my method does not work, you can try one of these and see if you have success with them.

USB-booting installer

Boot Camp Assistant warning that I need optical drive

First I tried to fake Boot Camp Assistant to create bootable USB stick, but that did not boot for some reason. Also, booting from USB-DVD did not work. Then I used Virtual Box to fully install Windows on physical partition and that did not show up in the boot menu either. With all of these options I also combined rEFIt to no avail.

EFI, rEFIt and File Vault 2

Intel Macs have been using EFI instead of BIOS for booting up the system since the beginning. If Boot Camp dual-booting is not enough for you, there is the rEFIt alternative boot manager that gives you more power over boot options. But it turns out that although rEFIt installs without any complaints, it fails to load from File Vault 2 encrypted partition, which is understandable as I haven’t yet provided my passkey.

So, running out of options, I decided to decrypt my partition, which I’d have had to do anyway sometime to be able to resize the encrypted partition over the previous Boot Camp partition (Disk Utility is not able to resize encrypted partitions). I still had rEFIt installed and I retried some of previous failed attempts, including booting from USB, but still no effect. Finally I noticed that I had actually two boot loaders – Mac’s own Option-key triggered menu and then the rEFIt that was installed on the primary Mac OS X partition. While most of the time Mac menu didn’t show me anything besides primary partition and Recovery HD, rEFIt showed me Windows partition (sometimes two of them pointing to the same partition), but was not able to boot from them (giving different errors from EFI failures to Windows complaining that winload.exe is missing or corrupt). In the end I removed rEFIt altogether.

The Success Story

OK, enough of the failures. What ended up working was a variant of the Virtual Machine method, that used Virtual Box to make the partition bootable and then copy over the installation files to that partition. Unfortunately I can not find the original post that lead me to the idea, but it was probably somewhere in this thread.

Note: At this point I had tried multitude of setups already and I can’t be sure that all of the steps below are necessary nor that all of the required steps are listed. If you find some errors, please comment on them.

Create partition

Create a partition in some way. You can use Boot Camp Assistant to shrink existing HFS+ partition and create a FAT32 partition or you can do it yourself via Disk Utility or diskutil command line tool. I had my partition left over from one of the tries with Boot Camp Assistant and USB DVD-drive. Using Boot Camp for this step has the side effect that it gives you the option to download latest Boot Camp drivers for windows (just have a USB stick ready to store them).

Let Boot Camp Assistant download latest support software

Set up Virtual Box guest

Now eject your Boot Camp partition so that it can be remounted elewhere. (Thanks, Bill, for pointing out that I had omitted this step). I used Oracle’s excellent (and free) Virtual Box virtualization tool. To get Virtual Box to use your physical Boot Camp partition, you have to make a raw disk image that is bound to your physical disk. In my case it was the disk1 and I partition number 3 (disk1s3 as seen from Disk Utility’s Info). To create the image, change directory to some good enough place to hold the file and enter (NB! adapt to your needs):

sudo VBoxManage internalcommands createrawvmdk -rawdisk /dev/disk1 -filename bootcamp.vmdk -partitions 3

Next, give yourself access to the physical disk and the just created image files:

sudo chmod 777 /dev/disk1s3
sudo chown $USER bootcamp*.vmdk

Last thing is to actually set up Virtual Box Guest OS. There is nothing special there, except that you specify your * bootcamp.vmdk* as the startup disk, instead of creating new one.

Installing Windows

Install Windows to the Virtual Box guest as usual. I shut down the Virtual Box client at the “Setting up Windows for first use” step, but according to some posts (links to which I again have misplaced), you could stop even at the first reboot, though it didn’t seem to work in my case.

Now you should have a partition that is visible to the Mac Boot menu, but not a working Windows installation.

Next step is to restart the install, only this time on the real hardware. To accomplish this, mount the Boot Camp partition, delete everything and copy over all files from the installer ISO (Alo commented below that on his newer Mac Mini he did not need this step, but instead installed rEFIt to boot the new partition). NB! You probably need to have some kind of NTFS driver, either NTFS-3G (see my blog on how to get NTFS-3g working in Lion) or some commercial driver like the Paragon NTFS for Mac OS X I have installed.

After you copy over the files, reboot your Mac and hold down Option-key to access the Windows partition. Now install windows as you would if you had with optical disk attached.


Now that I have finally managed to jump through all those hoops to get Windows installed, I can only wish that Virtualization advances enough that I could play those old Call of Duty games without even rebooting into Windows. Until then, I hope to preserve my newly installed Windows. 😉

MacBook Pro bidrive or DIY optical bay HDD Caddy


If you ever run out of disk space on your laptop you might have wondered if you could replace your Optical Disc Drive which you rarely use anymore with another HDD. Turns out that of course you can and there are plenty of manufacturers out there who sell kits to do that. One of the most famous in Mac community is the MCE Technologies OptiBay pictured right.

But I live in Estonia and of course I wanted it NOW, so I went out for a little adventure to see if I can fit one of those el cheapo Akasa N.Stor HDD to ODD cases found in local PC store.

For the imatient: yes I can.

Read More »

TextMate 2 New Window (via AppleScript)

Often I find myself in a situation where I need to quickly paste some text and edit it a bit. Switching to TextMate also switches spaces to my last TM session, which might not be my current space. With other programs (and TextMate 1 for that matter) this can be overcome by selecting “New file” or “New window” from dock menu.

But the problem is that TextMate 2 alpha currently does not have
“New file” option in the Dock menu. I really miss this, because of my workflow – I use spaces to manage projects and programs I have open concurrently and I don’t want to mix the TextMate windows between spaces. So opening new TM2 window in current space is a must.

But surely the developers are preoccupied with more important features and thus I decided to throw in my 2 cents and cobbled together an AppleScript that one can use to open new window in current space.


Place this script in your Applications folder and wait until Spotlight has indexed it. Then push whatever shortcut you have for Spotlight (or Alfred, if you are like me) and enter few first chars. I have found that tmn is enough to trigger this application.

Hitting enter will fire this app and a sec later new TextMate window should be opened in current space. Definitely faster than switching to TM2, hitting ⌘N and then moving the window to correct space.


Download: TMNewWindow



iPhoto Empty Trash

If you use iPhoto to manage your photos and you have deleted a bunch of them either because they weren’t so good or perhaps moved to other library using iPhoto Library Manager, you notice that disk space hasn’t been freed. Fear not.

iPhoto Trash

iPhoto uses its own trashcan to store deleted photos for easy retrieval. You can view the contents of trash by clicking its icon in the left pane in the Recent section.

Empty iPhoto Trash

To free your disk space of these deleted photos you have to simply empty the trashcan. To do so, just push Empty Trash button in the upper right corner if you are inside the Trash.

Or at any time select “Empty iPhoto Trash” from the iPhoto menu as seen below.

Now it prompts you with the usual confirmation:

And when you agree, it will move the photos to the Mac OS X system Trash.

Empty Trash

After the iPhoto Trash has been emptied, the files are now in system Trash and to finally free disk space, this also must be emptied. This is done as usual, by right-clicking (Ctrl-clicking) the Trashcan and selecting “Empty Trash“. Again, it will prompt you with confirmation, but this time it includes all the files in the Trash so be sure to be sure. 😉

Safety net

As you see, freeing disk space from deleted photos can be a long walk, but after all, photos might just be our most valuable files on our computers as they are impossible to recreate.

Always make (several) backups of your photos to be sure not to loose them.