0 votos

Posicionar Windows a través de la línea de comandos

Tengo un poco de rubí que dimensiona y reposiciona Windows a un diseño guardado. Utiliza un fragmento de AppleScript para hacer realmente 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 Me aparece el siguiente error:

    37:43: execution error: Gitbox got an error: Can’t get bounds of window 1. (-1728)
  2. Algunas posiciones de las ventanas 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 forma más sólida de establecer el tamaño y las posiciones de las ventanas?

6voto

Malik hassan Puntos 16

El problema que tienes con Gitbox es porque no todas las aplicaciones son scriptables. Lo que significa que no puedes hablar con ella a través de applescript. Lo que puedes hacer para aplicaciones como esa es usar los Eventos del Sistema para hacer algo de eso por ti.

* Comprobar si se puede hacer scripting *

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

Obtener los límites a través de los 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

Establecer los límites a través de los 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

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X