Вам нужно использовать AppleScript для этого. Идеальным решением было бы использование встроенной функции от Firefox, но она не предлагает ее - ее словарь AppleScript очень ограничен. Поэтому мы должны эмулировать сочетания клавиш.
Откройте ваш ~/.bash_profile
и добавьте следующую функцию оболочки:
function firefox-window() {
/usr/bin/env osascript <<-EOF
tell application "System Events"
if (name of processes) contains "Firefox" then
tell application "Firefox" to activate
keystroke "n" using command down
else
tell application "Firefox" to activate
end if
end tell
EOF
}
Это вызовет osascript
, который выполняет команды AppleScript, затем активирует Firefox, а затем эмулирует нажатие клавиши ⌘N - но только если он уже запущен. Если нет, Firefox просто откроется, поэтому у вас не будет двух новых окон. Кроме того, вы можете заменить "n"
на "t"
чтобы получить новые вкладки.
Сохраните файл ~/.bash_profile
и введите исходный файл source ~/.bash_profile
чтобы перезагрузить его. Затем просто вызывайте следующую функцию всякий раз, когда вам нужно новое окно Firefox:
firefox-window
Конечно, не стесняйтесь менять название функции.
Если вы хотите иметь возможность передавать аргумент URL из командной строки, посмотрите этот ответ: Как открыть новое окно Firefox с аргументом URL.
~/.bash_profile
- это место, где должны находиться все ваши пользовательские функции. Если файл не существует, вы можете просто создать его.
Функции оболочки более мощные, чем псевдонимы, например, они также позволяют использовать аргументы. Вы также можете теоретически передать URL нового окна, а затем сказать Firefox открыть его с помощью команды OpenURL
или Get URL
- но я не пробовал их.
Относительно используемого синтаксиса: <<-EOF
- это документ здесь, облегчающий передачу многострочного ввода в osascript
. Вход будет анализироваться до тех пор, пока снова не появится маркер EOF
.