Cách nhấp vào biểu tượng trong dock == mở phiên bản mới


16

Tôi có một số ứng dụng trong dock có thể mở nhiều phiên bản (ví dụ: Chrome, iTerm, Sublime, v.v.)

Khi tôi nhấp vào một trong các biểu tượng, tôi muốn mở một cửa sổ mới (đây là điều sẽ xảy ra nếu không có cửa sổ nào đang mở) Tuy nhiên, nếu một phiên bản đã mở, nó sẽ đưa tôi đến trường hợp đó.

Điều này đặc biệt khó chịu khi cá thể nằm trên một cá thể máy tính để bàn khác và khiến máy tính của tôi thay đổi.

Có cài đặt nào bạn có thể đặt để thực hiện không khi bạn nhấp vào biểu tượng, nó sẽ mở một cửa sổ mới thay vì chuyển hướng bạn đến một cửa sổ đã mở?


2
Tôi có thể chỉ cho bạn cách làm điều này với một chút AppleScript mà bạn có thể giữ trong Dock.
Ian C.

Hoặc bạn chỉ có thể nhấn ctrl + n.
Cà phêRain

3
@CoffeeRain Ctrl-N? Cái gì vậy Không có gì trong iTerm và Chrome. Tôi nghĩ bạn có nghĩa là Cmd-N - nhưng điều đó chỉ hoạt động nếu ứng dụng ở phía trước.
Ian C.

@IanC. Xin lỗi, vâng tôi có nghĩa là Cmd-N.
Cà phêRain

Câu trả lời:


17

Bạn có thể loại bỏ một cái gì đó cùng với một số AppleScript và một số hình ảnh biểu tượng thông minh dán. Đây là cách bạn làm điều đó cho iTerm / iTerm2.

Mở Trình soạn thảo AppleScript và dán vào AppleScript sau:

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

Bạn có thể sử dụng nút Run trong trình chỉnh sửa để kiểm tra xem nó có hoạt động không. Nếu bạn muốn mở một hồ sơ khác, hãy thay đổi "Mặc định" trên dòng 12 thành tên của hồ sơ bạn muốn mở.

Bây giờ hãy lưu AppleScript này. Trong hộp thoại Lưu dưới "Định dạng tệp" ở dưới cùng, chọn "Ứng dụng" từ danh sách.

Tôi đã lưu của tôi dưới dạng "New iTerm.app" vào Máy tính để bàn của tôi.

Bây giờ mỗi lần tôi nhấp vào "New iTerm.app" trên Máy tính để bàn của tôi, tôi nhận được một cửa sổ iTerm mới. Tôi có thể kéo "New iTerm.app" vào Dock của mình và đó sẽ là biểu tượng Dock tôi có thể nhấp vào bất cứ khi nào tôi muốn mở cửa sổ iTerm mới. Nhưng biểu tượng là biểu tượng AppleScript chung.

Hãy thay đổi nó thành biểu tượng iTerm. Chọn "iTerm.app mới" trên Bàn làm việc và bấm Cmd-I để hiển thị màn hình thuộc tính cho ứng dụng.

Bây giờ điều hướng đến /Applicationstrong cửa sổ Finder, tìm iTerm trong danh sách các ứng dụng đã cài đặt, chọn nó và nhấp vào Cmd-I để mở màn hình thuộc tính cho ứng dụng iTerm.

Nhấp vào biểu tượng trong cửa sổ thông tin iTerm để nó có một bóng màu xanh mềm mại xung quanh nó. Nhấn Cmd-C để sao chép biểu tượng vào bảng tạm.

Bây giờ hãy nhấp vào biểu tượng trong cửa sổ thông tin "New iTerm.app" và nhấn Cmd-V để dán biểu tượng iTerm vào ứng dụng "New iTerm.app".

Sao chép biểu tượng từ iTerm sang iTerm mới

Bây giờ nó phải có một biểu tượng iTerm.

Bạn có thể di chuyển "iTerm.app mới" vào /Applicationsthư mục của mình nếu muốn. Kéo nó từ thư mục bạn quyết định giữ nó, quay lại dock của bạn và bây giờ bạn có thể nhấp vào nó trong Dock để mở cửa sổ iTerm mới với mỗi lần nhấp.

Nếu bạn muốn có thể phân biệt nó với biểu tượng iTerm.app Dock đang chạy, bạn có thể xem xét dán biểu tượng vào trình chỉnh sửa hình ảnh như Pixelmator và thêm một màu đỏ lớn +vào nó để nó được xác định rõ ràng là biểu tượng để nhấn cho iTerm mới cửa sổ thay vì biểu tượng để nhấn để xem ứng dụng iTerm đang thoát, mở.

Dưới đây là một số tập lệnh khác cho một số ứng dụng khác để giúp bạn bắt đầu tùy chỉnh mọi thứ:

Google Chrome (Cửa sổ mới)

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 mới)

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

Văn bản cao siêu 2

Thật không may, ST2 dường như không có tiện ích mở rộng có thể truy cập AppleScript. Bạn luôn có thể xem công cụ dòng lệnh OS X mà ST2 đi kèm . Bạn có thể gọi nó từ một tập lệnh đơn giản trong Dock để mở một cửa sổ mới trong ST2. Vì thế:

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
Câu trả lời tuyệt vời với các ví dụ rõ ràng bao gồm các trường hợp sử dụng khác nhau và các chi tiết! Cảm ơn!
Adam Davis

@AdamDavis Tôi mới bắt đầu với AppleScript nên đây là một bài tập hay để kiểm tra những gì tôi đã học được.
Ian C.

Điều này có thể được sử dụng để có được tên của ứng dụng hiện đang chạy?
William

Có cách nào để kiểm tra xem ứng dụng có đang chạy VÀ KHÔNG trên máy tính để bàn hiện tại không? Tôi chỉ thích một cửa sổ mới nếu cửa sổ hiện có trên một máy tính để bàn khác.
adamdport 11/03/2016
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.