A causa
A remoção de dispositivos do iniciador colocará na lista negra o dispositivo na gsettings
tecla ( )
com.canonical.Unity.Devices blacklist
No entanto, se o dispositivo for removido (desconectado de qualquer forma), o dispositivo também será removido da lista negra. Na próxima vez que você conectar o dispositivo, a história começará novamente.
A solução
A solução abaixo armazenará os dispositivos na lista negra em um arquivo. Depois de removê-los uma vez , o dispositivo nunca será exibido novamente no iniciador. Se você desconectar um dispositivo, o script irá imediatamente (re) adicionar o dispositivo à lista negra.
#!/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)])
Como usar
- Copie o script em um arquivo vazio
- Salve como
remember_blacklist.py
Teste-execute pelo comando:
python3 /path/to/remember_blacklist.py
Se tudo funcionar bem, adicione aos Aplicativos de inicialização: Dash> Aplicativos de inicialização> Adicionar. Adicione o comando:
python3 /path/to/remember_blacklist.py
Nota
- A leitura de
gsettings
(praticamente tudo o que o script faz) é extremamente leve e não adiciona nenhum fardo perceptível ao seu sistema
- Se (e enquanto) o dispositivo for aberto em qualquer
nautilus
janela, ele ainda aparecerá no iniciador. O ícone não será bloqueado no iniciador e desaparecerá.