Vous pouvez claquer quelque chose avec de l'AppleScript et du collage intelligent d'images d'icônes. Voici comment vous le feriez pour iTerm / iTerm2.
Ouvrez l'éditeur AppleScript et collez le code AppleScript suivant:
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
Vous pouvez utiliser le bouton Exécuter dans l'éditeur pour tester son fonctionnement. Si vous souhaitez ouvrir un autre profil, remplacez «Par défaut» à la ligne 12 par le nom du profil que vous souhaitez ouvrir.
Maintenant, enregistrez ce AppleScript. Dans la boîte de dialogue Enregistrer sous "Format de fichier" en bas, sélectionnez "Application" dans la liste.
J'ai enregistré le mien en tant que "Nouveau iTerm.app" sur mon bureau.
Maintenant, chaque fois que je clique sur "Nouveau iTerm.app" sur mon bureau, j'obtiens une nouvelle fenêtre iTerm. Je peux faire glisser "New iTerm.app" vers mon Dock et ce sera une icône de Dock sur laquelle je pourrai cliquer à tout moment pour ouvrir une nouvelle fenêtre iTerm. Mais l'icône est l'icône générique AppleScript.
Changeons-le en icône iTerm. Sélectionnez "Nouveau iTerm.app" sur le bureau et cliquez sur Cmd-I pour afficher l'écran des propriétés de l'application.
/Applications
Naviguez maintenant dans une fenêtre du Finder, recherchez iTerm dans la liste des applications installées, sélectionnez-le et cliquez sur Cmd-I pour ouvrir l'écran des propriétés de l'application iTerm.
Cliquez sur l'icône dans la fenêtre d'informations iTerm pour obtenir une douce ombre bleue autour d'elle. Appuyez sur Cmd-C pour copier l'icône dans le presse-papiers.
Maintenant, cliquez sur l'icône dans la fenêtre d'information "Nouveau iTerm.app" et appuyez sur Cmd-V pour coller l'icône iTerm sur l'application "Nouveau iTerm.app".
Il devrait maintenant avoir une icône iTerm.
Vous pouvez déplacer le "Nouveau iTerm.app" vers votre /Applications
dossier si vous le souhaitez. Faites-le glisser du dossier dans lequel vous décidez de le conserver, vers votre dock, et vous pouvez maintenant cliquer dessus dans le Dock pour ouvrir une nouvelle fenêtre iTerm à chaque clic.
Si vous vouliez pouvoir la distinguer de l'icône du Dock iTerm.app en cours d'exécution, vous pourriez envisager de coller l'icône dans un éditeur d'image comme Pixelmator et d'y ajouter un grand rouge +
afin qu'elle soit clairement identifiée comme l'icône à appuyer pour un nouvel iTerm. fenêtre au lieu de l'icône sur laquelle appuyer pour voir l'application iTerm en cours d'ouverture.
Voici quelques scripts supplémentaires pour d'autres applications pour vous aider à personnaliser les choses:
Google Chrome (nouvelle fenêtre)
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 (nouvel onglet)
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
Malheureusement, ST2 ne semble pas avoir d'extensions accessibles par AppleScript. Vous pouvez toujours jeter un œil à l'outil de ligne de commande OS X fourni avec ST2 . Vous pouvez appeler cela à partir d'un simple script dans le Dock pour ouvrir une nouvelle fenêtre dans ST2. Donc:
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