Basado en su respuesta de "Sí, precisamente. Bien dicho" a mi comentario bajo el OP...
¿Podría aclarar qué es lo que está tratando de hacer? ¿Intentas que el propio shell script reenfoque la pestaña/ventana en la que se está ejecutando el shell script? En otras palabras, ¿quieres iniciar el shell script y que cuando pasen los 15 minutos, independientemente de la aplicación que esté en primer plano, quieras Terminal para venir de frente a la pestaña/ventana en la que se está ejecutando el shell script y que todo esto se haga mediante programación?
Lo siguiente ejemplo AppleScript código utilizado junto con osascript
en un zsh
shell script debe hacer lo que se quiere. Obviamente, el valor de la sleep
comando es sólo para propósitos de prueba, use lo que sea que esté usando ahora como temporizador dentro de su actual zsh
shell script .
#!/bin/zsh
# First line of code of shell script.
winID="$(osascript -e 'id of window 1 of app "Terminal"')"
# Function to refocus window of running script.
refocusWindow() {
# Code to refocus window of the
# running shell script using the
# window id retrieved from the first
# line of code in the shell script.
osascript <<EOS
tell app "Terminal"
set frontmost of windows whose id = $winID to true
activate
end tell
EOS
}
# Do some stuff...
# Your other code goes here.
sleep 5
refocusWindow
Notas:
En Terminal No importa el número de pestañas/ventanas hay como sólo hay uno tab
por window
aunque la ventana parezca tener varios pestañas . En otras palabras, pedir Terminal a count windows
y count tabs of windows
se devolver lo mismo número . Por lo tanto, no es necesario bucle a través de tabs
para lograr el objetivo aquí expuesto, sólo windows
y, en realidad, en este caso no hay necesidad de bucle a través de windows
.
Tenga en cuenta que MacOS Sierra cuál es la última versión en la que Terminal soportado múltiples tabs
de un window
programáticamente. En otras palabras, desde el UI un solo ventana con dos pestañas habría tab 1 of window 1
y tab 2 of window 1
pero como MacOS High Sierra de la UI un solo ventana con dos pestañas habría tab 1 of window 1
y tab 1 of window 2
y, por lo tanto, ya no es necesario bucle a través de tabs
.
Hay todo así que no hay necesidad de hacer algo como set selected of tab j of window i to true
como una vez que un determinado window
se establece frontmost
El valor de tab 1 of window i
ya está ajustado a true
como resultado.
El ejemplo shell script y AppleScript código que se muestra arriba, se probó en Terminal como un ejecutable shell script en MacOS Catalina y MacOS Big Sur con Lengua y región ajustes en Preferencias del sistema ajustado a Inglés (EE.UU.) - Primaria y me ha funcionado sin problemas 1 .
- 1 Asume la configuración necesaria y adecuada en <strong>Preferencias del sistema </strong>> <strong>Seguridad y privacidad </strong>> <strong>Privacidad </strong>se han fijado/abordado según las necesidades.
Como no sabemos cómo tiene su zsh
shell script codificado, tendrá que trabajar en el código que aquí se presenta para satisfacer sus necesidades.