osascript "establecer límites de ventana" no funciona después de la actualización de Mavericks

2

Tengo una serie de funciones de bash que ejecuto al comienzo de cada día para comenzar a trabajar. Todos se parecen mucho a esto:

mind() {
  osascript -e 'tell app "Terminal"
    do script "ssh -A [email protected]"
    set bounds of window 1 to {50, 50, 1200, 900}
  end tell'
}

Después de actualizar a Mavericks, esto funciona en su mayoría , pero no coloca la esquina inferior derecha de la ventana. Es decir, coloca la esquina superior izquierda de la nueva ventana en 50, 50 , pero no puede cambiar el tamaño de la ventana.

He reinstalado XQuartz y lo tengo funcionando. ¿Cómo puedo obtener este tamaño para cambiar el tamaño correctamente? ¿Mavericks cambió la forma en que bash habla con AppleScript / XQuartz?

    
pregunta acobster 23.10.2013 - 20:39

4 respuestas

4

Intente cambiar los atributos de tamaño y posición o, en su lugar, utilice Eventos del sistema:

tell application "Terminal"
    tell window 1
        set size to {1150, 850}
        set position to {50, 50}
    end tell
end tell
tell application "System Events" to tell process "Terminal"
    tell window 1
        set size to {1150, 850}
        set position to {50, 50}
    end tell
end tell
    
respondido por el user495470 25.10.2013 - 17:43
2

La respuesta de Lauri casi me funcionó, pero tuve que ejecutar el script dos veces. Configuración de la posición antes de que el tamaño fijo. Parece que se establece un tamaño que haría que la ventana salga de la pantalla ...

tell application "System Events" to tell process "Terminal"
    tell window 1
        set position to {50, 50}
        set size to {1150, 850}
    end tell
end tell

Además, la primera vez que lo ejecutes, deberías recibir un mensaje sobre seguridad, asegúrate de ingresar a Pref. del sistema - > Seguridad y amp; Privacidad - > Privacidad - > Accesibilidad y compruebe "Terminal.app"

    
respondido por el Charles 30.01.2014 - 16:20
0

Solucioné el problema temporalmente al repetir el comando set bounds tres veces seguidas.

  1. La primera llamada movió la ventana (Terminal en mi caso) a la posición correcta y le dio la altura correcta, pero el ancho era misteriosamente igual al peso.
  2. La segunda llamada amplió la ventana pero a 1.5 el ancho solicitado (con globo ocular).
  3. La tercera llamada lo hizo justo.

Esto es ligeramente diferente a su problema pero lo suficientemente cerca como para que la solución funcione. Repetir el comando dos veces podría ser suficiente para ti.

    
respondido por el Simon 24.10.2013 - 23:44
0

Muevo mi computadora portátil a varios escritorios con monitores externos. Una de estas, todas las posiciones son ahora (Mavericks) evaluadas en relación con "cualquiera que sea la pantalla en la que se encuentre la ventana". En otros, esto no es así.

    
respondido por el jackr 13.02.2014 - 18:50

Lea otras preguntas en las etiquetas