मैं एक नया xdg- ओपन सेटिंग कैसे सेट करूँ?


28

मैं लिंक xdg-openखोलने के लिए उपयोग करना चाहता हूं irc://, मैं आवश्यक पैरामीटर कैसे बना सकता हूं?



आप इस प्रश्न से सहायता प्राप्त कर सकते हैं कि "मैं क्रोमियम से पिजिन में लिंक कैसे खोल सकता हूं: //?"
खुर्शीद आलम

जवाबों:


17

xdg-open मूल रूप से सिर्फ यह देखने के लिए दिखता है कि आपके पास कौन सा डेस्कटॉप वातावरण है और फिर gnome-open, gvfs-open, xfce-open इत्यादि चलाता है, डेस्कटॉप वातावरण के लिए नीचे देखें विशिष्ट निर्देश ...

सूक्ति

सूक्ति सूक्ति-खुले कार्यक्रम का उपयोग करता है जो सब कुछ संग्रहीत करने के लिए gconf का उपयोग करता है। उदाहरण के लिए, उबंटू 10.10 रनिंग ग्नोम-ओपन irc के साथ मेरी मशीन पर: // blah xchat को खोलता है क्योंकि xchat में irc: // हैंडलर जोड़ने के लिए एक gconf सेटिंग पैच शामिल होता है।

gconf- संपादक जो xchat विन्यास के साथ irc दिखा रहा है

इससे पता चलता है कि gnome ऐसा कैसे करता है, जिसमें एक gconf सेटिंग होती है /desktop/gnome/url-handlers/xchat-2.8.8/src/common/dbus/apps_xchat_url_handler.schemasएक उदाहरण के रूप में देखें ।

केडीई

KDE के लिए आपको .protocol फ़ाइलों को / usr / share / kde4 / सेवाओं / में देखना चाहिए, अपने नए प्रोटोकॉल के लिए एक नया बनाएं और इसे ~ / .kde / share / kde4 / सेवाओं / में रखें, यदि यह सुपर उपयोगी है। पैकेज में इसे अन्य उपयोगकर्ताओं के लिए फिक्स के रूप में जोड़ने पर विचार करें।

KDE kde-open या kfmclient का उपयोग कर रहा है जो उपलब्ध है और आपके पास KDE के किस संस्करण पर निर्भर करता है।

XFCE

एक्सएफसीई एक्सो-ओपन नामक एक कार्यक्रम का उपयोग करता है, इस कार्यक्रम में इसे कॉन्फ़िगर करने या उरी हैंडलर जोड़ने का कोई तरीका नहीं है। स्रोत कोड से पता चलता है कि केवल तीन प्रकार के कार्यक्रमों को निर्दिष्ट करने के लिए डेस्कटॉप फ़ाइलों का उपयोग किया जाता है। TerminalEmulator, WebBrowser और EmailClient।

XFCE4 (और शायद दूसरों के साथ) के साथ कस्टम प्रोटोकॉल हैंडलर को परिभाषित करने के लिए xdg-open को कॉन्फ़िगर करना संभव है। कुछ में आपको निम्नलिखित फ़ाइलों को बनाना / संपादित करना है:

~ / .लोकल / शेयर / एप्लिकेशन / प्रोटोकॉलहैंडलर.डेसटॉप ~ / .लोकल / शेयर / एप्लिकेशन / मिमिप्प्ली सूची।

एक उदाहरण ed2k प्रोटोकॉल के लिए एक हैंडलर जोड़ने stackexchange.com 2 पर प्रदान किया गया है ।


क्या आप उल्लेख कर सकते हैं कि सभी आधिकारिक डीई के लिए यह कैसे करना है?
ऑक्सीविवि

बिल्कुल सवाल से संबंधित नहीं है, लेकिन क्या आप स्क्रीन शॉट के नीचे पूरी निर्देशिका में उद्धरण कर सकते हैं? धन्यवाद।
13

4
xdg-open मूल रूप से सिर्फ यह देखने के लिए दिखता है कि आपके पास कौन सा डेस्कटॉप वातावरण है और फिर gnome-open, gvfs-open, xfce-open, आदि --- चलाता है --- मुझे ऐसा नहीं लगता। पहला, मैनपेज यह नहीं कहता है, और दूसरा, xdg- ओपन डेस्कटॉप वातावरण के बिना पूरी तरह से काम करता है। उदाहरण के लिए मैं इसे i3 विंडो मैनेजर के साथ उपयोग करता हूं।
एलोइस महदल

क्या ऐप की स्थापना के दौरान नए url / ऐप एसोसिएशन बनाने का एक सामान्य तरीका है?
ज्यारजो

14

मैं इसका वर्णन magnet:URI टाइप और ट्रांसमिशन (यानी बिटकॉइन के मामले) के साथ करूंगा , लेकिन यही तरीका किसी भी स्कीम या फाइल टाइप पर भी लागू किया जा सकता है।

इसके अलावा, मैंने डेबियन जेसी के साथ इसकी जांच की, और मेरे पास वास्तव में उबंटू मशीन नहीं है, लेकिन मेरा मानना ​​है कि इसे समान काम करना चाहिए (कम से कम xdg-open के लिए , ध्यान दें कि फ़ाइल प्रबंधक अलग-अलग तर्क का उपयोग करने का विकल्प चुन सकते हैं)।

  1. MIME टाइप स्ट्रिंग का पता लगाएं। फ़ाइल MIME प्रकारों के लिए, आप इसे फ़ाइल आदेश के साथ पा सकते हैं :

    $ file -i Broken_Blossoms.webm 
    Broken_Blossoms.webm: video/webm; charset=binary
    $
    

    उपरोक्त फ़ाइल के लिए, MIME प्रकार है video/webm

    URI संचालकों के लिए, प्रकार है x-scheme-handler/<scheme>, जहां <scheme>बृहदान्त्र से पहले URI का हिस्सा है, जैसे "http", "mailto" "irc" या "चुंबक"। मान्य MIME प्रकारों के उदाहरण निम्नलिखित हैं:

    x-scheme-handler/http
    x-scheme-handler/irc
    x-scheme-handler/magnet
    x-scheme-handler/mailto
    
  2. एप्लिकेशन का नाम .desktop फ़ाइल खोजें।

    अक्सर यह "आधिकारिक" नाम के समान नहीं होता है, बल्कि इसका निचला संस्करण या पूरी तरह से अलग नाम होता है। स्थापित .desktop फ़ाइलें / usr / शेयर / एप्लिकेशन के अंतर्गत रहती हैं। चूंकि वे सामान्य पाठ फ़ाइलें हैं और "आधिकारिक" नाम शामिल हैं, निम्नलिखित आदेश आपकी सहायता कर सकते हैं:

    $ grep "Transmission" -l -r /usr/share/applications
    /usr/share/applications/transmission-gtk.desktop
    $
    

    कमांड का प्रभावी रूप से अर्थ है "इस निर्देशिका के तहत फाइलें सूचीबद्ध करें जिसमें 'ट्रांसमिशन' शब्द हो।" कुछ एप्लिकेशन केवल उपयोगकर्ता के लिए इंस्टॉल किए जा सकते हैं, उस स्थिति में पथ होगा ~/.local/share/applications

    यदि आपके पास "अजीब" अनुप्रयोग है, जिसमें फ़ाइल बिल्कुल नहीं हो सकती है, तो आप हमेशा एक बना सकते हैं (और शायद इसे ऐप डेवलपर्स के लिए भेज सकते हैं)। आसान तरीका यह होगा कि आप किसी मौजूदा को कॉपी करें, उन क्षेत्रों को फिर से लिखें जिन्हें आप समझते हैं और जिन्हें आप नहीं हटाते हैं। विवरण के लिए विनिर्देश देखें।

  3. Xdg-mime कमांड का उपयोग करके असाइनमेंट बनाएं :

    $ xdg-mime default transmission-gtk.desktop x-scheme-handler/magnet
    $
    

    ध्यान दें कि कोई भी बात नहीं है जहाँ फ़ाइल वास्तव में है (/ usr / share / Applications, ~ / .local / share / Applications ...), आप हमेशा केवल नाम का उपयोग करते हैं , पूर्ण पथ का नहीं।

    आम तौर पर कमांड कुछ भी आउटपुट नहीं करेगा - यह ठीक है। यदि आप यह सत्यापित करना चाहते हैं कि आपने अभी क्या किया है या यह देखें कि वर्तमान में किसी भी MIME प्रकार को बिना खोले उसे क्या सौंपा गया है:

    $ xdg-mime query default x-scheme-handler/magnet
    transmission-gtk.desktop
    $
    

नोट 1: यदि आप अन्य MIME प्रकारों की जाँच करना चाहते हैं, तो आप /etc/mime.types पर देख सकते हैं। इसमें दुनिया के सभी प्रकार शामिल नहीं हैं; उदाहरण के लिए यूआरआई हैंडलर, लेकिन इसका उपयोग संघों को संभालने के "आक्रामक" रूप के लिए किया जा सकता है। उदाहरण के लिए:

grep ^video/ | cut -d\t -f1 | xargs xdg-mime default vlc.desktop

सभी ज्ञात वीडियो प्रारूपों को VLC से जोड़ देगा।

नोट 2: .desktop फ़ाइलों में अक्सर MIME प्रकारों की सूची होती है जो दावा करते हैं कि वे MimeTypeफ़ील्ड का उपयोग करने में सक्षम हैं । xdg-mime मैन पेज कहता है कि .desktop फ़ाइल को MIME प्रकार का दावा करना चाहिए इससे पहले कि उपर्युक्त कमांड काम करेगी, लेकिन मेरे लिए यह तब भी काम करता है जब फ़ील्ड गायब है। (मेरा मतलब है, एसोसिएशन को लागू किया जाएगा और एप्लिकेशन लॉन्च होगा - अगर यह वास्तव में संभाल सकता है तो प्रकार एक अलग सवाल है)। मुझे यकीन नहीं है कि क्या खामी है (शायद भविष्य में xdg-mime अधिक प्रतिबंधक होगा)।


wiki.archlinux.org/index.php/xdg-open कमोबेश यही देता है। अभी भी वहाँ अच्छा है।
शिरीष

यह उत्तर सबसे अच्छा तरीका है। टिप: 1) xdg-mime query filetype FILEमाइम प्रकार खोजने के लिए XDG तरीका है। 2) चीजों को अधिक व्यवस्थित रखने और बाद में उन्हें वापस करने के लिए आप डिफॉल्ट्स को स्वयं भी संपादित कर सकते हैं: .config/mimeapps.listफाइल है।
सिरो सेंटिल्ली 新疆 改造 iro i 事件 '

2 एडिट किए गए रोल: @frank, यह समझाने के लिए परवाह है कि xdg-mime " कैसे बेहतर काम करता है"? IMO फ़ाइल MIME प्रकारों के लिए ऑटोरेटिव टूल है, xdg-mime query filetype xyz.wbemOTOH कम जानकारी देता है और टाइप करने के लिए अधिक है।
एलोइस महदाल

1
महान व्याख्या और डेस्कटॉप फ़ाइल के एकमात्र नाम का उपयोग करने के लिए टिप वह समाधान था जिसे मैं धन्यवाद के लिए देख रहा था!
एंड्रिया रिचियार्डी

1
इस सलाह ने आखिरकार मुझे हल करने में मदद की, जो कि लिनक्स पर सुस्त डेस्कटॉप ऐप का उपयोग करने में सक्षम नहीं है। स्लैक एक ब्राउज़र पर रीडायरेक्ट करता है, लेकिन फिर ब्राउज़र एक यूआरआई स्कीम का उपयोग करता है ताकि स्लैक को वापस रीडायरेक्ट किया जा सके। आपके सुझावों ने मुझे यह देखने में मदद की कि सुस्त URI xdg-mime मैपिंग चली गई थी। इतनी खुशी मुझे एक घंटे की खोज के बाद मिली! धन्यवाद!
पेस्टोफैगस

2

मैं postmanअपने मैन्युअल रूप से स्थापित पोस्टमैन ऐप (क्रोम एक्सटेंशन नहीं) के साथ लिंक जोड़ना चाहता था, ताकि मैं इसके लिए ब्राउज़र से पोस्टमैन डॉक्स खोल सकूं:

यहाँ छवि विवरण दर्ज करें

यहाँ छवि विवरण दर्ज करें

मैं जिस लिंक को संबद्ध करना चाहता था वह इस प्रकार है:

postman://app/collections/import/39995-2b0394ab-b007-488d-9a0a...

एसोसिएशन करने के लिए मैंने निम्नलिखित कदम उठाए:

  1. एप्लिकेशन को मैन्युअल रूप से इंस्टॉल करें (डाउनलोड करें और एक tar.gz को अनपैक करें) /home/andrzej.rehmann/software/postman/
  2. में एक डेस्कटॉप फ़ाइल बनाएँ /usr/share/applications/Postman.desktop
[Desktop Entry]
Version=1.0
Type=Application
Name=Postman
Icon=/home/andrzej.rehmann/software/postman/app/resources/app/assets/icon.png
Exec="/home/andrzej.rehmann/software/postman/Postman" %u
Comment=Develop with pleasure!
Categories=Development;
Terminal=false
StartupWMClass=Postman
  1. संबद्ध करें postmanचल रहा द्वारा आवेदन के साथ XDG लिंक:

xdg-mime default Postman.desktop x-scheme-handler/postman


अगर किसी को दिलचस्पी है, तो मैंने इस कॉन्फ़िगरेशन को वापस ले लिया है: https://github.com/hoto/ansible-home-fedora/blob/fedora/roles/postman/tasks/postman_installer.yml

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