Yo uso estos AppleScripts:
try
tell application "Finder"
set b to bounds of window of desktop
end tell
try
tell application (path to frontmost application as text)
set bounds of window 1 to {0, 22, (item 3 of b) / 2, item 4 of b}
end tell
on error
tell application "System Events" to tell window 1 of (process 1 where frontmost is true)
set position to {0, 22}
set size to {(item 3 of b) / 2, (item 4 of b) - 22}
end tell
end try
end try
try
tell application "Finder"
set b to bounds of window of desktop
end tell
try
tell application (path to frontmost application as text)
set bounds of window 1 to {((item 3 of b) / 2), 22, item 3 of b, item 4 of b}
end tell
on error
tell application "System Events" to tell window 1 of (process 1 where frontmost is true)
set position to {(item 3 of b) / 2, 22}
set size to {(item 3 of b) / 2, (item 4 of b) - 22}
end tell
end try
end try
Los scripts primero intentan decirle a la aplicación que cambie la propiedad de límites y luego le dicen a System Events que cambie las propiedades de posición y tamaño. El uso de System Events (o la API de accesibilidad) funciona con más aplicaciones, pero también puede parecer un poco problemático porque la posición y el tamaño no cambian al mismo tiempo. Otras aplicaciones como Slate siempre usan API de accesibilidad.