3 साल देर से जवाब के लिए क्षमा करें, मुझे अभी इस विषय में दिलचस्पी हो गई और मुझे यह प्रश्न मिला।
मुझे कहीं भी प्रलेखित समाधान नहीं मिला, इसलिए मैंने स्रोत कोड की जाँच की और यहाँ एक बहुत ही प्रासंगिक हिस्सा है:
http://dxr.mozilla.org/mozilla-central/source/toolkit/xre/nsAppRunner.cn#1537
यहां, लाइन के अंत में nullptr दुर्भाग्य से इसका मतलब है कि SendCommandLine फ़ंक्शन को प्रोफ़ाइल तर्क पास नहीं किया जा रहा है, इसलिए ओपनर संदेश भेजने के लिए सही फ़ायरफ़ॉक्स विंडो का चयन करना संभव नहीं है।
हालाँकि, हम देखते हैं कि उपयोगकर्ता नाम दिया जा रहा है और उपयोगकर्ता नाम LOGNAME पर्यावरण चर से सूचित किया जा रहा है। इसके आधार पर, मैं निम्नलिखित समाधान के साथ आया:
- मैं इस स्क्रिप्ट के साथ फ़ायरफ़ॉक्स लपेटता हूँ, जिसे फ़ायरफ़ॉक्स कहा जाता है:
FOX_PROFILE = फेसबुक
निर्यात LOGNAME = त्रुटी। $ FOX_PROFILE
/ ऑप्ट / फ़ायरफ़ॉक्स / फ़ायरफ़ॉक्स -प्रायोज्य ~ / .mozilla_profiles / $ FOX_PROFILES "$"
जब पहली बार दौड़ा, तो यह एक नया उदाहरण शुरू करता है और ~ / .mozilla_profiles / facebook निर्देशिका मौजूद है,
जब दूसरी बार फेसबुक प्रोफाइल पहले से चल रहा हो तो इसे सही तरीके से कनेक्ट करने पर,
यह कई अलग-अलग रनिंग प्रोफाइलों को सही तरीके से कमांड भेज सकता है (बेशक आपको अलग-अलग स्क्रिप्ट में पहली पंक्ति में FOX_PROFILE पैरामीटर बदलना होगा)।
मैंने लिनक्स पर फ़ायरफ़ॉक्स 26 के साथ इसका परीक्षण किया और यह काम करता है।
वैकल्पिक रूप से, यहां मेरा पूर्ण समाधान है जो आप उपयोग करना चाहते हैं या नहीं कर सकते हैं:
#! / Bin / bash
सेट
फॉक्स = / opt / फ़ायरफ़ॉक्स / फ़ायरफ़ॉक्स
संदेश = $ @
अगर [-z "$ FOX_PROFILE"]; फिर
अगर [-z "$ {MESSAGE}"]; फिर
FOX_PROFILE = डिफ़ॉल्ट
अन्य
FOX_PROFILE = $ (kdialog --default default --menu "- $ {MESSAGE} -" डिफ़ॉल्ट डिफ़ॉल्ट google google facebook facebook गलती से स्पैम स्पैम को गलत करता है)
फाई
फाई
निर्यात FOX_PROFILE
# इस हैक की जरूरत है, क्योंकि फायरफॉक्स रिमोट कमांड लाइन भेज रहा है
# प्रोफाइल पैरामीटर को नजरअंदाज करता है। NsAppRunner.cpp: 1505 देखें।
निर्यात LOGNAME = त्रुटी। $ FOX_PROFILE
# निष्पादन के बजाय पृष्ठभूमि निष्पादन का उपयोग करना, इसलिए व्यवहार है
# संगत जब प्रोफ़ाइल पहले से चल रही हो और जब वह बस हो
# आरंभ करना।
$ FOX -profile ~ / .mozilla_profiles / $ FOX_PROFILE "$ @"
# बड़ी सफलता।
बाहर निकलें 0
यदि आप स्क्रिप्ट को बिना किसी पैरामीटर के चलाते हैं, तो यह डिफ़ॉल्ट प्रोफ़ाइल को निरूपित करता है, लेकिन आप अपने शेल में हाथ से FOX_PROFILE को सेट करके इसे ओवरराइड कर सकते हैं। यदि कोई URL कमांड लाइन में पास हो जाता है, तो यह हमेशा एक प्रोफ़ाइल के लिए पूछता है जिसमें इसे खोलना है, यह इसलिए है क्योंकि मैं मुख्य रूप से अपने चैट और ईमेल प्रोग्राम से क्लिक करता हूं और उन मामलों में मैं हमेशा एक प्रोफ़ाइल (कैलेंडर के लिए Google) का चयन करना चाहता हूं स्पैम, जन्मदिन स्पैम के लिए फेसबुक, आदि)। बेशक आप अपनी उपयोग की शैली को फिट करने के लिए तर्क को बदल सकते हैं, यह सिर्फ एक उदाहरण है, महत्वपूर्ण ज्ञान LOGNAME चाल है।
और निश्चित रूप से आपको यह सुनिश्चित करना होगा कि यह आवरण स्क्रिप्ट आपकी मशीन पर ब्राउज़र को शुरू करने का एकमात्र तरीका है। क्योंकि यदि आप सही LOGNAME सेट के बिना एक प्रोफ़ाइल खोलते हैं, तो इससे आप उस प्रोफ़ाइल पर संचार नहीं कर पाएंगे। मैंने इस स्क्रिप्ट को एक्स-www-ब्राउज़र, फ़ायरफ़ॉक्स, समझदार-ब्राउज़र जैसे कई सममित नामों के माध्यम से पहले पथ पर रखा और इसे BROWSER पर्यावरण चर में भी डाल दिया। यह कैसे करना है यह आपके GNU / Linux वितरण पर निर्भर करता है।