他のスペースで開いている他のターミナルに関係なく、現在のスペースで新しいターミナルウィンドウを開く


14

Mac OS XでSpacesを使用して新しいターミナルインスタンスを開こうとすると、最近アクセスしたターミナルウィンドウがあるスペースにフォーカスが移動します。Finderでは、デスクトップをクリックしてから- Nを使用して、新しいFinderウィンドウを作成できます。私が探しているのは、ターミナルウィンドウで同じ機能を実行する方法です。

1つ以上の他のスペースに別のターミナルインスタンスがあるかどうかに関係なく、現在のスペースに新しいターミナルインスタンスを作成するにはどうすればよいですか。

ありがとう。


私は質問が好きですが、それはスーパーユーザーにあるべきだと思います。

回答:


4

オートマトーを使用して(アプリケーションフォルダーから)新しいサービスを作成できます。オートマトラウィンドウの上部で、次のように入力します。サービスは「すべてのアプリケーション」で「入力なし」を受け取ります。次に、ワークフローに「Run applescript」を追加します。applescriptに次のものが含まれるようにします。

on run {input, parameters}

    tell application "Terminal"
        do script ""
        activate
    end tell

    return input
end run

(好きなコマンドを ""の間のdoスクリプト行に追加できます(たとえば、ターミナルが最初に開いたときに好きなように実行するuptimeか、単に空白のままにしておくと便利です)。

サービスを「Open Terminal」または任意の名前で保存します。サービスメニューに表示されます。

キーボードショートカットを追加する場合は、[システム環境設定]-> [キーボード]-> [キーボードショートカット]タブに移動し、左側のメニューでサービスを選択し、新しいサービス(おそらく下部近く)を見つけるだけです。サービス名の右側のスペースをクリックするだけで、好きなキーボードショートカットを割り当てることができます。それはすべて動作するはずです


1
これは実際に要求された機能を提供することに注意してください。マイナーな編集として、do shell script " "現在のスペースに新しいウィンドウを開くための行が必要ですが、シェルスクリプトを空白にする必要はありません。空白の場合、ターミナルはコマンドとして空白を実行し、新しいターミナルウィンドウに実行の遅延と余分な行が発生します。それを完全に空の文字列にしてください:do shell script ""そして、新しいターミナルウィンドウを開きますが、コマンドは一切発行しません。
ダコタ

うん、あなたは正しい。引用符の間のスペースを削除するように回答を更新しました。ただし、動作するためにdo script ""do shell script ""、@ dakotaが示唆したように、そうである必要があります
-tmdavison

3

[システム環境設定]-> [スペース]のアプリケーションの割り当てで、[ターミナル]を[すべてのスペース]に設定するか、エントリを削除します。次に、ドックコンテキストメニューの[新しいウィンドウ]をクリックして(たとえば、[アプリに切り替えるときに、そこから開いているウィンドウのあるスペースに切り替えても、機能します]アプリ」オプションが有効になっています)。


私が知る限り、最初の文は無関係です。「すべてのスペース」に設定すると、AppleScriptやキーバインドなどで新しいウィンドウを開くときにスペースが変更されます。ドックのコンテキストメニューは、この設定に関係なくスペースを変更しません。この回答で興味深いのは、「アプリに切り替えるとき、そのアプリから開いているウィンドウがあるスペースに切り替える」オプションです。これを無効にすると、キーバインド/ AppleScriptケースが「修正」されますが、残念ながらコマンドタブは「壊れ」ます。OS-Xにのみ、すべてのスペースのすべてのアプリのすべてのウィンドウで機能する適切な「サイクルウィンドウ」キーバインディングがあった場合。
ローレンスゴンサルベス

@LaurenceGonsalvesでは、Command-左/右矢印キーを使用して、すべてのスペースのすべてのターミナルウィンドウを切り替えることができます。それは役立ちますか?
クリスページ

@Chrisそれは面白いショートカットのセットです、ありがとう、しかし彼らは私が言及している問題を解決しません。「アプリに切り替えるとき...」設定が無効になっていて、ターミナルウィンドウのないスペースにいて、「ターミナル」にコマンドタブを移動した場合、ターミナルウィンドウのあるスペースには切り替わりません。 command-backtickは何もしません。驚くべきことに、この場合もcommand-left / right-arrowは何もしません(少なくともSnow Leopardでは)。現在のアプリケーションのウィンドウにフォーカスがある場合、これらのキーはスペース間でウィンドウ間を循環しますが、ウィンドウにフォーカスがない場合は何もしません。
ローレンスゴンサルベス

2
tell application "Terminal"
    do script ""
    activate
end tell

これをLionで動作させるには、上記を新しいAppleScriptウィンドウに入力して保存します。QuickSilverなどのコマンドランチャーからスクリプトを呼び出すか、キーボードショートカットに割り当てます。Mission Controlで「アプリケーションに切り替えるときは、アプリケーションのウィンドウが開いているスペースに切り替える」設定を有効にしている場合でも、これは機能するはずです。トリックは、起動コマンドを最初ではなく最後に実行することです。


または、Automatorを使用してサービスを作成し、システム環境設定で設定されたキーボードショートカットを使用してサービスを起動します:apple.stackexchange.com/a/13655/36722
Dakota

0

ドックメニューを使用して新しいウィンドウを開くと、現在のスペースで開きます。


キーボードからこれを行う方法はありますか?
ローレンスゴンサルベス

Control-F3は「フォーカスをDockに移動」です。矢印キーを使用して、ターミナルのDockアイコンメニューをナビゲートできます。入力して、名前でメニュー項目を選択することもできます。たとえば、「N」または「New W」と入力します。参照してください。システム環境設定>キーボード>キーボードショートカット>キーボード&テキスト入力を選択し、UIをナビゲートするために、すべてのキーボードショートカットを参照してください。
クリスページ

これを行うことは可能です。Automatorを使用して特別なサービスを作成する必要があります。Automatorは
Dakota

0

次のコマンドを使用してアプリケーションを切り替えると、OSX切り替えスペースを自動的に無効にできます。

defaults write com.apple.dock workspaces-auto-swoosh -bool NO
killall Dock

10.6.8で動作


これにはGUI設定もあり、「ミッションコントロール」にあります。
シルバーウルフ-モニカの復活
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.