Ubique las ventanas a través de la línea de comando

0

Tengo un poco de rubí que ajusta y coloca las ventanas en un diseño guardado. Utiliza un fragmento de AppleScript para realizar el posicionamiento:

osascript -e 'tell application "Twitter" to set the bounds of the front window to {894, 22, 1604, 1049}'

Sin embargo, hay dos problemas:

  1. Esto no funciona para todas las aplicaciones, por ejemplo, cuando lo uso para establecer la posición de Gitbox , recibo el siguiente error :

    37:43: execution error: Gitbox got an error: Can’t get bounds of window 1. (-1728)
    
  2. Algunas posiciones de la ventana no se guardan, por ejemplo, si ejecuto el script para reposicionar todo, luego cierro la ventana de MacVim y abro una nueva, no recordará la posición de la ventana que se acaba de cerrar .

¿Existe una manera más sólida de establecer el tamaño y las posiciones de las ventanas?

    
pregunta aaronstacy 11.12.2012 - 14:24

1 respuesta

6

El problema que tienes con Gitbox es que no todas las aplicaciones son compatibles con scripts. Lo que significa que no puedes hablar a través de Applecript. Lo que puedes hacer con aplicaciones como esa es usar System Events para hacer algo por ti.

* Comprueba si se puede escribir *

set theApp to "Gitbox"

tell application "System Events"

    set isScriptable to has scripting terminology of application process theApp

    if isScriptable then
        my scriptableApp(theApp)

    else
        my nonScriptableApp(theApp)

    end if
end tell
on scriptableApp(theApp)
    tell application theApp to get the bounds of the front window
end scriptableApp
on nonScriptableApp(theApp)
    tell application "System Events"
        set the props to get the properties of the front window of application process theApp
        set theSBounds to {size, position} of props
    end tell
end nonScriptableApp

Obtenga los límites mediante eventos del sistema

#get the bounds via system events 

tell application "System Events"
    set the props to get the properties of the front window of application process "Gitbox"
    set theSBounds to {size, position} of props
end tell

Establezca los límites mediante eventos del sistema

--set theSBounds to {{799, 490}, {513, 430}} #This is a test line that will set the bounds list so you can see the set bound code working un comment to use it

#set the bounds via system events 
tell application "System Events"
    set size of front window of application process "Gitbox" to item 1 of theSBounds
    set position of front window of application process "Gitbox" to item 2 of theSBounds
end tell
    
respondido por el markhunte 11.12.2012 - 16:19

Lea otras preguntas en las etiquetas