A causa
Remover dispositivos do iniciador irá colocar o dispositivo na lista negra na chave ( gsettings
)
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 recomeça.
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 mais aparecerá no iniciador. Se você desconectar um dispositivo, o script irá (re) adicionar o dispositivo imediatamente na 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
- Salvar como
remember_blacklist.py
-
Teste - execute-o pelo comando:
python3 /path/to/remember_blacklist.py
-
Se tudo funcionar bem, adicione a Startup Applications: 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 agrega nenhum ônus perceptível ao seu sistema - Se (e um tempo) o dispositivo for aberto em qualquer janela
nautilus
, ele ainda será exibido no inicializador. O ícone, no entanto, não será bloqueado para o lançador e desaparecerá.