Dock == simgesine tıklamak nasıl yapılır


16

Dock'umda birden çok örneği açabilecek birkaç uygulamam var (ör. Chrome, iTerm, Sublime vb.)

Simgelerden birine tıkladığımda, yeni bir pencerenin açılmasını istiyorum (şu anda hiçbir pencere açık değilse ne olur) Ancak, bir örnek zaten açıksa, beni o örneğe götürür.

Bu, özellikle örnek bir başka masaüstü örneğinde olduğunda ve masaüstümün değişmesine neden olduğunda özellikle sinir bozucu olur.

Simgeyi tıklattığınızda, sizi zaten açılmış bir pencereye yönlendirmek yerine yeni bir pencere açacak şekilde ayarlayabileceğiniz bir ayar var mı?


2
Bunu Dock'ta tutabileceğiniz biraz AppleScript ile nasıl yapacağınızı gösterebilirim.
Ian C.

Veya ctrl + n tuşlarına basabilirsiniz.
CoffeeRain

3
@CoffeeRain Ctrl-N? Bu da ne? İTerm ve Chrome'da hiçbir şey yapmaz. Bence Cmd-N demek istediniz - ancak bu sadece uygulama ön planda olduğunda işe yarar.
Ian C.

@IanC. Üzgünüm, evet Cmd-N demek istedim.
CoffeeRain

Yanıtlar:


17

Bazı AppleScript ve bazı akıllı simge resim yapıştırma özellikleriyle birlikte bir şeyler yapabilirsiniz. İTerm / iTerm2 için bunu nasıl yapacağınız aşağıda açıklanmıştır.

AppleScript Düzenleyiciyi açın ve aşağıdaki AppleScript'e yapıştırın:

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

Çalıştığını test etmek için düzenleyicideki Çalıştır düğmesini kullanabilirsiniz. Farklı bir profilin açılmasını istiyorsanız, 12. satırdaki "Varsayılan" değerini, açmak istediğiniz profilin adıyla değiştirin.

Şimdi bu AppleScript'i kaydedin. En alttaki "Dosya Biçimi" altındaki Kaydet iletişim kutusunda listeden "Uygulama" yı seçin.

Benim masaüstüme "Yeni iTerm.app" olarak kaydetti.

Şimdi Masaüstümde "Yeni iTerm.app" ı her tıklattığımda yeni bir iTerm penceresi alıyorum. "New iTerm.app" dosyasını Dock'uma sürükleyebilirim ve yeni bir iTerm penceresini açmak istediğim zaman tıklayabileceğim bir Dock simgesi olacak. Ancak simge genel AppleScript simgesidir.

Bunu iTerm simgesine değiştirelim. Masaüstünde "Yeni iTerm.app" öğesini seçin ve uygulamanın özellikler ekranını görüntülemek için Cmd-I tuşunu tıklatın.

Şimdi /Applicationsbir Finder penceresine gidin , yüklü uygulamalar listesinde iTerm'i bulun, seçin ve iTerm uygulamasının özellikler ekranını açmak için Cmd-I öğesine tıklayın.

İTerm bilgi penceresindeki simgeyi tıklatarak etrafında yumuşak mavi bir gölge olsun. Simgeyi panoya kopyalamak için Cmd-C tuşlarına basın.

Şimdi "Yeni iTerm.app" bilgi penceresindeki simgeye tıklayın ve iTerm simgesini "Yeni iTerm.app" uygulamasına yapıştırmak için Cmd-V tuşlarına basın.

Simgeyi iTerm'den Yeni iTerm'e kopyalama

Şimdi bir iTerm simgesi olmalıdır.

İsterseniz "Yeni iTerm.app" /Applicationsklasörünüze taşıyabilirsiniz . İçinde tutmaya karar verdiğiniz klasörden dock'unuza sürükleyin ve artık her tıklamayla yeni bir iTerm penceresi açmak için Dock'taki üzerine tıklayabilirsiniz.

Çalışan iTerm.app Dock simgesinden ayırt edebilmek istiyorsanız, simgeyi Pixelmator gibi bir resim düzenleyicisine yapıştırmayı ve büyük bir kırmızı eklemeyi düşünebilirsiniz, +böylece yeni bir iTerm için basılacak simge olarak açıkça tanımlanabilir pencereden çıkmak için simgeye basın, görmek için iTerm uygulamasını açın.

Bazı şeyleri özelleştirmeye başlamanız için bazı diğer uygulamalar için komut dosyaları:

Google Chrome (Yeni Pencere)

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 (Yeni Sekme)

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

Yüce Metin 2

Ne yazık ki ST2'nin AppleScript erişilebilir uzantıları yok gibi görünüyor. ST2 ile birlikte verilen OS X komut satırı aracına her zaman göz atabilirsiniz . ST2'de yeni bir pencere açmak için bunu Dock'taki basit bir komut dosyasından çağırabilirsiniz. Yani:

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

2
Farklı kullanım durumlarını ve detayları kapsayan açık örneklerle harika cevap! Teşekkürler!
Adam Davis

@AdamDavis AppleScript ile yeni başlıyorum, bu yüzden öğrendiklerimi test etmek güzel bir egzersizdi.
Ian C.

Bu, çalışmakta olan uygulamanın adını almak için kullanılabilir mi?
William

Uygulamanın çalışıp çalışmadığını kontrol etmenin bir yolu var mı ve geçerli masaüstünde DEĞİLDİR? Sadece mevcut pencere başka bir masaüstündeyse yeni bir pencere isterim.
adamdport
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.