Habilité el dictado para las indicaciones de comando a través de la voz [lo obtuve de la aplicación Chess enviada por el sistema operativo en Lion]. Decidí darle una oportunidad a System Wide ahora en 2015 ejecutando Yosemite. Me gusta hasta ahora, ciertamente se ve mejor y funciona mejor en comparación con Lion (que debería ser el caso) Hay algunas opciones personalizables cuando 'Habilitas comandos avanzados' como abrir archivo, ejecutar flujo de trabajo, abrir aplicación, pegar texto, pegar datos y atajos de teclado.
Sin embargo, llámame perezoso, pero sigue siendo algo que me importa, frecuento Netflix, Hulu y otros sitios web al menos 4 veces al día. Me gustaría agregar un comando funcional que abrirá automáticamente una página web relacionada con ese comando. Dado que el archivo abierto es diferente al archivo de ejecución, estoy tratando de abrir Safari de forma autónoma + el nombre del sitio web en forma de URL con dictado. Lo bueno de esto es que automáticamente convierte cualquier aplicación a la que haga referencia en la ventana más frontal. Por lo tanto, la codificación debe ser mínima, y realmente no quiero crear un servicio para esto [mis servicios están creciendo, actualmente en +55 en total].
Sin embargo, soy un aficionado a Automator y estoy bien versado en él, por lo que estoy usando la herramienta Dictation Command, pero lo que no soy es un erudito de AppleScript. Después de leer la biblioteca de Applescript durante unos 60 minutos, finalmente descubrí cómo abrir una nueva ventana de Safari, activar la aplicación en caso de que no estuviera abierta e iniciar la URL:
tell application "Safari" to activate
tell application "Safari"
make new document with properties {URL:"http://netflix.com"}
end tell
Además, tengo 3 monitores. ¡Siempre tengo películas, televisión, etc. en el Número 2! Traté de poner Safari en la pantalla del monitor 2 con applescript, pero como desarrollador de iOS, en conciencia estoy demasiado avergonzado para compartir mi código, es descuidado . ¿Puede alguien dirigirme en la dirección correcta? ¿O alguien sabe una forma más simplificada de solucionar todo esto? De verdad quiero que esto funcione. Estoy en el ejército, por lo que nuestras habitaciones no son tan grandes, por lo que mi segundo monitor (27 ") es mi televisor, por lo que he creado una aplicación para iPhone solo para mis necesidades que simula estrictamente la doble presión necesaria para activar Dictado para poder fnver tv desde mi cama [no tengo apple tv].
EDITAR:Mi objetivo principal es poder usar la activación por voz para completar un sitio web específico de Safari usando Dictado para un monitor específico. No quiero sacrificar mis configuraciones de 'Espacios' o 'Control de misión' ya que he trabajado mucho para que sean beneficiosas para mi flujo de trabajo. Tengo 3 monitores, que están configurados en sucesión (es decir, el monitor 1 y 3 están uno al lado del otro en mi estación de escritorio, el monitor 1 está a la izquierda y el 3 a la derecha, el monitor 2 no está cerca del 1 o 3 que está mirando) mi cama, vea la imagen 1 como referencia. Sin embargo, están configurados en sucesión 1 va a 2, 2 va a 3. Tengo espacios configurados donde aplicaciones específicas usan el monitor número 3 exclusivamente (Xcode), lo que no lo hace tanto Por complicado que parezca, es por eso que no quiero sacrificar la configuración de mis espacios porque uso 2 como mi "TV" dedicada, esto no es
FOTO 1:
La sugerencia de miken32 funciona, pero solo para mostrarla, no para minimizarla. Minimizar es importante, porque tendré que minimizar el sitio web activo de Safari, digamos Hulu, solo para abrir Netflix porque las aplicaciones de pantalla completa no se pueden superponer. Así que inevitablemente haré otra activación por voz o minimizaré de otra manera para poder transferir sitios web sin dirigibles. Nota: a veces no quiero cerrar, a veces guardo mi lugar, por lo que minimizar es un buen recurso para mí. Esto es lo que sucede con miken32: minimiza pero creo que está tratando de volver a los orígenes que establecimos en el script, pero negativamente como en (-). NOTA: Sé que los orígenes que ves en el applescript de la película no reflejan el origen absoluto de mi monitor específico, cambié los orígenes para probar, pero para grabar la película tuve que ponerla en esa pantalla, así que la dejé como está para que puedas ver a dónde va cuando minimizas. ¡Aparte de eso, funciona muy bien por la cantidad de código! Me alegro de que hayan incluido la opción de pantalla completa incluso cuando no la pedí, eso es absolutamente lo que tenía en mente, pero no quería molestar a nadie que intentara averiguarlo, mi objetivo principal era simplemente lograrlo. el segundo monitor.
https://www.dropbox.com/s/jvmtnhh30hqmd36/answer1.mov?dl=0
La respuesta de Markhuntes funciona a la perfección, la cantidad de tiempo que tardó en cargarse en la primera ejecución fue de unos 15 segundos, no hay de qué preocuparse, pero definitivamente no es óptimo para el uso diario, sin embargo, las ejecuciones posteriores fueron mínimas (3-6 segundos como máximo). Lo que me gusta de su sugerencia es que encuentra automáticamente el segundo monitor en lugar de tener que codificarlo, lo cual es excelente desde el punto de vista del consumidor, cuanto menos tenga que manipular, mejor, esta es una gran característica para el futuro, digamos que cambio mi configuración o obtengo un monitor de diferente tamaño, etc. No tengo que volver a codificar un origen absoluto. Hay un inconveniente a partir de ahora, voy a jugar con él durante un par de días solo para asegurarme de que no entre en conflicto con mis otras preferencias del sistema. Minimiza donde debería, lo cual es genial, se llena con precisión, pero yo
Este script en un comando de Dictado de Automator parece funcionar.
No, la pantalla completa no funcionará correctamente si se ejecuta en Automator o en el editor de scripts. Recoge la ventana anterior 1.
Pero en cualquier momento conseguí que funcionara el comando Dictado. (siempre encuentro un poco de dolor para que me entiendan) Obtuvo la ventana correcta al 100%.
Este script usa el perfilador del sistema para obtener los monitores. y un poco de truco simple para usar el ancho del monitor 1 para determinar dónde están los límites del monitor dos.
Lo hice de esta manera porque puede optar por no usar la pantalla completa
También he intentado que el script sea accesible para personas con un solo monitor.
set theScreens to paragraphs of (do shell script "system_profiler SPDisplaysDataType -detailLevel |grep \"Resolution:\" | awk -F\"Resolution: \" '{print $2}'")
set theMonitor to ""
set the counter to count of theScreens --- set to 1 if you want to test it on monitor 1
if (counter) > 1 then
-- we will do things for monitor 2
set thisDisplayWidthHeightMonitor_2 to {(word 1 of item 1 of theScreens) + 2, 0, ((word 1 of item 1 of theScreens) + (word 1 of item 2 of theScreens)), word 3 of item 2 of theScreens}
set theMonitor to thisDisplayWidthHeightMonitor_2
else
-- we will do things for monitor 1
set thisDisplayWidthHeightMonitor_1 to {0, 0, (word 1 of item 1 of theScreens), (word 3 of item 1 of theScreens)}
set theMonitor to thisDisplayWidthHeightMonitor_1
end if
tell application "Safari"
activate
make new document with properties {URL:"http://netflix.com", index:1}
set bounds of window 1 to theMonitor
end tell
tell application "System Events"
tell application process "Safari"
set value of attribute "AXFullScreen" of window 1 to true
end tell
end tell
set value of attribute "AXFullScreen" of first window to true
:-)Tomaré mi comentario y lo convertiré en una respuesta; asumiendo que entiendo lo que estás buscando al menos.
Probé este código y funciona bien para mí. Deberá ajustar los números para indicar la posición relativa de su monitor. Suponiendo que no mueva sus pantallas, es una entrada única.
Crédito a esta respuesta en SO que también proporciona un enlace a una utilidad para obtener los detalles de la posición de la pantalla.
# this needs to be a position on the desired monitor
set monitorPosition to {-1920, -1380}
tell application "Safari"
activate
make new document with properties {URL:"http://netflix.com"}
end tell
tell application "System Events"
tell process "Safari"
set position of first window to monitorPosition
set value of attribute "AXFullScreen" of first window to true
end tell
end tell
brillo del alma
miken32
brillo del alma