কীভাবে এমন একটি স্ট্যাটাস আইকন প্রোগ্রাম করবেন যা উবুন্টু এবং অন্যান্য বিতরণে প্রদর্শিত হবে?


23

প্রশ্নযুক্ত অ্যাপ্লিকেশনটি কিছু ক্রিয়া করে (এখানে নেটওয়ার্ক স্ট্রিমের সাথে অডিও সংযোগ করছে) এবং যদি এই ক্রিয়াগুলি সফল হয় তবে হ্রাস করা হবে। সুতরাং সংযোগের স্থিতি প্রদর্শন করার জন্য একটি স্থিতি আইকন প্রয়োজন (যেমন সংযুক্ত / বিচ্ছিন্ন)। আইকনে ক্লিক করার পরে কেবল অ্যাপ্লিকেশন উইন্ডোটি আরও বিকল্পগুলিতে অ্যাক্সেস দিতে খুলবে।

পাইথন ২.6 এবং পাইজিটিকি ব্যবহার করে আমি gtk_status_icon ব্যবহার করে সুবিধার্থে এটি উপলব্ধি করেছি । আমি ইচ্ছাকৃতভাবে বিভিন্ন উবুন্টু সংস্করণ সহ যতটা সম্ভব বিতরণ চালানোর জন্য অ্যাপ্লিকেশনটি লিখেছিলাম। ব্যবহারকারীরা ইনস্টল করার পরেই আমি সম্ভাব্য নির্ভরতাগুলি ব্যবহার করার জন্য যত্ন নিয়েছিলাম।

তবে এখন আমি শুনেছি gtk_status_icon আর ভবিষ্যতে উবুন্টু প্রকাশে সমর্থিত হবে না। পরিবর্তে বিকাশকারীদের অ্যাপ্লিকেশন সূচকগুলি ব্যবহার করতে বলা হয়। এটি নিশ্চিত করার জন্য সর্বোত্তম অনুশীলন কী:

  1. অ্যাপ্লিকেশনটির স্থানীয় আইকনগুলি সঠিকভাবে প্রদর্শিত হয়
  2. অ্যাপ্লিকেশনটি চালানো হবে এবং ভবিষ্যতের উবুন্টু প্রকাশে এটির আইকন প্রদর্শন করবে display
  3. আবেদন করতে হবে এছাড়াও চালানো এবং অন্যান্য পরিবেশের যেখানে এটা আইকন প্রদর্শন সূচকটি-অ্যাপলেট , libappindicator , এবং পাইথন-appindicator প্রদান করা হয় না।

সূচক-অ্যাপলেট চলমান না থাকলে gtk_status_icon এ প্রয়োগ সূচক ফালব্যাক পদ্ধতিগুলি কাজ করবে না । যদি আমদানি করার জন্য কোনও অ্যাপিনডিকেটর মডিউল না থাকে তবে পাইথন দোভাষী অনুবাদকর্মী চলবে না । আমার কি বিভিন্ন বিতরণের জন্য বিভিন্ন সংস্করণ বিকাশ করা দরকার বা এর কাছাকাছি আসার আরও ভাল উপায় আছে।

উবুন্টু উইকির দেওয়া উদাহরণ ব্যতীত অ্যাপ্লিকেশন ইন্ডিকেটেক্টরটি কীভাবে ব্যবহার করতে হয় সে সম্পর্কে ডকুমেন্টেশন কোথায় পাব ? উবুন্টু বনাম অ-উবুন্টু বিতরণের জন্য বিভিন্ন উত্স কোডের প্রোগ্রামিং এড়াতে সূচক-অ্যাপলেট চলছে কিনা তা পরীক্ষা করার জন্য কোন আদেশ দেওয়া হয়?

উত্তর:


16

আমি মনে করি যে এখানে প্রয়োজনীয়তাটি পাইথন-অ্যাপিন্ডিকেটর লাইব্রেরির উপস্থিতির আরও নির্ধারিত। যদি এটি উপস্থিত থাকে তবে এটি আপনার প্রয়োজনীয় ফ্যালব্যাকের সমস্ত ক্ষেত্রে সমর্থন করবে। এটি XFCE, কেডিএ এবং পুরানো জিনোম যথাযথভাবে পরিচালনা করবে। এই উত্তরে এটি কীভাবে করা যায় তার ভাল উদাহরণ

অ্যাপ্লিকেশন নির্দেশক গ্রন্থাগারটি অ্যাপ্লিকেশন সূচক রেন্ডারিং প্রক্রিয়া উপলব্ধ কিনা তা পরীক্ষা করতে ডিবিাস ব্যবহার করবে। এটি ইউনিটির ক্ষেত্রে হবে বা সূচক-অ্যাপলেট চলমান থাকলে। এটি উপলভ্য থাকলে এটি ব্যবহার করবে, যদি না হয় তবে এটি একই মেনুতে একটি GtkStatusIcon ব্যবহার করতে ফ্যালব্যাক করবে।

দুর্ভাগ্যক্রমে, আমি বিশ্বাস করি যে আপনি যদি লাইব্রেরিটি উপলভ্য না হওয়ায় কেস পরিচালনা করতে চান তবে আপনাকে উভয় কোড পাথ রাখতে হবে। যদিও, আমরা অন্যান্য ডিস্ট্রোগুলিতে লাইব্রেরিটি পেতে সহায়তা করতে পেরে আনন্দিত করব :)


এই খুব সুস্পষ্ট উত্তরের জন্য আপনাকে ধন্যবাদ। 11.04-এ আমার অ্যাপটি চলতে চাইলে এই পথে যেতে হবে। আমার কাছে GtkStatusIcon- র কাজ করার পথ রয়েছে তবে সূচক-অ্যাপলেটটির জন্য পুরো জিনিসটি আবার বিকাশ করতে হবে। আমি যদি আপনার মন্তব্য # 668375 তে বুঝতে পেরেছি তবে আমি একটি সম্পূর্ণ আইকন থিম তৈরি না করেই সম্ভবত আমার স্থানীয় আইকনগুলি ব্যবহার করতে পারি, আমি কি পারি?
তাকত

অ্যাপিন্ডিসেটর প্রোগ্রামিংয়ে ডুব দেওয়ার সময় পেয়েছি আমি জানতে পেরেছিলাম যে অ্যাপিগ্যান্ডিকেটর মডিউলটি পরীক্ষা করার জন্য জোগোগুইনের পরামর্শ ব্যবহার করা আসলেই সহায়ক হয় না, কারণ কাস্টম আইকনগুলি 10.04 এলটিএসে রেন্ডার করবে না। # 668375 বাগে আমার মন্তব্যগুলি দেখুন।
তাকাট

আমার উত্তরটিতে এই সমস্যাটি সমাধানের খুব সহজ উপায় অন্তর্ভুক্ত। এটি আমার অ্যাপ্লিকেশনটির জন্য খুব ভালভাবে কাজ করেছে এবং উইন্ডোজটিতে অ্যাপ্লিকেশনিক ব্যবহারকারী অ্যাপ্লিকেশনটিকে পোর্ট করা এমনকি বেদনাহীন করেছে!
নাথান ওসমান

10

আমার একটি দুর্দান্ত সমাধান রয়েছে যা স্ট্যাকএপলেটটিতে ভালভাবে কাজ করেছে - আমি মডিউলটির একটি কার্যত সমতুল্য সংস্করণ তৈরি করেছি যা আসল মডিউলটির অস্তিত্ব না থাকায় অভিন্ন বৈশিষ্ট্য সরবরাহ করতে অভ্যন্তরীণভাবে appindicatorব্যবহার gtk.StatusIconকরে।

এটি ব্যবহার করা যেমন সহজ:

  1. নিম্নলিখিত ফাইলটি ডাউনলোড করে কল করুনappindicator_replacement.py
  2. আপনার আবেদনে নিম্নলিখিতগুলি যুক্ত করা হচ্ছে:

    try:
        import appindicator
    except ImportError:
        import appindicator_replacement as appindicator

এটাই! এখন আপনার অ্যাপ্লিকেশন AppIndicators জন্য বা সমর্থন ছাড়াই নিখুঁতভাবে চলবে। এটি এমনকি উইন্ডোয় চলবে, ধরে নিয়েই আপনার অন্য কোনও প্ল্যাটফর্ম-নির্দিষ্ট কোড নেই।


দ্রষ্টব্য: ফাইলটি এমআইটি লাইসেন্সের আওতায় প্রকাশিত হয়েছে - যাতে আপনি এটি কোনও কিছুর জন্য বেশ ব্যবহার করতে পারেন।


9

আপনার উভয়ের জন্য কোড লিখতে হবে। এরকম কিছু ব্যবহার করে আপনি পাইথন কোডে অ্যাপিনডিকেটর উপস্থিতি সনাক্ত করতে পারেন:

have_appindicator = True
try:
    import appindicator
except:
    have_appindicator = False

সেখান থেকে, আপনাকে অ্যাপিনডিকেটর কোড বা gtk_status_icon কোড ব্যবহার করা উচিত কিনা তা সিদ্ধান্ত নিতে have_appindicator ব্যবহার করুন।

দুর্ভাগ্যক্রমে, এর অর্থ এইও হয় যে পরীক্ষার জন্য আপনার উবুন্টু এবং অন্য একটি পরিবেশ দরকার।


1
তবুও, এমন পরিবেশ থাকতে পারে যেখানে পাইথন-অ্যাপিন্ডিকেটর ইনস্টল করা আছে তবে সূচক অ্যাপলেট চলছে না। অ্যাপ্লিকেশনটির এটিও পরিচালনা করা দরকার।
তাক্কাট

সেক্ষেত্রে উইকি.উবুন্টু / ডেস্কটপএক্স্পেরিয়েন্সটিম / অ্যাপ্লিকেশন ইন্ডিকেটর > কাস্টম ফলব্যাকস দেখুন । ডিফল্ট হিসাবে, কোনও সূচক অ্যাপলেট উপস্থিত না থাকলে আপনি অ্যাপ্লিকেশন সূচকটির জন্য একটি gtk.StatusIcon পাবেন।
htorque

ফ্যালব্যাক বিকল্পটি সম্পর্কে আমি সচেতন। আমি যা বুঝতে পারি না তা হ'ল, যদি সূচক-অ্যাপলেট চলমান না হয় তবে কীভাবে সূচক-অ্যাপলেট একটি ফলব্যাক সরবরাহ করতে পারে?
তাকত

আমি কল্পনা করি যে এটি কেবল সূচক-অ্যাপলেট পরীক্ষা করে এবং পর্দার আড়ালে gtk_status_icon কার্যকারিতা সরবরাহ করে।
jgoguen

1
@ জাগোগুয়েন: "এটি" কী? আমি বুঝতে পারি যে ১১.০৪ থেকে উবুন্টু / ityক্য gtk_status_icon আর সমর্থন করবে না । অন্যান্য বিতরণে "এটি" নাও থাকতে পারে। আমি সত্যিই এই সম্পর্কে উদ্বিগ্ন।
তাকত

3
for line in os.popen("ps xa"): 
fields = line.split() 
pid = fields[0] 
process = fields[4]

applet_is_running = ( process.find('indicator-applet') > 0 )

সূচক অ্যাপলেট চলমান আছে কিনা তা আপনি সনাক্ত করতে পারেন। আপনাকে উবুন্টু ১১.০৪ সম্পর্কে চিন্তা করার দরকার নেই কারণ এটি হবে না। কোনও ফলব্যাক পরিস্থিতি নেই কারণ সূচক-অ্যাপলেট একটি বাধ্যতামূলক উপাদান, ডিফল্টরূপে চলমান।


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

আমি আপনার সাথে একমত যে এটি 'মার্জিত' নাও হতে পারে (তবে আপনি যে সমস্ত প্রসাধনী চান তা যোগ করতে পারেন: ডি) তবে এটি কার্যকর হওয়া উচিত। ব্যক্তিগতভাবে আমি সমাধানগুলি পছন্দ করি যা ভালভাবে কাজ করে এবং কমনীয়তা দ্বিতীয় আসে :)
ওপেননিঙ্গিয়া

এই কাজটি আমার 14.04 সিস্টেমে চলছে বলে মনে হচ্ছে না। পদ্ধতির সুপারসাইড করা হয়েছে? /usr/lib/x86_64-linux-gnu/indicator-messages/indicator-messages-serviceপরিবর্তে অনেকগুলি কাজ রয়েছে।
অর্ধেক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.