इसके लिए आपको AppleScript का उपयोग करने की आवश्यकता है। आदर्श समाधान फ़ायरफ़ॉक्स से एक अंतर्निहित फ़ंक्शन का उपयोग करना होगा, लेकिन यह एक की पेशकश नहीं करता है - इसका 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 कमांड निष्पादित करता है, फिर फ़ायरफ़ॉक्स को सक्रिय करता है, और फिर एक अनुकरण करता है ⌘N कीप - लेकिन केवल अगर यह पहले से ही चल रहा है। यदि नहीं, तो फ़ायरफ़ॉक्स सिर्फ खोला जाएगा, इसलिए आपको दो नई विंडो नहीं मिलेंगी। इसके अलावा, आप विनिमय कर सकते हैं "n" सेवा मेरे "t" नया टैब पाने के लिए, जाहिर है।
बचाओ ~/.bash_profile दर्ज करें और दर्ज करें source ~/.bash_profile इसे फिर से लोड करने के लिए। फिर, जब भी आपको एक नई फ़ायरफ़ॉक्स विंडो की आवश्यकता हो, तो निम्न फ़ंक्शन को कॉल करें:
firefox-window
बेशक, फ़ंक्शन का नाम बदलने के लिए स्वतंत्र महसूस करें।
यदि आप कमांड लाइन से URL तर्क पारित करने में सक्षम होना चाहते हैं, तो यह उत्तर देखें: URL तर्क के साथ एक नई फ़ायरफ़ॉक्स विंडो कैसे खोलें ।
~/.bash_profile वह जगह है जहां आपके सभी कस्टम फ़ंक्शन को निवास करना चाहिए। यदि फ़ाइल मौजूद नहीं है, तो आप इसे बना सकते हैं।
खोल कार्यों उपनाम से अधिक शक्तिशाली हैं, उदाहरण के लिए वे आपको तर्क का भी उपयोग करने की अनुमति देते हैं। आप सैद्धांतिक रूप से नई विंडो का URL भी पास कर सकते हैं, और फिर फ़ायरफ़ॉक्स को इसे खोलने के लिए कह सकते हैं OpenURL या Get URL आदेश - लेकिन मैंने उन्हें कोशिश नहीं की है।
प्रयुक्त सिंटैक्स के बारे में: द <<-EOF एक है यहाँ दस्तावेज़ , जिससे मल्टी-लाइन इनपुट पास करना आसान हो जाता है osascript। इनपुट तक पार्स किया जाएगा EOF मार्कर फिर से दिखाई देता है।