วิธีเปิดหน้าต่างใหม่เป็นอินสแตนซ์แอปพลิเคชันแยกต่างหากสำหรับ Chrome, Terminal


18

การย้ายจาก Linux (OpenBox WM) ไปเป็น MBP ฉันกำลังดิ้นรนเพื่อกู้คืนระดับผลผลิตที่ฉันคุ้นเคย ... สิ่งหนึ่งที่ฆ่ามันคือการยืนยันของ OSX ในการแยกระหว่าง "แอปพลิเคชัน" และ "windows" โดยการกำหนดคีย์ที่แตกต่างกัน คอมโบที่จะสลับระหว่างกันแต่ละอันมีพฤติกรรมการหมุนของตัวเอง (ถอนหายใจ) นี้ได้รับก็แย่เพราะ OSX ยืนยันที่จะนำทุกหน้าต่างของโปรแกรม X เพื่อต้อนรับเมื่อใดก็ตามที่ฉันเปลี่ยนไป ฉันมักเจอสถานการณ์ที่ฉันมีหน้าต่าง Chrome สองหน้าต่างขึ้นไปและหน้าต่าง Terminal สองหน้าต่างขึ้นไปแต่ละกลุ่มครอบคลุมพื้นที่เดสก์ท็อปทั้งหมด แต่ฉันไม่สามารถมีหน้าต่างด้านหน้าได้ในเวลาเดียวกัน

ข้อ จำกัด อื่น ๆ : ฉันไม่ต้องการย้ายหน้าต่างเพื่อแยกพื้นที่ทำงาน (หรือสิ่งที่เรียกว่า) เพียงเพื่อให้ฉันสามารถทำงานกับพวกเขา ฉันไม่ต้องการใช้เมาส์ แต่ยินดีที่จะทำเช่นนั้นหากมันจะช่วยแก้ปัญหาของฉันได้ (จะไม่เกิดขึ้นในกรณีข้างต้น)

สิ่งหนึ่งที่อาจแก้ปัญหาของฉันคือสามารถเริ่มหน้าต่างใหม่ของแอปพลิเคชันที่ฉันสนใจ (Chrome, Terminal) เป็นอินสแตนซ์แยกต่างหาก สิ่งนี้จะให้ฉันสลับระหว่างพวกเขาโดยพลการโดยไม่บังคับให้พวกเขาทั้งหมดไปข้างหน้า

ไม่มีใครรู้วิธีที่จะทำในโยเซมิตี? ขอบคุณมาก!


1
บอกตามตรงแล้วเปลี่ยนกลับไปเป็น Linux :-) ฉันมีปัญหาแบบเดียวกับคุณมาหลายเดือนแล้วและไม่สามารถแก้ไขได้เช่นกัน คุณจัดการได้ในที่สุดหรือไม่?
flindeberg

คำตอบ:


15

คุณสามารถลองใช้ไวยากรณ์ต่อไปนี้โดยใช้openคำสั่ง:

open -na "Google Chrome"

โดยที่-nพารามิเตอร์เปิดอินสแตนซ์ใหม่แม้ว่าจะมีอยู่แล้ว

การเพิ่มพิเศษ--user-data-dirจะเริ่มต้นอินสแตนซ์ในไดเรกทอรีโปรไฟล์แยกต่างหากเช่น

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

และการใช้--profile-directoryคุณสามารถเปลี่ยนชื่อโปรไฟล์เริ่มต้น


นี่เป็นการเปิดหน้าต่างใหม่ แต่ฉันไม่สามารถบอกได้ว่ามันเป็นอินสแตนซ์ใหม่ ฉันคาดหวังว่าจะมีไอคอน Chrome หลายอันในตัวสลับงาน ฉันพบแอปที่ทำสิ่งที่คล้ายกับนี้: bahoom.com/hyperswitch
kraftydevil

ฉันไม่แน่ใจว่าทำไมระบบของคุณไม่แสดงอินสแตนซ์ใหม่ เมื่อฉันเริ่มต้นอินสแตนซ์ใหม่ด้วยopen -nSafari หรือ Forklift (เป็นตัวอย่าง) พวกเขาจะปรากฏใน Dock และแอพสลับเป็นเวอร์ชันใหม่ (เช่นเดียวกับในการตรวจสอบกิจกรรม) หากคุณกำลังมองหาตัวสลับแอพสำรองWitch by Many Tricks อาจเป็นสิ่งที่คุณต้องการ มันช่วยให้การสลับโดยแอพเช่นเดียวกับโดยหน้าต่าง
ดัสตินวีลเลอ

5
อ่านี้ดูเหมือนว่าจะมีบางสิ่งบางอย่างที่แตกต่างกันเกี่ยวกับ Chrome ... ปพลิเคชันหลายในระบบของฉัน (iTerm, Safari, ยก) เริ่มต้นอินสแตนซ์ใหม่ แต่ Chrome ดูเหมือนว่าจะกลืนตัวอย่างใหม่ (กิจกรรมการตรวจสอบแสดงให้เห็นตัวอย่างใหม่เมื่อopenคำสั่งจะดำเนินการแล้ว มันจะหายไปอย่างรวดเร็วและหน้าต่างใหม่กลายเป็นกระบวนการย่อยของอินสแตนซ์ Chrome ดั้งเดิม)
Dustin Wheeler

11

ตกลงคำตอบที่สมบูรณ์สำหรับกรณีทั่วไปและสำหรับ Chrome โดยเฉพาะ:

สำหรับแอปพลิเคชันส่วนใหญ่การเปิดใช้ด้วยopen -naF "App Name"หรือopen -nF /path/to/application.appควรจะเพียงพอ (ดูแอพ Safari, Forklift, Office ฯลฯ )

  • -n เปิดอินสแตนซ์ใหม่
  • -aบอกopenให้ดูในรายการแอพที่ลงทะเบียน (ไม่จำเป็นต้องระบุพา ธ เต็ม แต่อาจผิดพลาดได้ถ้าคุณมีแอพหลายเวอร์ชันบางครั้งฉันเห็นปัญหาในระบบของฉันด้วยความแตกต่างระหว่างแอพ MacOS และแอพที่ติดตั้งโดย Parallels OS ... ฉันชอบระบุเส้นทางโดยตรง)
  • -F เปิดอินสแตนซ์ใหม่ (ไม่สนใจสถานะการบันทึกแอปที่ค้างอยู่จากอินสแตนซ์ก่อนหน้า)

สำหรับ Google Chrome ต้องมีสิ่งที่แตกต่างออกไปเล็กน้อย (แก้ไขจากแหล่งที่มาในโพสต์บล็อกนี้ ) Chrome จะต้องเปิดตัวจากบรรทัดคำสั่งด้วยการ--user-data-dir=/tmp/dirตั้งค่าสถานะใน"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"(ระบุไดเรกทอรีของคุณเอง ... หากคุณต้องการเพียงสองอินสแตนซ์อาจเป็นการดีที่สุดที่จะสร้างบ้านหลังที่สองถาวร แต่ถ้าคุณต้องการหมายเลขที่กำหนดเอง สร้างไดเรกทอรีชั่วคราวแบบสุ่มจากนั้นลบออกเมื่อออกจาก)

การใช้วิธีนี้ส่งผลให้เกิดอินสแตนซ์ Chrome หลายอินสแตนซ์บนเครื่องของฉันและป้องกันไม่ให้ Chrome รวมเข้าด้วยกันภายใต้กระบวนการหลักเดียวกัน

โดยวิธีการที่คุณอาจต้องการที่จะรวมธงเพิ่มเติมฟังก์ชั่นในเปลือกของคุณสำหรับการเปิดตัว Chrome ... กว้างขวาง (ปรับปรุงโดยอัตโนมัติ) รายการสามารถใช้ได้ที่นี่


2

วิธีที่ง่ายที่สุดคือopen -nคำสั่ง

เช่น open -n /Applications/Chrome.app/


1
ขอบคุณ สิ่งนี้ไม่ได้มีผลที่คาดหวังน่าเสียดาย ... ด้วย Chrome มันเปิดหน้าต่างใหม่อย่างแน่นอน แต่มันเชื่อมโยงกับอินสแตนซ์ที่ทำงานอยู่แล้ว ด้วยเทอร์มินัลมันสร้างอินสแตนซ์ใหม่ที่จำลองหน้าต่างของอินสแตนซ์ที่กำลังทำงานอยู่ (ในลักษณะที่ดูประหลาดมาก) ไม่แน่ใจว่าจะดำเนินการที่นี่ได้อย่างไรรับคำแนะนำเพิ่มเติมชื่นชม
garnold

ไม่แน่ใจจริงๆหลังจากนั้นขอโทษ ฉันแค่ใช้ช่องว่าง & พลิกระหว่างการตั้งค่าการทำงานขึ้นอยู่กับสิ่งที่ฉันทำ
Tetsujin

พฤติกรรมการจำลองแบบมีแนวโน้มที่จะเชื่อมโยงกับคุณสมบัติ Resume ที่เปิดตัวใน OS X 10.7 คุณสามารถปิดใช้งานแบบต่อแอปโดยใช้defaults writeคำสั่งหรือคุณสามารถใช้การ-Fตั้งค่าสถานะด้วยopen( เช่น open -nFa "Terminal" ) เพื่อเปิดอินสแตนซ์ "สด" ของแอป (ตรวจสอบmanหน้าเพื่อเปิด)
Dustin Wheeler

1

คุณจะต้องจบการทำงานแอปพลิเคชั่นจาก Terminal

คุณสามารถใช้open -nคำสั่งจากเทอร์มินัล (ตามที่กล่าวไว้โดย @Tetsujin) หรือคุณสามารถคลิกแพคเกจแอปพลิเคชั่นที่รันได้ (โดยปกติจะอยู่ในApplication/Contents/MacOS/)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.