Причина
Видалення пристроїв із пускового пристрою приведе в чорний список пристрій у 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
вікні, воно все одно відобразиться в пусковій установці. Однак піктограма не буде заблокована до пускової установки та зникне.