Cara membuat mengklik ikon di dok == buka contoh baru

16

Saya memiliki beberapa aplikasi di dock saya yang dapat membuat beberapa instance terbuka (mis. Chrome, iTerm, Sublime, dll.)

Ketika saya mengklik salah satu ikon, saya ingin jendela baru terbuka (ini adalah apa yang terjadi jika tidak ada jendela saat ini terbuka) Namun, jika sebuah instance sudah terbuka itu hanya membawa saya ke instance itu.

Ini menjadi sangat menjengkelkan ketika instance ada di seluruh instance desktop lainnya dan menyebabkan desktop saya berubah.

Apakah ada pengaturan yang dapat Anda atur untuk membuatnya jadi ketika Anda mengklik ikon, itu membuka jendela baru alih-alih mengarahkan Anda ke jendela yang sudah dibuka?

JD Isaacks
sumber
2
Saya bisa menunjukkan kepada Anda bagaimana melakukan ini dengan sedikit AppleScript yang dapat Anda simpan di Dock.
Ian C.
Atau Anda bisa menekan ctrl + n.
CoffeeRain
3
@CoffeeRain Ctrl-N? Apa itu? Tidak melakukan apa pun di iTerm dan Chrome. Saya pikir Anda maksud Cmd-N - tapi itu hanya berfungsi jika aplikasi di latar depan.
Ian C.
@IanC. Maaf, ya maksud saya Cmd-N.
CoffeeRain

Jawaban:

17

Anda dapat mengumpulkan sesuatu bersama-sama dengan beberapa AppleScript dan beberapa menyisipkan ikon gambar yang pintar. Begini cara Anda melakukannya untuk iTerm / iTerm2.

Buka Editor AppleScript dan rekatkan dalam AppleScript berikut:

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

Anda dapat menggunakan tombol Run di editor untuk menguji apakah itu berfungsi. Jika Anda ingin profil yang berbeda dibuka, ubah "Default" pada baris 12 ke nama profil yang ingin Anda buka.

Sekarang simpan AppleScript ini. Dalam dialog Simpan di bawah "Format File" di bagian bawah pilih "Aplikasi" dari daftar.

Saya menyimpan milik saya sebagai "iTerm.app Baru" ke Desktop saya.

Sekarang setiap kali saya mengklik "iTerm.app Baru" di Desktop saya, saya mendapatkan jendela iTerm baru. Saya dapat menyeret "iTerm.app Baru" ke Dock saya dan itu akan menjadi ikon Dock yang dapat saya klik kapan saja saya ingin membuka jendela iTerm baru. Tetapi ikon itu adalah ikon AppleScript generik.

Mari kita ubah ke ikon iTerm. Pilih "New iTerm.app" di Desktop dan klik Cmd-I untuk membuka layar properti aplikasi.

Sekarang navigasikan ke /Applications dalam jendela Finder, cari iTerm di daftar aplikasi yang diinstal, pilih dan klik Cmd-I untuk membuka layar properti untuk aplikasi iTerm.

Klik ikon di jendela info iTerm sehingga mendapat bayangan biru lembut di sekitarnya. Tekan Cmd-C untuk menyalin ikon ke clipboard.

Sekarang klik ikon di jendela info "New iTerm.app" dan tekan Cmd-V untuk menempelkan ikon iTerm ke aplikasi "New iTerm.app".

Menyalin ikon dari iTerm ke iTerm Baru

Seharusnya sekarang memiliki ikon iTerm.

Anda dapat memindahkan "iTerm.app Baru" ke /Applicationsfolder Anda jika suka. Seret dari folder tempat Anda memutuskan untuk menyimpannya, kembali ke dok Anda, dan sekarang Anda dapat mengkliknya di Dock untuk membuka jendela iTerm baru dengan setiap klik.

Jika Anda ingin dapat membedakannya dari ikon Dock iTerm.app yang sedang berjalan, Anda dapat mempertimbangkan untuk menempelkan ikon tersebut ke editor gambar seperti Pixelmator dan menambahkan warna merah besar +ke dalamnya sehingga secara jelas diidentifikasi sebagai ikon untuk menekan iTerm baru. bukan ikon untuk menekan untuk melihat keluar, buka aplikasi iTerm.

Berikut beberapa skrip untuk beberapa aplikasi lain agar Anda dapat mulai menyesuaikan berbagai hal:

Google Chrome (Jendela Baru)

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 (Tab Baru)

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

Teks Luhur 2

Sayangnya ST2 tampaknya tidak memiliki ekstensi yang dapat diakses AppleScript. Anda selalu dapat melihat alat baris perintah OS X yang disertakan dengan ST2 . Anda dapat memanggilnya dari skrip sederhana di Dock untuk membuka jendela baru di ST2. Begitu:

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
Ian C.
sumber
2
Jawaban yang bagus dengan contoh jelas yang mencakup berbagai kasus penggunaan dan detailnya! Terima kasih!
Adam Davis
@AdamDavis Saya baru memulai dengan AppleScript jadi itu latihan yang bagus untuk menguji apa yang telah saya pelajari.
Ian C.
Bisakah ini digunakan untuk mendapatkan nama aplikasi yang sedang berjalan?
William
Apakah ada cara untuk memeriksa apakah aplikasi berjalan DAN TIDAK di desktop saat ini? Saya suka jendela baru hanya jika jendela yang ada ada di desktop lain.
adamdport