Gconf के साथ URL प्रोटोकॉल हैंडलर को पंजीकृत करने का एक तरीका था, जो अब अप्रचलित है और DConf (या Gsettings, इसके अनुशंसित आवरण) के साथ ऐसा करने का कोई तरीका नहीं है।
DConf के बाद से कोई URL प्रोटोकॉल हैंडलर को कैसे ठीक से पंजीकृत कर सकता है?
इसके अतिरिक्त, कुछ मेरे लिए अजीब लगता है (जैसा कि मुझे समझ में नहीं आता है), मेरे Ubuntu 12.04 पर
प्रोटोकॉल apt://को apturlकमांड द्वारा नियंत्रित किया जाना चाहिए । यह मेरे ओपेरा ब्राउज़र के साथ ऐसा है, लेकिन केवल इसलिए कि मैंने ब्राउज़र की कॉन्फ़िगरेशन सुविधा का उपयोग करके इस विशिष्ट एसोसिएशन को जोड़ा है। अन्यथा, बाकी वातावरण में:
- रनिंग
xdg-open apt://foo.barओपनelinks(मेराwww-browserविकल्प)। - रनिंग
gnome-open apt://foo.barसॉफ्टवेयर सेंटर खोलता है। - खोलना
gconf-editor, मुझे एक कुंजी दिखाई देती है/desktop/gnome/url-handlers/aptजिसका मूल्य हैapturl "%s"और यह सक्षम है। इस विन्यास को नजरअंदाज किया गया है, जिसकी यथोचित अपेक्षा है, क्योंकि GConf अप्रचलित माना जाता है। - खुलने पर
dconf-editor, मैं URL हैंडलर या प्रोटोकॉल से संबंधित कुछ भी नहीं देख सकता/desktop/gnome
यह मेरी आँखों को थोड़ा गन्दा लगता है (सिर्फ इस शब्द के साथ चिढ़ना, कुछ बुरा नहीं है)
नीचे क्या है?
साइड नोट: मैं ऐसी चीज की तलाश कर रहा हूं जो अधिमानतः काम करता है जब पूर्ण डेस्कटॉप वातावरण लोड नहीं होता है, जैसे कि केवल i3wm सत्र चलाने के साथ gsettings-daemon(और इस मामले से संबंधित अन्य सामान) लोड किया गया।
अपडेट करें
एक प्रोटोकॉल हैंडलर को "रजिस्टर" करने का दूसरा तरीका *.desktopफाइलों और उनके MIME- प्रकार के साथ है; उदा MimeType=application/<the-protocol>;।
मुझे /usr/share/applications/ubuntu-software-center.desktopइस सामग्री के साथ मिला :
[Desktop Entry]
Name=Ubuntu Software Center
GenericName=Software Center
Comment=Lets you choose from thousands of applications available for Ubuntu
Exec=/usr/bin/software-center %u
Icon=softwarecenter
Terminal=false
Type=Application
Categories=PackageManager;GTK;System;Settings;
MimeType=application/x-deb;application/x-debian-package;x-scheme-handler/apt;
StartupNotify=true
X-Ubuntu-Gettext-Domain=software-center
Keywords=Sources;PPA;Install;Uninstall;Remove;Purchase;Catalogue;Store;
यह बताता है कि gnome-open apt://foo.barइसके बजाय सॉफ़्टवेयर केंद्र क्यों खोला जाता है apturl।
इसलिए मैंने इसे इसमें स्थापित apturl.desktopकिया ~/.local/share/applications:
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Terminal=false
Exec=/usr/bin/apturl %u
Name=APT‑URL
Comment=APT‑URL handler
Icon=
Categories=Application;Network;
MimeType=x-scheme-handler/apt;
बाद update-desktop-databaseऔर रिबूट करने के बाद भी दोनों xdg-openऔर gnome-openअब भी वही करते हैं और इस प्रयोक्ता डेस्कटॉप फ़ाइल है, जो उपयोगकर्ता डेस्कटॉप फाइलों के साथ हमेशा की तरह, में एक ओवरराइड करना चाहिए पर ध्यान न दें /usr/share/applications/।
शायद x-scheme-handlerMIME प्रकार को निर्दिष्ट करने वाली डेस्कटॉप फ़ाइलों के साथ कुछ विशेष है और उन्हें सामान्य तरीके से नियंत्रित नहीं किया जाता है।
डेस्कटॉप ‑ फ़ाइल तरीका प्रश्न का उत्तर नहीं देता है।