Як відкрити нові вікна як окремі екземпляри програм для Chrome, Terminal?


18

Переходячи з Linux (OpenBox WM) в MBP, я намагаюся відновити рівень продуктивності, до якого я звик ... Одне конкретне, що вбиває це, - наполягання OSX на розділенні між "додатками" та "windows", присвоєнням різного ключа комбінації для перемикання будь-якого, кожен зі своєю поведінкою обертання (зітхання). Це стає ще гірше, тому що OSX наполягає на тому, щоб повернути всі вікна програми X на передню частину, коли я перемикаюся на неї. Я часто стикаюся з ситуаціями, коли у мене є два або більше вікна Chrome і два або більше вікна терміналів, кожна група охоплює весь простір робочого столу, але я не можу одночасно мати одне з них.

Інші обмеження: я не хочу переміщувати вікна в окремі робочі простори (або так, як це називається), просто щоб я міг працювати з ними. Я вважаю за краще не користуватися мишкою, але бажаю зробити це, якщо це вирішить мою проблему (у вищенаведеному випадку це не буде).

Одне, що може вирішити мою проблему, - це можливість запускати нові вікна програм, які мені важливі (Chrome, Terminal), як окремі екземпляри. Це дозволить мені перемикатися між ними довільно, не змушуючи їх усіх переду.

Хтось знає про спосіб зробити це в Йосеміті? Дуже дякую!


1
Якщо чесно, перейдіть на Linux :-) У мене були ті ж проблеми, що і у вас місяцями, і я не змогла її вирішити. Чи вдалося вам нарешті?
Фліндеберг

Відповіді:


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 (як приклади), вони відображаються в док-станції та перемикачі додатків як нові версії (а також у Моніторі діяльності). Якщо ви шукаєте альтернативний перемикач програм, Witch by Many Tricks може бути тим, що ви хочете. Це дозволяє перемикатися як на додаток, так і на вікно.
Дастін Вілер

5
Ах, це здається чимось інакше пов’язаним із Chrome ... кілька додатків у моїй системі (iTerm, Safari, Forklift) починають нові екземпляри, але Chrome, схоже, проковтне новий екземпляр (Монітор активності показує новий екземпляр, коли openкоманда виконується, тоді воно швидко зникає, і нове вікно стає підпроцесом оригінального екземпляра Chrome).
Дастін Вілер

11

Гаразд, повна відповідь для загального випадку та конкретно для Chrome:

Для більшості програм запуску з open -naF "App Name"або open -nF /path/to/application.appповинно бути достатньо (див. Програми Safari, Forklift, Office тощо).

  • -n відкриває новий екземпляр
  • -aповідомляє openшукати у списку зареєстрованих додатків (не потрібно вказувати повний шлях, але може піти не так, якщо у вас є кілька версій програми. Іноді я бачу проблеми в моїй системі з розмежуванням додатків macOS і додатків, встановлених Parallels OSes… Я вважаю за краще вказати шлях безпосередньо.)
  • -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 він справді відкрив нове вікно, але воно було прив’язане до вже запущеного екземпляра. З Terminal він створив новий екземпляр, який тиражував вікна запущеного екземпляра (дуже дивно). Не знаєте, як діяти тут, подальша порада оцінена.
гарнольд

Не дуже впевнений після цього, вибач. Я просто використовую "Пробіли" і "перемикаюся" між робочими налаштуваннями, залежно від того, що я роблю.
Тецуджин

Поведінка реплікації, ймовірно, пов'язана з функцією Resume, яка була введена в OS X 10.7. Ви можете відключити його за допомогою програми за допомогою defaults writeкоманди, або ви можете використовувати -Fпрапор із open( наприклад, open -nFa "Terminal" ), щоб відкрити "свіжий" екземпляр програми (перевірте manсторінку на відкриту).
Дастін Вілер

1

Вам доведеться (зрештою) виконати програму від Terminal.

Ви можете використовувати open -nкоманду з терміналу (як згадував @Tetsujin), або ви можете в межах пакету додатків натиснути на виконуваний файл (як правило, в Application/Contents/MacOS/)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.