Eu uso esses 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
Os scripts primeiro tentam dizer ao aplicativo para alterar a propriedade de limites e depois informam aos Eventos do Sistema para alterar as propriedades de posição e tamanho. O uso de eventos do sistema (ou a API de acessibilidade) funciona com mais aplicativos, mas também pode parecer um pouco problemático porque a posição e o tamanho não são alterados ao mesmo tempo. Outros aplicativos como o Slate sempre usam a API de acessibilidade.