Puede mezclar algo junto con un poco de AppleScript y un pegado inteligente de imágenes de iconos. Así es como lo haría para iTerm / iTerm2.
Abra el Editor de AppleScript y pegue en el 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
Puede usar el botón Ejecutar en el editor para probar que funciona. Si desea abrir un perfil diferente, cambie "Predeterminado" en la línea 12 al nombre del perfil que desea abrir.
Ahora guarde este AppleScript. En el cuadro de diálogo Guardar en "Formato de archivo" en la parte inferior, seleccione "Aplicación" de la lista.
Guarde el mío como "Nuevo iTerm.app" en mi escritorio.
Ahora, cada vez que hago clic en "Nuevo iTerm.app" en mi escritorio, aparece una nueva ventana de iTerm. Puedo arrastrar "New iTerm.app" a mi Dock y será un icono de Dock en el que puedo hacer clic en cualquier momento que desee que se abra una nueva ventana de iTerm. Pero el ícono es el ícono genérico de AppleScript.
Cambiémoslo al ícono iTerm. 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 navegue a /Applications
una ventana del Finder, busque iTerm en la lista de aplicaciones instaladas, selecciónelo y haga clic en Cmd-I para abrir la pantalla de propiedades de la aplicación iTerm.
Haga clic en el icono en la ventana de información de iTerm para que aparezca una suave sombra azul a su alrededor. Presione Cmd-C para copiar el icono en el portapapeles.
Ahora haga clic en el icono en la ventana de información "Nuevo iTerm.app" y presione Cmd-V para pegar el icono de iTerm en la aplicación "Nuevo iTerm.app".
Ahora debería tener un ícono iTerm.
Puede mover el "Nuevo iTerm.app" a su /Applications
carpeta si lo desea. Arrástrelo desde la carpeta donde decide guardarlo, de vuelta a su base, y ahora puede hacer clic en él en la base para abrir una nueva ventana iTerm con cada clic.
Si desea poder distinguirlo del ícono iTerm.app Dock en ejecución, podría considerar pegar el ícono en un editor de imágenes como Pixelmator y agregarle un gran rojo +
para que se identifique claramente como el ícono para presionar por un nuevo iTerm ventana en lugar del ícono para presionar para ver la aplicación iTerm existente, abierta.
Aquí hay algunos scripts más para algunas otras aplicaciones para comenzar a personalizar 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
Desafortunadamente, ST2 no parece tener extensiones accesibles para AppleScript. Siempre puede echar un vistazo a la herramienta de línea de comandos OS X con la que se incluye ST2 . Puede llamarlo desde un script simple en el Dock para abrir una nueva ventana en ST2. Entonces:
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