4 years ago
4 years ago
If you have to attach external displays and projectors on a regular basis (or switching workspace environments a couple of times a day) you might have searched for a way to exchange primary and secondary display in OSX with a shortcut as well - the official way is to drag and drop the menu bar in the system preferences each time, quite a hassle:
I am using a Retina display now but the latest published version of the handy command line tool cscreen still works perfectly and flawless.
You can create a little app with Automator and then call it with Alfred.app or Quicksilver (and/or Marco Polo) to switch your display order just with the hit of a shortcut - very handy :)
The documentation for the tool can be listened with the command
./cscreen -h
and will give you:
Usage: cscreen [-d ] [-x ] [-y ] [-r ] [-s ] [-v] [-m] [-f] [-l] [-h]
[-d ] : specifies the bit depth (bits per pixel)
[-x ] : specifies the width in pixels
[-y ] : specifies the height in pixels
[-r ] : specifies the refresh rate in Hz
[-s ] : specifies which display to use (defaults to main display)
use a as the option to -s to specify the action on all displays
[-i ]: picks a display based on CGDirectDisplayID (permanent per display)
continue to use '-s a' for "all displays"
[-v] : display valid modes (use -s to specify display or nothing for the default)
[-m] : require an exact match
[-f] : forces settings (ignores safety mechanisms; USE AT YOUR OWN RISK)
[-l] : lists the current displays and modes
[-p] : sets the requested display to have the menu bar
[-h] : displays the usage
Note: Using -p will change the display index so you will likely want to use -l again to show the current
displays if you wish to use -p a second time.
Update: I am still on 10.9, I was told the whole situation has gotten better with 10.10..
P.s.: I wrote about this on my private blog a couple of years ago - there are some helpful comments there as well.