Làm cách nào để mở các cửa sổ mới dưới dạng các ứng dụng riêng biệt cho Chrome, Terminal?


18

Chuyển từ Linux (OpenBox WM) sang MBP, tôi đang vật lộn để phục hồi mức năng suất mà tôi đã từng sử dụng để ... Một điều cụ thể giết chết nó là sự khăng khăng của OSX trong việc tách biệt giữa "ứng dụng" và "cửa sổ", gán khóa khác các combo để chuyển đổi giữa hai bên, mỗi cái có hành vi xoay vòng riêng (thở dài). Điều này thậm chí còn tồi tệ hơn vì OSX khăng khăng đưa tất cả các cửa sổ của ứng dụng X lên phía trước bất cứ khi nào tôi chuyển sang nó. Tôi thường gặp phải tình huống tôi có hai hoặc nhiều cửa sổ Chrome và hai hoặc nhiều cửa sổ Terminal, mỗi nhóm trải rộng toàn bộ không gian máy tính để bàn, nhưng tôi không thể có một cửa sổ ở phía trước cùng một lúc.

Các ràng buộc khác: Tôi không muốn di chuyển các cửa sổ để phân tách các không gian làm việc (hoặc bất cứ thứ gì được gọi) chỉ để tôi có thể làm việc với chúng. Tôi không thích sử dụng chuột, nhưng sẵn sàng làm như vậy nếu điều đó sẽ giải quyết vấn đề của tôi (nó sẽ không xảy ra trong trường hợp trên).

Một điều có thể giải quyết vấn đề của tôi là có thể khởi động các cửa sổ mới của các ứng dụng tôi quan tâm (Chrome, Terminal) dưới dạng các phiên bản riêng biệt. Điều này sẽ cho phép tôi chuyển đổi giữa chúng một cách tùy ý mà không buộc tất cả chúng ra phía trước.

Có ai biết một cách để làm điều đó ở Yosemite không? Cảm ơn rất nhiều!


1
Thành thật mà nói, hãy quay lại với Linux :-) Tôi đã gặp vấn đề tương tự như bạn trong nhiều tháng và cũng không thể giải quyết nó. Bạn đã quản lý cuối cùng?
flindeberg

Câu trả lời:


15

Bạn có thể thử cú pháp sau bằng openlệnh:

open -na "Google Chrome"

trong đó -ncác tham số mở một thể hiện mới ngay cả khi một tham số đang chạy.

Thêm thêm --user-data-dirsẽ bắt đầu cá thể trong thư mục hồ sơ riêng biệt, ví dụ

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

Và sử dụng --profile-directorybạn có thể thay đổi tên hồ sơ mặc định.


Điều này chắc chắn sẽ mở một cửa sổ mới nhưng tôi không thể biết đó là một ví dụ mới như thế nào. Tôi đã mong đợi sẽ có nhiều biểu tượng Chrome trong trình chuyển đổi tác vụ. Cuối
kraftydevil

Tôi không chắc tại sao hệ thống của bạn không hiển thị một phiên bản mới. Khi tôi bắt đầu một phiên bản mới với open -nSafari hoặc Xe nâng (ví dụ), chúng sẽ hiển thị trong Dock và trình chuyển đổi ứng dụng dưới dạng phiên bản mới (cũng như trong Trình giám sát hoạt động). Nếu bạn đang tìm kiếm một trình chuyển đổi ứng dụng thay thế, Witch by Many Tricks có thể là những gì bạn muốn. Nó cho phép chuyển đổi bằng ứng dụng cũng như cửa sổ.
Dustin Wheeler

5
À, đây có vẻ là một cái gì đó khác liên quan đến nhiều ứng dụng Chrome trên hệ thống của tôi (iTerm, Safari, Forklift) bắt đầu các phiên bản mới, nhưng Chrome dường như nuốt phiên bản mới (Activity Monitor hiển thị một phiên bản mới khi openlệnh được chạy, sau đó nó nhanh chóng biến mất và cửa sổ mới trở thành một quy trình con của phiên bản Chrome gốc).
Dustin Wheeler

11

Ok, một câu trả lời đầy đủ cho trường hợp chung và cụ thể cho Chrome:

Đối với hầu hết các ứng dụng, khởi chạy cùng open -naF "App Name"hoặc open -nF /path/to/application.appnên là đủ (xem Safari, Xe nâng, ứng dụng Office, v.v.).

  • -n mở một ví dụ mới
  • -ayêu opencầu tìm trong danh sách các ứng dụng đã đăng ký (không cần chỉ định đường dẫn đầy đủ, nhưng có thể sai nếu bạn có nhiều phiên bản của ứng dụng. Đôi khi tôi thấy các sự cố trên hệ thống của mình với sự khác biệt giữa các ứng dụng và ứng dụng macOS được cài đặt bởi Parallels OSes. Tôi thích chỉ định đường dẫn trực tiếp.)
  • -F mở một phiên bản mới (bỏ qua trạng thái lưu ứng dụng còn sót lại từ các phiên bản trước)

Đối với Google Chrome, cần có một chút khác biệt (được sửa đổi từ nguồn trong bài đăng trên blog này ). Chrome phải được khởi chạy từ dòng lệnh với --user-data-dir=/tmp/dircờ được đặt "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"(chỉ định thư mục riêng của bạn nếu bạn chỉ cần hai trường hợp, có lẽ tốt nhất để tạo một ngôi nhà thứ hai vĩnh viễn, nhưng nếu bạn cần một số tùy ý, tốt nhất để tạo một hàm shell tạo một thư mục tạm thời ngẫu nhiên sau đó xóa nó khi thoát).

Sử dụng phương pháp này dẫn đến nhiều phiên bản Chrome trên máy của tôi và ngăn Chrome hợp nhất chúng theo cùng một quy trình chính.

Nhân tiện, bạn có thể muốn kết hợp các cờ bổ sung trong chức năng hệ vỏ của mình để khởi chạy Chrome, một danh sách mở rộng (cập nhật tự động) có sẵn tại đây .


2

Phương pháp đơn giản nhất là open -nlệnh

ví dụ open -n /Applications/Chrome.app/


1
Cảm ơn. Điều này không có hiệu ứng mong đợi một cách đáng tiếc ... Với Chrome, nó thực sự đã mở một cửa sổ mới, nhưng nó được gắn với phiên bản đã chạy. Với Terminal, nó đã tạo ra một cá thể mới sao chép các cửa sổ của cá thể đang chạy (theo một cách rất quái đản). Không chắc chắn làm thế nào để tiến hành ở đây, tư vấn thêm đánh giá cao.
garnold

Không thực sự chắc chắn sau đó, xin lỗi. Tôi chỉ sử dụng Spaces & lật giữa các thiết lập làm việc, tùy thuộc vào những gì tôi đang làm.
Tetsujin

Hành vi sao chép có khả năng được gắn với tính năng Resume đã được giới thiệu trong OS X 10.7. Bạn có thể vô hiệu hóa nó trên cơ sở mỗi ứng dụng bằng cách sử dụng defaults writelệnh hoặc bạn có thể sử dụng -Fcờ với open( ví dụ open -nFa "Terminal" :) để mở phiên bản "mới" của ứng dụng (kiểm tra mantrang để mở).
Dustin Wheeler

1

Cuối cùng, bạn sẽ phải thực hiện ứng dụng từ Terminal.

Bạn có thể sử dụng open -nlệnh từ Terminal (như được đề cập bởi @Tetsujin) hoặc bạn có thể trong gói ứng dụng, nhấp vào tệp thực thi (thường là trong Application/Contents/MacOS/)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.