Playing with AppleScript I want to manipulate the location of a few windows with
position but I'm having an issue defining the monitor. Currently I have several different size and brand monitors I connect to with my MacBook during my travels. The only repeating occurrence with all four monitors I connect to is that the monitor I want to manipulate includes the menu bar.
When testing with
do shell script "system_profiler SPDisplaysDataType I'm not sure if the returned text of
Main Display: Yes considers the main to be where the menu bar resides from the extraction:
Graphics/Displays: Intel Iris Pro: Chipset Model: Intel Iris Pro Type: GPU Bus: Built-In VRAM (Dynamic, Max): 1536 MB Metal: Supported Displays: Color LCD: Display Type: Built-In Retina LCD Resolution: 2880 x 1800 Retina Mirror: Off Online: Yes Rotation: Supported Automatically Adjust Brightness: Yes Connection Type: DisplayPort Thunderbolt Display: Display Type: LCD Resolution: 2560 x 1440 Main Display: Yes Mirror: Off Online: Yes Rotation: Supported Automatically Adjust Brightness: No Connection Type: DisplayPort
If my assumption of the
Main Display is correct how should I properly grep the resolution of the identified main display so I can manipulate the windows?
When I research it would appear some commonly just step into each display:
- Positioning a window with AppleScript using dual monitors
- Run AppleScript for Specific Monitor
- Cannot get or set the window size of some apps using AppleScript?
- Set position of window with AppleScript
So I don't know if this would be two questions in one. I'm somewhat confused on how the sequence is determined when connecting to multiple monitors (such as today I might be connected to a thunderbolt display but tomorrow I might be connected to two Dells monitors through my two DisplayPorts) and if there is a way to target a monitor in particular based on the menu bar.
I can already detect the app and it's size with:
tell application "System Events" to tell application process "Notes" to set theSize to get size of window 1 set theWidth to item 1 of theSize set theHeight to item 2 of theSize
but my issue falls in determining the resolution so I can calculate the
bounds to move the app window.