19 votos

Cómo hacer clic en el icono en el dock == abre nueva instancia

Tengo varias aplicaciones en mi dock que puede tener varias instancias abiertas (por ejemplo. Chrome, iTerm, Sublime, etc.)

Cuando hago clic en uno de los iconos, quiero una nueva ventana para abrir (esto es lo que pasa si no hay ventanas están abiertas actualmente) sin Embargo, si una instancia ya está abierto sólo me lleva a esa instancia.

Esto se pone especialmente molesto cuando la instancia se encuentra en un escritorio de instancia y la causa de mi escritorio para cambiar.

Hay una opción de configuración puede configurar para hacerlo así que cuando usted haga clic en el icono, se abre una nueva ventana en lugar de redirigir a una ventana abierta?

18voto

shsteimer Puntos 8749

Usted puede parche algo juntos con algunos de AppleScript y algunas inteligente de imagen de icono pegar. He aquí cómo usted podría hacer iTerm/iTerm2.

Abra el Editor AppleScript y pegar en la siguiente AppleScript:

set myapp to "iTerm"
on appIsRunning(appName)
    tell application "System Events" to (name of processes) contains appName
end appIsRunning
if appIsRunning(myapp) then
    # What you do here will depend on the program. This works for
    # iTerm but you'll need to look up the actions for other programs
    # since this bit is iTerm-specific.
    tell application "iTerm"
        set myterm to (make new terminal)
        tell myterm
            launch session "Default"
        end tell
    end tell
else
    tell application myapp
        activate
    end tell
end if

Usted puede utilizar el botón de Ejecutar en el editor para probar que funciona. Si quieres un perfil diferente abrió cambio "por Defecto" en la línea 12 para que el nombre del perfil que desea abrir.

Ahora guarda este AppleScript. En el cuadro de diálogo Guardar en "Formato de Archivo" en la parte inferior seleccione "Aplicación" de la lista.

Me salvó la mía como la "Nueva iTerm.app" a mi Escritorio.

Ahora cada vez que haga clic en "Nuevo iTerm.la aplicación" en mi Escritorio me sale una nueva iTerm ventana. Puedo arrastrar "Nueva iTerm.app" para mi Dock y va a ser un icono del Dock puede hacer clic en cualquier tiempo quiero conseguir un nuevo iTerm ventana abierta. Pero el icono es el genérico icono de AppleScript.

Vamos a cambiar a la iTerm icono. Seleccione "Nuevo iTerm.app" en el Escritorio y haga clic en Cmd-I para que aparezca la pantalla de propiedades de la aplicación.

Ahora navegar a /Applications en una ventana del Finder, encontrar iTerm en la lista de aplicaciones instaladas, selecciónelo y haga clic en Cmd-I para abrir la pantalla de propiedades para la iTerm aplicación.

Haga clic en el icono en la iTerm ventana de información, por lo que se obtiene una suave sombra azul a su alrededor. Pulse Cmd + C para copiar el icono del portapapeles.

Ahora haga clic en el icono de la "Nueva iTerm.aplicación de la" ventana de información y pulse Cmd-V para pegar el iTerm icono en el "Nuevo iTerm.la aplicación" de la aplicación.

Copying the icon from iTerm to New iTerm

Ahora debería tener una iTerm icono.

Puede mover el "Nuevo iTerm.app" a tu /Applications carpeta si te gusta. Arrástrelo desde la carpeta en la que desee guardar en, de regreso a su base, y ahora puede hacer clic en él en el Dock para abrir un nuevo iTerm ventana con cada clic.

Si usted quiere ser capaz de distinguir de la ejecución de iTerm.app icono del Dock usted podría considerar la posibilidad de pegar el icono en un editor de imágenes como Pixelmator y la adición de un rojo grande + a ella por lo que es claramente identificado como el icono para presionar por un nuevo iTerm la ventana en lugar de en el icono a la prensa para ver la salida, abra iTerm aplicación.

Aquí están algunos de los más guiones para algunas otras aplicaciones para comenzar personalización de las cosas:

Google Chrome (Nueva Ventana)

set myapp to "Google Chrome"
on appIsRunning(appName)
    tell application "System Events" to (name of processes) contains appName
end appIsRunning
if appIsRunning(myapp) then
    tell application "Google Chrome"
        make new window
    end tell
else
    tell application myapp
        activate
    end tell
end if

Google Chrome (Nueva Pestaña)

set myapp to "Google Chrome"
on appIsRunning(appName)
    tell application "System Events" to (name of processes) contains appName
end appIsRunning
if appIsRunning(myapp) then
    tell application "Google Chrome"
        make new tab at end of tabs of window 1
    end tell
else
    tell application myapp
        activate
    end tell
end if

Sublime Text 2

Por desgracia ST2 no parece tener un AppleScript accesible extensiones. Siempre puedes echar un vistazo a el OS X herramienta de línea de comandos que ST2 barcos con. Usted puede llamar a que a partir de una simple secuencia de comandos en el Dock para abrir una nueva ventana en la ST2. Así:

set myapp to "Sublime Text 2"
on appIsRunning(appName)
    tell application "System Events" to (name of processes) contains appName
end appIsRunning
if appIsRunning(myapp) then
    # Assumes you've installed the subl command line tool for ST2
    # in to /usr/local/bin. Adjust accordingly.
    do shell script "/usr/local/bin/subl --new-window"
else
    tell application myapp
        activate
    end tell
end if

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