Я використовую ці 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
Сценарії спочатку намагаються сказати програмі змінити властивість меж, а потім повідомити системні події, щоб змінити властивості позиції та розміру. Використання системних подій (або API доступності) працює з більшою кількістю додатків, але також може бути трохи глюкозним, оскільки положення та розміри не змінюються одночасно. Інші додатки, такі як Slate, завжди використовують API доступності.