কারণ
লঞ্চার থেকে ডিভাইসগুলি সরানো ( gsettings
) কীতে ডিভাইসটিকে কালো তালিকাভুক্ত করবে
com.canonical.Unity.Devices blacklist
তবে, ডিভাইসটি যদি সরানো হয় (কোনওভাবে সংযোগ বিচ্ছিন্ন করা হয়), তবে ডিভাইসটি কালো তালিকা থেকেও সরানো হবে। পরের বার আপনি ডিভাইসটি সংযুক্ত করলে গল্পটি আবার শুরু হয়।
সমাধান
নীচের সমাধানটি একটি ফাইলে কালো তালিকাভুক্ত ডিভাইসগুলি সংরক্ষণ করবে। এগুলি একবারে সরানোর পরে , ডিভাইসটি আর কখনও লঞ্চারে প্রদর্শিত হবে না। আপনি যদি কোনও ডিভাইস সংযোগ বিচ্ছিন্ন করেন তবে স্ক্রিপ্টটি অবিলম্বে (পুনরায়) ডিভাইসটিকে কালো তালিকাভুক্ত হিসাবে যুক্ত করবে।
#!/usr/bin/env python3
import subprocess
import time
import os
key = "com.canonical.Unity.Devices"
bl_file = os.environ["HOME"]+"/.blacklist_data"
while True:
time.sleep(2)
current = subprocess.check_output([
"gsettings", "get", key, "blacklist",
]).decode("utf-8")
if "@as" in current:
current = []
else:
current = eval(current)
try:
r = open(bl_file).read()
r = [] if r == '' else r.splitlines()
except FileNotFoundError:
r = []
if current != r:
newlist = list(set([d for d in current+r if not d == '']))
open(bl_file, "wt").write("\n".join(newlist))
subprocess.Popen(["gsettings", "set", key, "blacklist", str(newlist)])
ব্যবহারবিধি
- একটি ফাঁকা ফাইলে স্ক্রিপ্টটি অনুলিপি করুন
- এটি হিসাবে সংরক্ষণ করুন
remember_blacklist.py
কমান্ড দ্বারা এটি পরীক্ষা করুন:
python3 /path/to/remember_blacklist.py
যদি সমস্ত ঠিকঠাক কাজ করে তবে স্টার্টআপ অ্যাপ্লিকেশনগুলিতে যুক্ত করুন: ড্যাশ> স্টার্টআপ অ্যাপ্লিকেশন> অ্যাড করুন। কমান্ড যুক্ত করুন:
python3 /path/to/remember_blacklist.py
বিঃদ্রঃ
gsettings
(স্ক্রিপ্টটি যা কিছু করে তা ব্যবহারিকভাবে) থেকে পড়া অত্যন্ত হালকা ওজন এবং আপনার সিস্টেমে কোনও লক্ষণীয় বোঝা যুক্ত করবে না
- যদি (এবং দীর্ঘ হিসাবে) কোনও
nautilus
উইন্ডোতে ডিভাইসটি খোলা থাকে তবে এটি লঞ্চারে প্রদর্শিত হবে। আইকনটি তবে লঞ্চটিতে লক হবে না এবং অদৃশ্য হয়ে যাবে।