Bagaimana cara membuka windows baru sebagai instance aplikasi terpisah untuk Chrome, Terminal?

18

Pindah dari Linux (OpenBox WM) ke MBP, saya berjuang untuk memulihkan tingkat produktivitas yang biasa saya gunakan ... Satu hal khusus yang mematikannya adalah desakan OSX untuk memisahkan antara "aplikasi" dan "windows", menetapkan kunci yang berbeda kombo untuk beralih di antara keduanya, masing-masing dengan perilaku rotasi sendiri (mendesah). Ini menjadi lebih buruk karena OSX bersikeras untuk membawa semua jendela aplikasi X ke depan setiap kali saya beralih ke sana. Saya sering mengalami situasi di mana saya memiliki dua atau lebih jendela Chrome dan dua atau lebih jendela Terminal, masing-masing kelompok menjangkau seluruh ruang desktop, tetapi saya tidak dapat memiliki masing-masing di bagian depan pada saat yang bersamaan.

Kendala lain: Saya tidak ingin memindahkan windows ke ruang kerja yang terpisah (atau apa pun namanya) supaya saya bisa bekerja dengannya. Saya lebih suka tidak menggunakan mouse, tetapi bersedia melakukannya jika itu akan menyelesaikan masalah saya (tidak akan dalam kasus di atas).

Satu hal yang mungkin bisa menyelesaikan masalah saya adalah dapat memulai windows baru dari aplikasi yang saya pedulikan (Chrome, Terminal) sebagai contoh terpisah. Ini akan membiarkan saya beralih di antara mereka secara sewenang-wenang tanpa memaksa mereka semua ke depan.

Adakah yang tahu cara melakukannya di Yosemite? Terimakasih banyak!

garnold
sumber
1
Sejujurnya, kembali ke Linux :-) Saya sudah memiliki masalah yang sama seperti Anda selama berbulan-bulan dan belum bisa menyelesaikannya juga. Apakah Anda akhirnya berhasil?
flindeberg

Jawaban:

15

Anda dapat mencoba sintaks berikut menggunakan openperintah:

open -na "Google Chrome"

di mana -nparameter membuka instance baru bahkan jika sudah berjalan.

Menambahkan ekstra --user-data-dirakan memulai contoh di direktori profil yang terpisah, misalnya

open -na "Google Chrome" --args --user-data-dir="$PWD/Foo"

Dan menggunakan --profile-directoryAnda dapat mengubah nama profil default.

kenorb
sumber
Ini pasti membuka jendela baru tapi saya tidak tahu bagaimana ini contoh baru. Saya berharap ada beberapa ikon Chrome di dalam pengalih tugas. Saya akhirnya menemukan aplikasi untuk melakukan sesuatu yang mirip dengan ini: bahoom.com/hyperswitch
kraftydevil
Saya tidak yakin mengapa sistem Anda tidak menunjukkan contoh baru. Ketika saya memulai contoh baru dengan open -nSafari atau Forklift (sebagai contoh), mereka muncul di Dock dan pengalih aplikasi sebagai versi baru (dan juga di Activity Monitor). Jika Anda mencari pengalih aplikasi alternatif, Witch by Many Tricks mungkin sesuai keinginan Anda. Hal ini memungkinkan beralih dengan aplikasi maupun oleh jendela.
Dustin Wheeler
5
Ahh, ini tampaknya menjadi sesuatu yang berbeda terkait dengan Chrome ... beberapa aplikasi di sistem saya (Iterm, Safari, Forklift) memulai instance baru, tetapi Chrome tampaknya menelan instance baru (Activity Monitor menunjukkan contoh baru ketika open perintah dijalankan, lalu dengan cepat menghilang dan jendela baru menjadi subproses instance Chrome asli).
Dustin Wheeler
11

Oke, jawaban lengkap untuk kasus umum dan khusus untuk Chrome:

Untuk sebagian besar aplikasi, peluncuran dengan open -naF "App Name"atau open -nF /path/to/application.appharus memadai (lihat Safari, Forklift, aplikasi Office, dll.).

  • -n membuka contoh baru
  • -amemberitahu openuntuk melihat dalam daftar aplikasi terdaftar (tidak perlu menentukan path lengkap, tetapi bisa salah jika Anda memiliki beberapa versi aplikasi. Saya kadang-kadang melihat masalah pada sistem saya dengan membedakan antara aplikasi macOS dan aplikasi yang diinstal oleh Parallels OS ... Saya lebih suka menentukan jalur secara langsung.)
  • -F membuka instance baru (mengabaikan status penyimpanan aplikasi yang tersisa dari instance sebelumnya)

Untuk Google Chrome, diperlukan sesuatu yang sedikit berbeda (dimodifikasi dari sumber masuk posting blog ini ). Chrome harus diluncurkan dari baris perintah dengan --user-data-dir=/tmp/dirflag ditetapkan "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"(tentukan direktori Anda sendiri ... jika Anda hanya perlu dua contoh, mungkin yang terbaik untuk membuat rumah kedua permanen, tetapi jika Anda memerlukan nomor sewenang-wenang, terbaik untuk membuat fungsi shell yang membuat direktori temp acak lalu menghapusnya saat keluar).

Menggunakan metode ini menghasilkan beberapa instance Chrome di mesin saya dan mencegah Chrome untuk mengkonsolidasikannya dalam proses master yang sama.

Ngomong-ngomong, Anda mungkin ingin memasukkan bendera tambahan dalam fungsi shell Anda untuk meluncurkan Chrome ... daftar lengkap (diperbarui secara otomatis) tersedia di sini .

Dustin Wheeler
sumber
2

Metode paling sederhana adalah open -nperintahnya

misalnya open -n /Applications/Chrome.app/

Tetsujin
sumber
1
Terima kasih. Sayangnya ini tidak memiliki efek yang diharapkan ... Dengan Chrome, memang membuka jendela baru, tetapi terikat dengan contoh yang sudah berjalan. Dengan Terminal, ia menciptakan instance baru yang mereplikasi jendela instance yang berjalan (dengan cara yang sangat aneh). Tidak yakin bagaimana melanjutkan di sini, saran lebih lanjut dihargai.
garnold
Tidak begitu yakin setelah itu, maaf. Saya hanya menggunakan Spaces & flip antara pengaturan kerja, tergantung pada apa yang saya lakukan.
Tetsujin
Perilaku replikasi kemungkinan terkait dengan fitur Lanjutkan yang diperkenalkan di OS X 10.7. Anda dapat menonaktifkannya berdasarkan per-aplikasi menggunakan defaults writeperintah, atau Anda dapat menggunakan -Fbendera dengan open( misalnya, open -nFa "Terminal" ) untuk membuka contoh "baru" dari suatu aplikasi (periksa manhalaman untuk membuka).
Dustin Wheeler
1

Anda (pada akhirnya) harus menjalankan aplikasi dari Terminal.

Anda dapat menggunakan open -nperintah dari Terminal (seperti yang disebutkan oleh @Tetsujin) atau Anda dapat mengklik paket aplikasi yang dapat dieksekusi (biasanya dalam Application/Contents/MacOS/)

JMY1000
sumber