ドックのアイコンをクリックする方法==新しいインスタンスを開く


16

ドックに複数のインスタンスを開くことができるアプリケーションがいくつかあります(Chrome、iTerm、Sublimeなど)。

アイコンの1つをクリックすると、新しいウィンドウが開きます(現在ウィンドウが開いていない場合に発生します)。ただし、インスタンスが既に開いている場合は、そのインスタンスに移動します。

これは、インスタンスが他のデスクトップインスタンス全体にある場合に特に煩わしくなり、デスクトップが変更されます。

アイコンをクリックすると、既に開いているウィンドウにリダイレクトするのではなく、新しいウィンドウが開くように設定できる設定はありますか?


2
Dockに保持できるAppleScriptを少し使用して、これを行う方法を紹介できます。
イアンC.

または、ctrl + nを押します。
CoffeeRain

3
@CoffeeRain Ctrl-N?あれは何でしょう?iTermとChromeでは何もしません。あなたはCmd-Nを意味していたと思いますが、これはアプリがフォアグラウンドにある場合にのみ機能します。
イアンC.

@IanC。申し訳ありませんが、はい、私はCmd-Nを意味していました。
-CoffeeRain

回答:


17

AppleScriptと巧妙なアイコン画像の貼り付けを組み合わせて、何かを混ぜ合わせることができます。iTerm / iTerm2の場合は次のようになります。

AppleScriptエディターを開き、次の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

エディターの「実行」ボタンを使用して、機能することをテストできます。別のプロファイルを開く場合は、12行目の「デフォルト」を開きたいプロファイルの名前に変更します。

次に、このAppleScriptを保存します。下部の[ファイル形式]の下の[保存]ダイアログで、リストから[アプリケーション]を選択します。

私は「New iTerm.app」としてデスクトップに保存しました。

これで、デスクトップで「New iTerm.app」をクリックするたびに、新しいiTermウィンドウが表示されます。「New iTerm.app」をDockにドラッグすると、Dockアイコンになり、新しいiTermウィンドウを開くときにいつでもクリックできます。しかし、アイコンは一般的なAppleScriptアイコンです。

iTermアイコンに変更しましょう。デスクトップで「New iTerm.app」を選択し、Cmd-Iをクリックして、アプリケーションのプロパティ画面を表示します。

/ApplicationsFinderウィンドウに移動し、インストールされているアプリケーションのリストでiTermを見つけて選択し、Cmd-IをクリックしてiTermアプリケーションのプロパティ画面を開きます。

iTerm情報ウィンドウのアイコンをクリックして、周囲にソフトブルーの影を付けます。Cmd-Cを押して、アイコンをクリップボードにコピーします。

「New iTerm.app」情報ウィンドウのアイコンをクリックし、Cmd-Vを押して「New iTerm.app」アプリケーションにiTermアイコンを貼り付けます。

アイコンをiTermから新しいiTermにコピーする

これでiTermアイコンが表示されます。

必要に応じて、「New iTerm.app」を/Applicationsフォルダに移動できます。保持することにしたフォルダからドックにドラッグします。Dockでクリックすると、クリックするたびに新しいiTermウィンドウが開きます。

実行中のiTerm.app Dockアイコンと区別できるようにしたい場合は、Pixelmatorなどの画像エディターにアイコンを貼り付け、大きな赤+を追加して、新しいiTermを押すアイコンとして明確に識別されるようにすることを検討できます。アイコンの代わりにウィンドウを押して終了を確認し、iTermアプリケーションを開きます。

以下は、カスタマイズを開始するためのその他のアプリケーション用のスクリプトです。

Google Chrome(新しいウィンドウ)

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(新しいタブ)

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

崇高なテキスト2

残念ながら、ST2にはAppleScriptでアクセス可能な拡張機能がないようです。ST2に同梱されているOS Xコマンドラインツールをいつでも見ることができます。Dockの簡単なスクリプトからそれを呼び出して、ST2で新しいウィンドウを開くことができます。そう:

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
さまざまなユースケースと詳細を網羅した明確な例で素晴らしい答えが得られます!ありがとう!
アダムデイビス

@AdamDavis AppleScriptで始めたばかりなので、学んだことをテストするのはいい練習になりました。
イアンC.

これを使用して、現在実行中のアプリケーションの名前を取得できますか?
ウィリアム

アプリが実行中で、現在のデスクトップ上にないかどうかを確認する方法はありますか?既存のウィンドウが別のデスクトップにある場合にのみ、新しいウィンドウが必要です。
アダムポート
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.