La causa
La eliminación de dispositivos del iniciador incluirá en la lista negra el dispositivo en la gsettings
tecla ( )
com.canonical.Unity.Devices blacklist
Sin embargo, si se elimina el dispositivo (desconectado de alguna manera), el dispositivo también se elimina de la lista negra. La próxima vez que conecte el dispositivo, la historia comienza de nuevo.
La solución
La solución a continuación almacenará los dispositivos en la lista negra en un archivo. Después de eliminarlos una vez , el dispositivo nunca volverá a aparecer en el iniciador. Si desconecta un dispositivo, el script inmediatamente (re) agregará el dispositivo como incluido en la 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)])
Cómo utilizar
- Copie el script en un archivo vacío
- Guárdalo como
remember_blacklist.py
Prueba: ejecútelo con el comando:
python3 /path/to/remember_blacklist.py
Si todo funciona bien, agréguelo a Aplicaciones de inicio: Tablero> Aplicaciones de inicio> Agregar. Agrega el comando:
python3 /path/to/remember_blacklist.py
Nota
- Leer de
gsettings
(prácticamente todo lo que hace el script) es extremadamente liviano y no agregará ninguna carga notable a su sistema
- Si (y por mucho tiempo) el dispositivo se abre en cualquier
nautilus
ventana, seguirá apareciendo en el iniciador. Sin embargo, el icono no se bloqueará en el iniciador y desaparecerá.