Come fare clic sull'icona nel dock == apri nuova istanza

15

Ho diverse applicazioni nel mio dock che possono avere più istanze aperte (ad esempio Chrome, iTerm, Sublime, ecc.)

Quando clicco su una delle icone, voglio aprire una nuova finestra (questo è ciò che succede se non ci sono finestre aperte al momento). Tuttavia, se un'istanza è già aperta, mi porta solo a quell'istanza.

Questo diventa particolarmente fastidioso quando l'istanza si trova su un'altra intera istanza desktop e causa la modifica del mio desktop.

Esiste un'impostazione che puoi impostare in modo che quando fai clic sull'icona, si apra una nuova finestra invece di reindirizzare a una finestra già aperta?

    
posta JD Isaacks 27.03.2012 - 17:17
fonte

1 risposta

16

Puoi mettere kludge qualcosa insieme ad un AppleScript e ad un incollaggio intelligente di un'immagine di icone. Ecco come lo faresti per iTerm / iTerm2.

Apri l'AppleScript Editor e incolla il seguente 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

Puoi usare il pulsante Esegui nell'editor per verificare che funzioni. Se desideri aprire un profilo diverso, modifica "Predefinito" nella riga 12 sul nome del profilo che vuoi aprire.

Ora salva questo AppleScript. Nella finestra di dialogo Salva in "Formato file" in basso seleziona "Applicazione" dall'elenco.

Ho salvato il mio come "New iTerm.app" sul mio desktop.

Ora ogni volta che clicco su "New iTerm.app" sul mio desktop ottengo una nuova finestra di iTerm. Posso trascinare "New iTerm.app" sul mio Dock e sarà un'icona del Dock che posso fare clic in qualsiasi momento per aprire una nuova finestra di iTerm. Ma l'icona è l'icona generica di AppleScript.

Passiamo all'icona iTerm. Seleziona "New iTerm.app" sul desktop e fai clic su Cmd-I per visualizzare la schermata delle proprietà per l'applicazione.

Ora vai a /Applications in una finestra del Finder, trova iTerm nell'elenco delle applicazioni installate, selezionalo e fai clic su Cmd-I per aprire la schermata delle proprietà per l'applicazione iTerm.

Fai clic sull'icona nella finestra delle informazioni di iTerm in modo da ottenere un'ombra blu morbida attorno ad essa. Premi Cmd-C per copiare l'icona negli Appunti.

Ora fai clic sull'icona nella finestra informativa "New iTerm.app" e premi Cmd-V per incollare l'icona iTerm sull'applicazione "New iTerm.app".

Oradovrebbeavereun'iconaiTerm.

Puoispostare"New iTerm.app" nella tua cartella /Applications , se lo desideri. Trascinalo dalla cartella in cui decidi di tenerlo, torna al tuo dock e ora puoi fare clic su di esso nel Dock per aprire una nuova finestra di iTerm ad ogni clic.

Se si desidera essere in grado di distinguerlo dall'icona di iTerm.app Dock in esecuzione, si potrebbe considerare di incollare l'icona in un editor di immagini come Pixelmator e aggiungendo una grande percentuale di% rosso% in modo che sia identificata come icona premere per una nuova finestra iTerm invece dell'icona da premere per vedere l'applicazione iTerm aperta e aperta.

Ecco alcuni altri script per alcune altre applicazioni per iniziare a personalizzare le cose:

Google Chrome (nuova finestra)

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 (nuova scheda)

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

Testo sublime 2

Sfortunatamente, ST2 non sembra avere un'estensione accessibile AppleScript. Puoi sempre dare un'occhiata a lo strumento da riga di comando OS X fornito con ST2 . Puoi chiamarlo da un semplice script nel Dock per aprire una nuova finestra in ST2. Quindi:

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
    
risposta data 27.03.2012 - 17:45
fonte

Leggi altre domande sui tag