AppleScript to Toggle the Mac Desktop

Here’s an AppleScript I use to quickly toggle desktop visibility for taking screenshots and recording screencasts that I thought might be useful for others.

Download the source, then open the file and paste the code into AppleScript Editor, or your editor of choice, compile and save. As always, scripts like this work best using FastScripts from Red Sweater Software.


tell application "System Events"
    set frontMostApp to name of the first process whose frontmost is true
end tell
try
    set theDefault to ((do shell script "defaults read com.apple.finder CreateDesktop") as integer) as boolean
on error -- if the default value doesn't already exist, create it.
    do shell script "defaults write com.apple.finder CreateDesktop 1"
    set theDefault to ((do shell script "defaults read com.apple.finder CreateDesktop") as integer) as boolean
end try
do shell script "defaults write com.apple.finder CreateDesktop " & (((not theDefault) as integer) as string)
tell application "Finder" to quit
delay 1
tell application "Finder" to launch
tell application frontMostApp to activate

Note: This single script turns off the desktop if it’s on, and turns it on if it’s off – just to clear up the question should it need to be asked.

Posts

5 Comments

  1. GUido says:

    I ve used the stopy bout i cant toggle on my desktop again HElp!

  2. neeks says:

    It would be even nicer if you replace the last line with

    tell application “Finder” –selects application
    quit
    delay 2
    activate application “Finder”
    end tell

    This re opens the windows that were already open when calling the service.

    • Jim Mitchell says:

      Thanks for the suggestion, neeks.

      An even more elegant solution is to capture the frontmost app first, then hide the desktop, restart the finder, and then reactivate the app that was frontmost.

      I’ve updated the script to reflect that. Works great with FastScripts, too.

  3. Brendan says:

    Thank you. Created and loaded into my Quicksilver catalog.