Take the 2-minute tour ×
Ask Different is a question and answer site for power users of Apple hardware and software. It's 100% free, no registration required.

Just wondering if there is a way to retrieve open windows and minimize them from the command line in Lion?

I have an AppleScript that does this, but it kind of slow, so wanted to know if there was anything

Thanks

EDIT: I have not completely figured out how to do it yet, but there is the command line command osascript which allows you run applescript from the command line. So you can use:

osascript -e "applescript command goes here"

SOLVED: Yes you can do it... here is how I figured it out:

/usr/bin/osascript -e 'tell application "System Events" to click (first button of (every window of (application process "firefox")) whose role description is "minimize button")'

Some other application process that I have are "Skype", "Finder", "thunderbird-bin", AppleScript Editor"

share|improve this question

migrated from stackoverflow.com Jan 1 '12 at 15:43

This question came from our site for professional and enthusiast programmers.

1  
Any command line solution would have to use the same Apple Events as the script (the Apple Events are used to talk to the applications to tell them to minimize your window), so it's likely to be just as slow... –  Michael Dautermann Dec 26 '11 at 20:16
1  
Why not use keyboard shortcuts? –  Jaypal Singh Dec 26 '11 at 23:20
1  
1. You should post your solution as an answer below rather than within the question. 2. Operating System terminal command questions are not about programming and off-topic here. –  Sparky Dec 31 '11 at 23:56

1 Answer 1

I agree that pretty much any solution you can get for the command line would have to rely on AppleScript. And your solution will work. However, rather than scripting System Events, which depends on UI events (actually moving your mouse and clicking) it's a much cleaner approach to script the application's window directly.

This way, if you move your mouse while the script is executing, it won't affect it. For minimizing all Firefox windows you could do something like:

tell application "Firefox" set miniaturized of every window to true

The property is called miniaturized for Firefox and most OS X applications, but some third-party apps, like Google Chrome, call the property minimized, so if one doesn't work, the other should. This functionality is part of the Standard Suite that pretty much every AppleScript-able application has.

For applications that don't support AppleScript at all, you can fall back to your approach and use System Events to access the windows belonging to the application's specific process running on your machine.

If I were you though, I'd try to rely on the application to minimize itself rather than through System Events where possible, as this will be much more reliable.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.