बुनियादी उबंटू डेस्कटॉप में URL प्रोटोकॉल हैंडलर


16

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 प्रकार को निर्दिष्ट करने वाली डेस्कटॉप फ़ाइलों के साथ कुछ विशेष है और उन्हें सामान्य तरीके से नियंत्रित नहीं किया जाता है।

डेस्कटॉप ‑ फ़ाइल तरीका प्रश्न का उत्तर नहीं देता है।


1
यह मदद कर सकता है: unix.stackexchange.com/a/100736
टॉड ओवेन

जवाबों:


9

~/.local/share/applications/mimeapps.listएक लाइन खोलें और जैसे जोड़ें:

x-scheme-handler/apt=apturl.desktop

हां, मैं इसे HTTP, MAILTO और कुछ अन्य लोगों के लिए समझ सकता हूं।
हिबू

ऐसा कोई फ़ोल्डर नहीं है। मैंने रूट से खोज की, और यह नहीं पाया।
वलास बशेंस्की

@VlasBashynskyi, का स्थान mimeapps.listभिन्न हो सकता है। मैं फ़ाइल नाम की खोज चलाने का सुझाव दूंगा।
Hibou57

4

xdg-mime

शायद अधिक सुरुचिपूर्ण (इस उदाहरण में मैं "उपयुक्त" का उपयोग करता हूं , इसे किसी अन्य योजना के लिए बदल दें):

  1. पंजीकृत MIME- प्रकार की जाँच करें /usr/share/applications/defaults.list
  2. जोड़े apt.desktopफ़ाइल ( यहां कुछ उदाहरण के लिए) ~/.local/share/applications/(उपयोगकर्ता के चौड़ा) या /usr/share/applications/(सिस्टम-वाइड)।
  3. डेस्कटॉप फ़ाइलों द्वारा संभाला गया MIME प्रकारों का कैश डेटाबेस बनाएँ: update-desktop-database
  4. के साथ एक प्रोटोकॉल रजिस्टर करें

    xdg-mime default apt.desktop x-scheme-handler/apt`
    

    यह योजना के लिए नए MIME प्रकार को जोड़ देगा ~/.local/share/applications/mimeapps.list। आप सिस्टम पर सभी उपयोगकर्ताओं के लिए नए माइम-प्रकार को पंजीकृत कर सकते हैं sudo xdg-mime install --mode system <xml file>

के साथ टेस्ट करें xdg-open "apt://foo.bar"

MIME प्रकार जोड़ना भी देखें ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.