Sous OSX, puis-je lancer, positionner et mettre à l'échelle une application à l'aide de AppleScript / Automator?

2

Je cherche à automatiser le lancement de mon espace de travail. J'utilise plusieurs applications, soigneusement positionnées sur deux moniteurs, et j'aimerais pouvoir lancer mes présentations préférées en un seul clic.

Je sais comment lancer plusieurs applications avec un script d'automation. Maintenant, je dois juste pouvoir placer les applications où elles appartiennent sur l'écran.

Merci beaucoup.

Fuzz doux
la source
Ce sera plus difficile parce que vous utilisez deux moniteurs ... De plus, avez-vous besoin de repositionner plusieurs fenêtres de la même application? Des scripts comme celui-ci n'ont cependant pas tendance à durer très longtemps. Il pourrait être plus utile de le décomposer en actions permettant de lancer chaque application et de définir des limites pour Windows.
Lri
Non, je dois juste ouvrir textmate, terminal, une fenêtre de recherche et firefox, firefox occupe tout un moniteur, les autres partageant le plus grand écran.
Doux Fuzz

Réponses:

1

Ceci, bien que possible, peut être un peu trop compliqué à faire avec un script. Voici un exemple de script partiel qui restaure les fenêtres firefox et itunes (adapté du script trouvé ici .)

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

Je vous suggère de regarder cet utilitaire pour plus de flexibilité:

http://cordlessdog.com/stay/

ghoppe
la source
0

Voici un autre exemple utilisant 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

Travailler avec plusieurs moniteurs nécessite cependant beaucoup trop de magie.

SizeUp a des actions distinctes pour déplacer une fenêtre vers le moniteur suivant et définir des limites pour les fenêtres.

Lri
la source
Est-ce délibérément incomplet? dtw/dth(largeur / hauteur du bureau, je pense) ne sont pas définis.
Daniel Beck
@ Daniel Ils sont sur la deuxième ligne du script. :) Et ajoutons ici, donc il ne semble pas que je modifie le message pour ajouter le dtwet dth- je viens de tombé sur ce tout en lisant les archives DF: Daring Fireball: Obtenir la taille de votre écran avec AppleScript, la manière paresseuse . Il montre comment bounds of window of desktopéchoue avec plusieurs moniteurs.
Lri
OK - Ces lignes ressemblaient au reste lorsque je l'ai lu la première fois. Belle trouvaille.
Daniel Beck