আমি কীভাবে এক্সডিজি দিয়ে একটি কাস্টম প্রোটোকল নিবন্ধন করতে পারি?


22

আমি আজ সকালে একটি কাস্টম প্রোটোকল, যথা ইম্যাকস্ক্লিয়েন্ট এবং org- প্রোটোকলের সাথে একটি অ্যাপ্লিকেশনকে সংযুক্ত করার চেষ্টা করছি ।

আমি একটি ওয়েব ব্রাউজার বুকমার্কলেট থেকে এই প্রোটোকলটি কল করছি এবং আমি নিম্নলিখিত আচরণটি পেয়েছি:

ক্রোমিয়ামে,
"লঞ্চ অ্যাপ্লিকেশন" ডায়ালগটি আসে এবং xdg- ওপেন org-প্রোটোকল কল করে: // ... যা একটি নতুন ক্রোমিয়াম ফ্রেম ফায়ারিং শেষ করে।

ফায়ারফক্সে,
আমি নেটওয়ার্ক.প্রোটোকল-হ্যান্ডেল.অ্যাপ.আরোগ.আর.অর্গ-প্রোটোকলকে একটি খালি স্ট্রিং বা আমার ইমেস্ক্লিয়েন্ট পথে সেট করার চেষ্টা করেছি , যেভাবেই আমি নিম্নলিখিত ত্রুটি বার্তাটি পেয়েছি:
"ফায়ারফক্স কীভাবে এই ঠিকানাটি খুলতে জানে না, কারণ প্রোটোকল (org- প্রোটোকল) কোনও বাহ্যিক অ্যাপ্লিকেশন নির্বাচন সংলাপ না দেখিয়েও "কোনও প্রোগ্রামের সাথে সম্পর্কিত নয়"।

আমি কোনও ডেস্কটপ এনভায়রনমেন্ট ব্যবহার করছি না, তাই এক্সডিজির সাহায্যে আমার এই কাজটি কঠোরভাবে করা দরকার, তবে, শেয়ার করা মাইম ইনফেকশন ইত্যাদি পড়া সত্ত্বেও, আমি এখনও একটি কার্যকারী কনফিগারেশন অনুধাবন করতে পারি না।


উত্তর:


18

এক্সডিজি পদ্ধতি: মাইম টাইপ emacsclient.desktopপরিচালনা করে এমন একটি ফাইল তৈরি করুন x-scheme-handler/org-protocol:

[Desktop Entry]
Name=Emacs Client
Exec=emacsclient %u
Icon=emacs-icon
Type=Application
Terminal=false
MimeType=x-scheme-handler/org-protocol;

( MimeType=উপরের রেখাটি নোট করুন , যা org-protocol:ইউআরআইয়ের জন্য ))

ফাইলটি এতে ~/.local/share/applicationsবা রাখুন /usr/local/share/applications

আপনাকে ফাইলটি খুলতে হবে ~/.local/share/applications/mimeapps.listএবং এর মতো একটি লাইন যুক্ত করতে হবে :

x-scheme-handler/org-protocol=emacsclient.desktop

এটি [Default Applications]বিভাগের অধীনে যুক্ত করুন ।


এটি এখনও আমার জন্য একটি ক্রোম উইন্ডো খোলে; আর কিছু? (আমি মূল হিসাবে লেখকের অনুরূপ ফ্লাক্সবক্স ডাব্লু / আউটপুট ডেস্কটপ ব্যবহার করে যাচ্ছি)
এসেম্বল করুন

8
আপনি এর মাধ্যমে সর্বশেষ পদক্ষেপটিও অর্জন করতে পারেন xdg-mime default emacsclient.desktop x-scheme-handler/org-protocolযা সম্ভবত এটি করার আরও বেশি সরকারী উপায়।
অ্যাডাম স্পায়ার্স

এর বাইরে কি অন্য কোন কার্যকর ভেরিয়েবল রয়েছে %u? উদাহরণস্বরূপ একটি পরিবর্তনশীল যা কেবলমাত্র ইউআরআই এর ডোমেন বা পথের অংশটি প্রকাশ করে?
জোনাথন নিউফিল্ড

11

@ গ্রাভিটি প্রায় সঠিক, তবে তিনি দুটি বিবরণ উপেক্ষা করেছেন:

  1. .desktopফাইলটি ইনস্টল করার পরে আপনাকে ম্যানুয়ালি চালানোর দরকার হতে পারে sudo update-desktop-database। (আপনি যদি .desktopফাইলটি ব্যবহার করে ইনস্টল করেন এটি আপনার জন্য করা যেতে পারে xdg-desktop-menu install emacsclient.desktop)

    "এই প্রোটোকলটি কী হ্যান্ডেল করা উচিত?" প্রদর্শন করার জন্য আমার ফায়ারফক্সের প্রয়োজন ছিল এটিই? কেবল একটি ত্রুটি পৃষ্ঠা প্রদর্শন করার চেয়ে ডায়ালগ।

  2. এই প্রশ্নটি জিজ্ঞাসা করার সময়, একটি বাগ রয়েছে xdg-openযার ফলে URL টি অন্ধভাবে $BROWSER"জেনেরিক" (নন-কেডি, নন-জিনোম, নন-এক্সফেস, ইত্যাদি) ডেস্কটপগুলিতে হস্তান্তরিত করেছিল এবং এটি ঠিক আচরণটি তৈরি করে @ জুলিয়ান অভিজ্ঞতা ছিল।

    এটি এক্সডিজি-ওপেনের আধুনিক সংস্করণগুলিতে সংশোধন করা উচিত তবে আপনার ডেস্কটপ যদি কোনও কারণে আধুনিক সংস্করণ ব্যবহার না করে তবে সমস্যাটি সমাধানের জন্য এখানে এক্সডিজি-ওপেন আইয়ের ড্রপ /usr/local/bin


1
এক্সডিজি-ওপেন আপডেট করা আমার পক্ষে কাজ করেছে, ধন্যবাদ!
জর্জ মার্কস

0

কমপক্ষে ফেডোরা 13 এবং বিভিন্ন ডেবিয়ান-ভিত্তিক ডিস্ট্রোস এক্সডিজি-ওপেন ব্রাউজারে ফাইল: // স্কিম নেই এমন সমস্ত URL খুলবে যদি এটি কোনও সমর্থিত ডেস্কটপ পরিবেশে না চালায়। কোন ব্রাউজারটি ব্যবহার করতে হবে তা সনাক্ত করার চেষ্টাটি বিতরণের উপর নির্ভর করে।

হিসাবে XDG খুলুন মাত্র একটি শেল স্ক্রিপ্ট হয় আপনি সহজেই আপনার চাহিদা এটা অভিযোজিত করতে পারে।


প্রকৃতপক্ষে, তবে এটি এক্সডিজি-ওপেন এবং এক্সডিজি-মাইমের মধ্যে প্রয়োজনীয় কনফিগারেশন যা ডকসগুলি পড়েও আমার কাছে অত্যন্ত অস্বচ্ছ ...
জুলিয়েন

যদি কোনও ফাইল খোলার সময় থাকে: // ইউআরআই উবুন্টু একেবারে xdg-mime কল করে না তবে কোনও সমর্থিত ডি এর অধীনে না চললে রান-মেলক্যাপ ব্যবহার করে, ফেডোরা 13 প্রথমে এক্সডিজি-মাইম ব্যবহার করে ডিফল্ট অ্যাপটি সন্ধান করার চেষ্টা করে এবং যদি তা না হয় কাজ ফিরে মাইমোপেন। xdg-mime ভাগ করা MIME তথ্য ডাটাবেস freedesktop.org/wiki/Software/shared-mime-info
ফ্লোরিয়ান ডিয়েচ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.