मैं लिंक xdg-open
खोलने के लिए उपयोग करना चाहता हूं irc://
, मैं आवश्यक पैरामीटर कैसे बना सकता हूं?
मैं लिंक xdg-open
खोलने के लिए उपयोग करना चाहता हूं irc://
, मैं आवश्यक पैरामीटर कैसे बना सकता हूं?
जवाबों:
xdg-open मूल रूप से सिर्फ यह देखने के लिए दिखता है कि आपके पास कौन सा डेस्कटॉप वातावरण है और फिर gnome-open, gvfs-open, xfce-open इत्यादि चलाता है, डेस्कटॉप वातावरण के लिए नीचे देखें विशिष्ट निर्देश ...
सूक्ति सूक्ति-खुले कार्यक्रम का उपयोग करता है जो सब कुछ संग्रहीत करने के लिए gconf का उपयोग करता है। उदाहरण के लिए, उबंटू 10.10 रनिंग ग्नोम-ओपन irc के साथ मेरी मशीन पर: // blah xchat को खोलता है क्योंकि xchat में irc: // हैंडलर जोड़ने के लिए एक gconf सेटिंग पैच शामिल होता है।
इससे पता चलता है कि 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 के किस संस्करण पर निर्भर करता है।
एक्सएफसीई एक्सो-ओपन नामक एक कार्यक्रम का उपयोग करता है, इस कार्यक्रम में इसे कॉन्फ़िगर करने या उरी हैंडलर जोड़ने का कोई तरीका नहीं है। स्रोत कोड से पता चलता है कि केवल तीन प्रकार के कार्यक्रमों को निर्दिष्ट करने के लिए डेस्कटॉप फ़ाइलों का उपयोग किया जाता है। TerminalEmulator, WebBrowser और EmailClient।
XFCE4 (और शायद दूसरों के साथ) के साथ कस्टम प्रोटोकॉल हैंडलर को परिभाषित करने के लिए xdg-open को कॉन्फ़िगर करना संभव है। कुछ में आपको निम्नलिखित फ़ाइलों को बनाना / संपादित करना है:
~ / .लोकल / शेयर / एप्लिकेशन / प्रोटोकॉलहैंडलर.डेसटॉप ~ / .लोकल / शेयर / एप्लिकेशन / मिमिप्प्ली सूची।
एक उदाहरण ed2k प्रोटोकॉल के लिए एक हैंडलर जोड़ने stackexchange.com 2 पर प्रदान किया गया है ।
मैं इसका वर्णन magnet:
URI टाइप और ट्रांसमिशन (यानी बिटकॉइन के मामले) के साथ करूंगा , लेकिन यही तरीका किसी भी स्कीम या फाइल टाइप पर भी लागू किया जा सकता है।
इसके अलावा, मैंने डेबियन जेसी के साथ इसकी जांच की, और मेरे पास वास्तव में उबंटू मशीन नहीं है, लेकिन मेरा मानना है कि इसे समान काम करना चाहिए (कम से कम xdg-open के लिए , ध्यान दें कि फ़ाइल प्रबंधक अलग-अलग तर्क का उपयोग करने का विकल्प चुन सकते हैं)।
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
एप्लिकेशन का नाम .desktop फ़ाइल खोजें।
अक्सर यह "आधिकारिक" नाम के समान नहीं होता है, बल्कि इसका निचला संस्करण या पूरी तरह से अलग नाम होता है। स्थापित .desktop फ़ाइलें / usr / शेयर / एप्लिकेशन के अंतर्गत रहती हैं। चूंकि वे सामान्य पाठ फ़ाइलें हैं और "आधिकारिक" नाम शामिल हैं, निम्नलिखित आदेश आपकी सहायता कर सकते हैं:
$ grep "Transmission" -l -r /usr/share/applications /usr/share/applications/transmission-gtk.desktop $
कमांड का प्रभावी रूप से अर्थ है "इस निर्देशिका के तहत फाइलें सूचीबद्ध करें जिसमें 'ट्रांसमिशन' शब्द हो।" कुछ एप्लिकेशन केवल उपयोगकर्ता के लिए इंस्टॉल किए जा सकते हैं, उस स्थिति में पथ होगा
~/.local/share/applications
।
यदि आपके पास "अजीब" अनुप्रयोग है, जिसमें फ़ाइल बिल्कुल नहीं हो सकती है, तो आप हमेशा एक बना सकते हैं (और शायद इसे ऐप डेवलपर्स के लिए भेज सकते हैं)। आसान तरीका यह होगा कि आप किसी मौजूदा को कॉपी करें, उन क्षेत्रों को फिर से लिखें जिन्हें आप समझते हैं और जिन्हें आप नहीं हटाते हैं। विवरण के लिए विनिर्देश देखें।
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 अधिक प्रतिबंधक होगा)।
xdg-mime query filetype FILE
माइम प्रकार खोजने के लिए XDG तरीका है। 2) चीजों को अधिक व्यवस्थित रखने और बाद में उन्हें वापस करने के लिए आप डिफॉल्ट्स को स्वयं भी संपादित कर सकते हैं: .config/mimeapps.list
फाइल है।
xdg-mime query filetype xyz.wbem
OTOH कम जानकारी देता है और टाइप करने के लिए अधिक है।
मैं postman
अपने मैन्युअल रूप से स्थापित पोस्टमैन ऐप (क्रोम एक्सटेंशन नहीं) के साथ लिंक जोड़ना चाहता था, ताकि मैं इसके लिए ब्राउज़र से पोस्टमैन डॉक्स खोल सकूं:
मैं जिस लिंक को संबद्ध करना चाहता था वह इस प्रकार है:
postman://app/collections/import/39995-2b0394ab-b007-488d-9a0a...
एसोसिएशन करने के लिए मैंने निम्नलिखित कदम उठाए:
/home/andrzej.rehmann/software/postman/
/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
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