Buka jendela terminal baru di ruang saat ini, terlepas dari terminal terbuka lainnya di ruang lain

14

Saat menggunakan Spaces pada Mac OS X mencoba membuka terminal instance baru menghasilkan fokus ditarik ke ruang apa pun yang memiliki jendela terminal yang paling baru diakses. Dengan Finder saya dapat mengklik Desktop dan kemudian menggunakan - Nuntuk membuat jendela Finder baru. Apa yang saya cari adalah metode untuk melakukan fungsi yang sama untuk windows Terminal.

Bagaimana saya bisa membuat instance Terminal baru di ruang saat ini, terlepas dari apakah ada instance Terminal lain di satu atau lebih ruang lain.

Terima kasih.

Mark Nichols
sumber
Saya suka pertanyaannya, tetapi saya pikir itu harus di super user.

Jawaban:

4

Anda dapat membuat layanan baru menggunakan automator (dari folder aplikasi). Di bagian atas jendela automator, masukkan: Layanan menerima 'tidak ada input' di 'aplikasi apa pun'. Lalu, dalam alur kerja, tambahkan 'Jalankan applescript'. Jadikan apel berisi:

on run {input, parameters}

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

    return input
end run

(Anda dapat menambahkan perintah apa pun yang Anda suka ke dalam baris skrip do antara "" (mis. Sesuatu yang berguna untuk dijalankan ketika terminal pertama kali dibuka seperti uptimejika Anda suka, atau biarkan saja kosong).

Simpan layanan sebagai 'Open Terminal' atau nama apa pun yang Anda suka. Sekarang akan muncul di menu layanan Anda.

Kemudian jika Anda ingin menambahkan pintasan keyboard, Anda hanya perlu pergi ke System Preferences -> Keyboard -> tab Shortcuts Keyboard, pilih layanan di menu sebelah kiri, dan temukan layanan baru Anda (mungkin dekat bagian bawah). Cukup klik di ruang di sebelah kanan nama layanan Anda, dan tetapkan pintasan keyboard apa pun yang Anda suka, dan hei presto! itu semua harus bekerja

tmdavison
sumber
1
Perlu dicatat bahwa ini sebenarnya menyediakan fungsionalitas yang diminta. Sebagai suntingan kecil, Anda perlu do shell script " "baris untuk membuka jendela baru di ruang saat ini, tetapi tidak perlu skrip shell menjadi ruang kosong. Jika itu adalah ruang kosong, itu menyebabkan Terminal untuk menjalankan ruang kosong sebagai perintah, yang mengarah ke penundaan eksekusi dan garis asing di jendela Terminal baru. Buat saja string yang benar-benar kosong: do shell script ""dan kemudian membuka jendela Terminal baru tetapi tidak mengeluarkan perintah apa pun di dalamnya.
Dakota
Yap, kamu benar. Saya telah memperbarui jawaban untuk menghilangkan spasi di antara tanda kutip. Namun, untuk dapat bekerja, itu harus do script "", dan tidak do shell script "", seperti yang disarankan
@dakota
3

Dalam penugasan aplikasi di System Preferences -> Spaces, atur Terminal ke "Every Space" atau hapus entri. Maka seharusnya tidak ada masalah untuk membuka jendela Terminal baru di mana pun Anda inginkan, misalnya dengan mengklik menu konteks dock "Jendela Baru" (berfungsi bahkan jika Anda memiliki "Saat beralih ke aplikasi, beralihlah ke ruang angkasa dengan jendela yang terbuka dari sana." opsi "aplikasi diaktifkan).

wm
sumber
Kalimat pertama tidak relevan, sejauh yang saya tahu. Mengaturnya ke "Every Space" masih mengubah Space saat membuka jendela baru melalui sesuatu seperti AppleScript atau keybinding, dan menu konteks dock tidak pernah mengubah ruang terlepas dari pengaturan ini. Satu hal yang menarik dalam jawaban ini adalah opsi "Ketika beralih ke suatu aplikasi, beralihlah ke ruang angkasa dengan jendela yang terbuka dari aplikasi itu". Menonaktifkannya "memperbaiki" case keybinding / AppleScript, tapi sayangnya "merusak" tab perintah. Jika saja OS-X memiliki ikatan "cycle windows" yang tepat yang bekerja di semua jendela di semua aplikasi di semua ruang.
Laurence Gonsalves
@LaurenceGonsalves, Anda dapat menggilir semua jendela Terminal di semua Spaces dengan Command-Left / Right Arrow. Apakah itu membantu?
Chris Page
@ Chris Itu seperangkat jalan pintas yang menarik, terima kasih, tetapi mereka tidak menyelesaikan masalah yang saya maksud. Jika pengaturan "Saat beralih ke aplikasi ..." dinonaktifkan dan Anda berada di ruang tanpa jendela Terminal dan Anda memberi perintah-tab ke "Terminal" itu tidak beralih ke ruang yang memiliki jendela Terminal, dan perintah-backtick tidak akan melakukan apa pun. Hebatnya, command-left / right-arrow tidak melakukan apa pun dalam hal ini (setidaknya pada Snow Leopard). Tombol-tombol itu akan berputar di antara jendela di seluruh ruang jika jendela dalam aplikasi saat ini memiliki fokus, tetapi jika tidak ada jendela memiliki fokus mereka tidak melakukan apa-apa.
Laurence Gonsalves
2
tell application "Terminal"
    do script ""
    activate
end tell

Untuk membuatnya berfungsi di bawah Lion, ketik di atas ke dalam jendela AppleScript baru dan simpan. Aktifkan skrip melalui peluncur perintah seperti QuickSilver atau tetapkan ke pintasan keyboard. Ini akan bekerja, bahkan jika Anda telah menetapkan pengaturan "Ketika beralih ke aplikasi, beralih ke ruang dengan jendela terbuka untuk aplikasi" yang diaktifkan di Kontrol Misi. Caranya adalah dengan melakukan perintah aktivasi terakhir, daripada di awal.

Stefan Ludwig
sumber
Atau, buat Layanan menggunakan Automator dan aktifkan menggunakan pintasan keyboard yang diatur dalam System Preferences: apple.stackexchange.com/a/13655/36722
Dakota
0

Jika Anda menggunakan menu dock untuk membuka jendela baru, itu terbuka di ruang saat ini.


sumber
Apakah ada cara untuk melakukan ini dari keyboard?
Laurence Gonsalves
Control-F3 adalah "Pindahkan fokus ke Dock". Anda dapat menggunakan tombol panah untuk menavigasi menu ikon Dock Terminal. Anda juga dapat mengetik untuk memilih item menu berdasarkan nama, misalnya, ketik "N" atau "W Baru". Lihat Preferensi Sistem> Keyboard> Pintasan Keyboard> Input Keyboard & Teks untuk melihat semua pintasan keyboard untuk memilih dan menavigasi melalui UI.
Chris Page
Itu mungkin dilakukan. Anda perlu membuat Layanan khusus menggunakan Automator, yang kemudian dapat Anda ikat ke pintasan keyboard dari System Preferences: apple.stackexchange.com/a/13655/36722
Dakota
0

Anda dapat menonaktifkan ruang berpindah OSX secara otomatis saat Anda berpindah aplikasi menggunakan perintah berikut:

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

Bekerja pada 10.6.8

OrangeBox
sumber
Ada pengaturan GUI untuk ini juga, itu ada di "Kontrol Misi".
SilverWolf - Pasang kembali Monica