2 votos

Abrir una nueva ventana de aplicación a través de la línea de comandos

Antecedentes

Si necesitas una nueva ventana de una aplicación puedes Haga clic con el botón derecho del ratón en la aplicación en el dock y haga clic en New Window . Esto es muy tedioso y me quita un tiempo precioso. Me gustaría tener un atajo para eso.

Actualmente estoy usando iCanHazShortcut que permite ejecutar comandos de terminal desde los accesos directos. Actualmente uso open /Applications/Firefox.app --new (Ejemplo). Esto abre una nueva instancia de una aplicación. En general, no tendría ningún problema con eso si no paralizara el dock y todo el gestor de ventanas con el tiempo. Así que:

Pregunta

¿Cómo puedo abrir una nueva ventana de una aplicación con un comando de terminal?

Restricciones:

  • Si no se está ejecutando ninguna aplicación, el comando debería, por supuesto, crear una instancia de la aplicación
  • No estoy buscando una respuesta específica para mi ejemplo de Firefox en la parte superior, sino un enfoque genérico (porque estoy abriendo varias aplicaciones diferentes a través de accesos directos).

4voto

David Anderson Puntos 2189

Añada la siguiente línea a su ~/.zshrc archivo. (O, su ~/.bashrc si está usando bash). Si el archivo no existe, entonces cree el archivo.

openwin() { osascript -e "tell application \"$1\" to activate" -e 'tell application "System Events" to keystroke "n" using command down'; }

La próxima vez que abra una ventana de Terminal, podrá utilizar la función anterior para enviar la combinación de teclas + N a la aplicación especificada. Por ejemplo, para abrir una nueva ventana en Firefox, introduzca lo siguiente.

openwin firefox

En el caso de Microsoft Edge, introduzca una de las siguientes opciones.

openwin "microsoft edge"
openwin microsoft\ edge

La combinación de teclas + N es el predeterminado en la mayoría de las aplicaciones para abrir una nueva ventana.

Cuando se utiliza la función anterior por primera vez, es posible que tenga que hacer lo siguiente.

  • Autoriza a la aplicación Terminal a enviar eventos de Apple a Eventos del Sistema. Esto se puede encontrar en Automatización en la pestaña Privacidad del panel Seguridad y Privacidad de la aplicación Preferencias del Sistema.
  • Permitir osascript para enviar pulsaciones. Esto se autoriza añadiendo el Terminal a Accesibilidad en la pestaña Privacidad del panel Seguridad y Privacidad de la aplicación Preferencias del Sistema.

Una alternativa al uso de una función sería instalar un script. Esto tendría la ventaja de ser personalizable. A continuación se muestra un ejemplo de script que se llama openwin .

#!/bin/zsh
pgrep -i -x -q -U $UID "$1"
result=$? # If application is running then result will equal 0.
script=()
case ${1:l} in
mail)
    script+=(-e "tell application \"$1\" to activate")
    if [[ result -eq 0 ]]; then
        script+=(-e 'tell application "System Events" to keystroke "n" using {command down, option down}')
    fi;;

"microsoft word")
    script+=(-e "tell application \"$1\" to activate")
    script+=(-e 'tell application "System Events" to keystroke "n" using command down');;

*)
    script+=(-e "tell application \"$1\" to activate")
    if [[ result -eq 0 ]]; then
        script+=(-e 'tell application "System Events" to keystroke "n" using command down')
    fi
esac
if [[ $#script -ne 0 ]]; then
    #printf "%s '%s'\n" $script # <-- Just for debugging.
    osascript $script
fi

A continuación se muestran los comandos para instalar el script. Aquí asumo /usr/local/bin ya está en su PATH variable.

sudo mkdir -p /usr/local/bin
sudo cp openwin /usr/local/bin
sudo chown root:wheel /usr/local/bin/openwin
sudo chmod a+x /usr/local/bin/openwin

El valor por defecto para el ejemplo script es activar la aplicación, luego enviar el + N combinación de teclas sólo si la aplicación ya se está ejecutando.

El ejemplo script tiene las siguientes personalizaciones.

  • Para la aplicación Mail, el + alt + N se envía la combinación de teclas en lugar de la predeterminada + N .
  • Para la aplicación Microsoft Word, el + N La combinación de teclas se envía independientemente de que la aplicación se esté ejecutando.

Referencias

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