Se collego un dispositivo esterno (come una chiavetta USB o uno smartphone Android) si aprirà automaticamente in nautilus e otterrà un'icona corrispondente bloccata su unity launcher. C'è un modo per impedirlo?
Sto usando Ubuntu 14.04
Risposta accettata:
Se sblocchi un dispositivo da Unity Launcher, è effettivamente nella lista nera dal lanciatore. Puoi vedere quali dispositivi sono attualmente inseriti nella lista nera dal comando:
gsettings get com.canonical.Unity.Devices blacklist
Lo script seguente è un modo alternativo per impostare i propri dispositivi inseriti nella lista nera . La differenza è che lo script lo fa in modo permanente, finché non rimuovi il file ~/.blacklist_data
. (vedi spiegazione:Come funziona )
script in background
Anche per uno script in background, questo è estremamente leggero, in quanto, se nulla cambia nella blacklist, solo la blacklist corrente viene letta da gsettings
comando. Legge il dconf
database, che è in binary
formato, e quindi molto leggero.
Il copione
#!/usr/bin/env python3
import subprocess
import os
import time
blacklist_data = os.environ["HOME"]+"/.blacklist_data"
def get_setlist():
cmd = "gsettings get com.canonical.Unity.Devices blacklist"
blacklist = subprocess.check_output(["/bin/bash", "-c", cmd]).decode("utf-8").strip()
return "[]" if blacklist == "@as []" else blacklist
try:
blacklist1 = str(open(blacklist_data).read()).strip()
cmd = 'gsettings set com.canonical.Unity.Devices blacklist "'+blacklist1+'"'
subprocess.call(["/bin/bash", "-c", cmd])
except FileNotFoundError:
blacklist1 = "[]"
open(blacklist_data, "wt").write(blacklist1)
while True:
time.sleep(1)
blacklist2 = get_setlist()
if blacklist2 != blacklist1:
oldlist = open(blacklist_data).read().strip()
n_old = len(eval(oldlist))
try:
n_new = len(eval(blacklist2))
except SyntaxError:
n_new = 0
if n_old < n_new:
open(blacklist_data, "wt").write(blacklist2)
else:
cmd = 'gsettings set com.canonical.Unity.Devices blacklist "'+oldlist+'"'
subprocess.call(["/bin/bash", "-c", cmd])
blacklist1 = blacklist2
Come si usa
- Copia lo script in un file vuoto, salvalo come
myown_blacklist.py
-
Provalo con il comando:
python3 /pat/to/myown_blacklist.py`
Ora sblocca i tuoi dispositivi indesiderati (qualsiasi, funziona non solo con i dispositivi USB). Lo sblocco è necessario solo una volta.
-
Se tutto funziona correttamente, aggiungilo ad Applicazioni di avvio:scegli Dash> Applicazioni di avvio> Aggiungi. Aggiungi il comando:
python3 /pat/to/myown_blacklist.py`
Come funziona
Il problema è che Unity "dimentica" i dispositivi una volta smontati. Lo script tiene quindi traccia di ciò che accade all'output di:
gsettings get com.canonical.Unity.Devices blacklist
Se un elemento viene aggiunto all'elenco, lo script scrive l'elenco in un file nascosto nella directory home. Se un elemento viene rimosso, legge il file nascosto e ripristina la blacklist (questo è necessario solo una volta allo smontaggio del dispositivo)
Correlati:il pacchetto "grub-efi-amd64-signed" non è riuscito a installare target/?