Причина
Удаление устройств из модуля запуска внесет устройство в черный список ( 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
Если все работает нормально, добавьте в Startup Applications: Dash> Startup Applications> Add. Добавьте команду:
python3 /path/to/remember_blacklist.py
Запись
- Чтение из
gsettings
(практически всего, что делает скрипт) чрезвычайно легкое и не добавит заметной нагрузки на вашу систему
- Если (и пока) устройство открыто в каком-либо
nautilus
окне, оно все равно будет отображаться в панели запуска. Однако значок не будет привязан к программе запуска и исчезнет.