web-dev-qa-db-ja.com

OSXで、applescript / automatorを使用してアプリケーションを起動、配置、スケーリングできますか?

ワークスペースの起動を自動化したいと考えています。 2つのモニターに注意深く配置された複数のアプリケーションを使用しており、1回のクリックで好みのレイアウトを起動できるようにしたいと考えています。

オートマトンスクリプトを使用していくつかのアプリを起動する方法を知っています。今は、画面上のアプリを配置できるようにする必要があります。

どうもありがとう。

2
Mild Fuzz

これは可能ですが、スクリプトを使用するには少し面倒かもしれません。これは、FirefoxとiTunesのウィンドウを復元する部分的なサンプルスクリプトです(スクリプトから適応 ここにあります 。)

property numFFWindows : 0
property FFPos : {}
property FFSize : {}
property iTunesPos : {}
property iTunesSize : {}

display dialog "Set Window Position or Save Window Position?" buttons {"Restore", "Save"} default button "Restore"
set theResult to result

tell application "System Events"
    if (button returned of theResult is "Restore") then
        -- Restore Settings
        if (numFFWindows > 0) then
            tell process "Firefox"
                repeat with i from 1 to numFFWindows
                    set position of window i to (item i of FFPos)
                    set size of window i to (item i of FFSize)
                end repeat
            end tell
        end if
        if (iTunesPos is not {0, 0}) then
            tell process "iTunes"
                set position of window 1 to iTunesPos
                set size of window 1 to iTunesSize
            end tell
        end if
    else
        -- Save Settings
        tell process "Firefox"
            set numFFWindows to count windows
            set FFPos to {}
            set FFSize to {}
            repeat with i from 1 to numFFWindows
                set end of FFPos to (position of window i)
                set end of FFSize to (size of window i)
            end repeat
        end tell
        tell process "iTunes"
            set iTunesPos to position of window 1
            set iTunesSize to size of window 1
        end tell
    end if
end tell

柔軟性を高めるために、このユーティリティを確認することをお勧めします。

http://cordlessdog.com/stay/

1
ghoppe

Applescriptを使用した別の例を次に示します。

tell application "Finder"
    set {0, 0, dtw, dth} to bounds of window of desktop
end tell

tell application "Finder"
    reopen
    activate
    try
        set bounds of window 1 to {0, 22, dtw / 2, dth / 2}
    end try
end tell

tell application "Safari"
    reopen
    activate
    try
        set bounds of window 1 to {0, 22, dtw, dth}
    end try
end tell

tell application "Terminal"
    reopen
    activate
    try
        set position of window 1 to {0, 22}
        set size of window 1 to {dtw / 2, dth - 22}
    end try
end tell

tell application "TextEdit"
    reopen
    activate
    try
        set bounds of window 1 to {dtw / 2, 22, dtw, dth}
    end try
end tell

ただし、複数のモニターを操作するには、あまりにも多くのウィザードが必要です。

SizeUp には、ウィンドウを次のモニターに移動し、ウィンドウの境界を設定するための個別のアクションがあります。

0
Lri