Как заставить Chrome открыть новое окно для внешних ссылок

10

Как некоторые люди могут знать, поведение по умолчанию для внешних ссылок Google Chrome довольно плохое. Я использую пробелы и открываю ссылку в каком-либо приложении за пределами Google Chrome, находясь в другом пространстве, чем последнее использованное окно Chrome, в результате чего Chrome переключается на последнее окно с фокусом.

Такое поведение просто плохо.

Я хочу изменить это поведение. В Windows это возможно: как настроить Chrome для открытия новых экземпляров браузера в новых окнах, а не на вкладке?

К сожалению, я не думаю, что это возможно на OS X Snow Leopard.

Я уже использую инструмент под названием RCDefaultApps. Это панель управления системой, где я могу указать приложения по умолчанию для разных протоколов. Ему просто не хватает функции для указания дополнительных аргументов командной строки для приложения по умолчанию.

Может ли кто-нибудь помочь мне там? Любые хаки (кроме создания собственной сборки Chromium) являются приемлемыми.

jsadfeew
источник

Ответы:

9

Вы можете попробовать использовать AppleScript, найденный на этой странице .

Я только что попробовал, и он отлично работает в Chrome 12.0.742.122.

Это очень легко настроить:

  • скачать архив Bundle
  • дважды щелкните по нему, чтобы распаковать его
  • дважды щелкните по OpenUrlInNewChromeWindow
  • откройте Safari и установите новый «Браузер» в качестве браузера по умолчанию в настройках.

новый браузер по умолчанию

mwidmann
источник
Это, кажется, вводит (очень короткую) задержку перед открытием окна, но это именно то, что я искал. Спасибо!
jsadfeew
Этот яблочный скрипт прекрасно работает.
Нельсон
3

Начав с ответа Дэйва, я обнаружил, что с Chrome 45 запуск osascriptбольше не нужен, а с OS X 10.10 сценарий Apple не выбирается в системных настройках. Вот как я это решил.

Создайте Apple Script с помощью редактора Apple Script и экспортируйте его как приложение.

on open location theURL
   do shell script "/usr/bin/open '/Applications/Google Chrome.app' --new --args --new-window " & theURL
end open location

Установите приложение RC по умолчанию .

RCDefaultApp - это панель предпочтений Mac OS X 10.2 или более поздней версии, которая позволяет пользователю устанавливать приложение по умолчанию, используемое для различных схем URL, расширений файлов, типов файлов, типов MIME и унифицированных идентификаторов типов.

В системных настройках откройте новый экран default-apps, перейдите на вкладку URL и установите экспортированный сценарий Apple в качестве обработчика для http и https .

Майкл Шмид
источник
Огромное спасибо. Это единственное решение, которое сработало для меня, это сводило меня с ума в течение многих лет.
Люк Дюбер
2

Я тоже не смог заставить его работать.

Я пытался использовать следующую команду:

open Google\ Chrome.app/ --new --args new-window www.google.com

Но это открывает новый Chrome, который мгновенно закрывается (если Chrome уже открыт). Я планировал обернуть вышеупомянутую команду в скрипт bash и затем дать ей аргументы (для URL).

Но так как вышеприведенная команда не сработала, я все еще думаю об этом. До сих пор я считаю, что это не «возможно» без какой-либо модификации Chromium, но я мог бы что-то упустить. Рано, а я еще не пил кофе. ;)

Мартин Маркончини
источник
Да, я тоже это попробовал. (с " google.com " вместо "Google Chrome.app") Обе версии не работают.
jsadfeew
2

Это работает на Маверикс:

open /Applications/Google\ Chrome.app --new --args --new-window https\://www.google.ca

с последующим:

osascript -e 'activate application "Google Chrome"'

Проверено в sh, bash и zsh.

По какой-то причине, если я попытаюсь поместить их в одну строку, вот так:

/usr/bin/open /Applications/Google\ Chrome.app --new --args --new-window www.google.ca; /usr/bin/osascript -e 'activate application "Google Chrome"'

... вторая часть не завершена. Я предполагаю, что это потому, что это слишком близко к пятам первой команды. Так что попробуйте это:

/usr/bin/open /Applications/Google\ Chrome.app --new --args --new-window www.google.ca; sleep 1; /usr/bin/osascript -e 'activate application "Google Chrome"'

Обратите внимание, что вам не нужно указывать http: // часть URL в конце, чтобы он работал, но если вы это сделаете, вам нужно экранировать двоеточие (:).

Чтобы сделать этот скрипт браузером по умолчанию, я создал appleScript и экспортировал его как приложение, а затем открыл «Настройки Safari» и установил приложение в качестве браузера по умолчанию. Вот код Applescript:

on open location theURL
  do shell script "/Users/[myusername]/bin/openUrlInNewChromeWindow.sh " & theURL
end open location

Замените [myusername] на ваше фактическое имя пользователя.

Дейв
источник
Причина, по которой я предпочитаю это решение mwidmann, заключается в том, что оно закрывается после открытия URL, тогда как другое, похоже, должно оставаться открытым, чтобы работать. Это означало, что OpenUrlInNewChromeWindow всегда был в списке запущенных приложений CMD-Tab, и каждый раз, когда я открывал URL, мне приходилось дважды переходить по вкладке, чтобы вернуться к предыдущему приложению.
Дейв
Я могу подтвердить, что использование RCDefaultApp для Michael Schmid также работает на OSX El Capitan (10.11.1).
Дейв
-1

Опция команды --new-window сделала это для меня. («C: \ Program Files (x86) \ Google \ Chrome \ Application \ chrome.exe» - новое окно https://www.google.com )

user67297
источник
2
Это для Windows - пожалуйста, отредактируйте, чтобы сослаться на OS X.
grg