Pokud připojím externí zařízení (jako je USB klíč nebo smartphone s Androidem), automaticky se otevře v nautilus a získá odpovídající ikonu uzamčenou na spouštěči unity. Existuje nějaký způsob, jak tomu zabránit?
Používám Ubuntu 14.04
Přijatá odpověď:
Pokud odemknete zařízení ze spouštěče Unity, bude ve skutečnosti na černé listině ze spouštěče. Můžete zjistit, která zařízení jsou aktuálně na černé listině pomocí příkazu:
gsettings get com.canonical.Unity.Devices blacklist
Níže uvedený skript představuje alternativní způsob nastavení vlastních zařízení na černé listině . Rozdíl je v tom, že skript to dělá permanentně, dokud neodstraníte soubor ~/.blacklist_data
. (viz vysvětlení:Jak to funguje )
skript na pozadí
I pro skript na pozadí je tento extrémně nízká hmotnost v důsledku skutečnosti, že pokud se na černé listině nic nezmění, pomocí gsettings
se přečte pouze aktuální černá listina příkaz. Přečte dconf
databáze, která je v binary
formátu, a tedy velmi nízké hmotnosti.
Skript
#!/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
Jak používat
- Zkopírujte skript do prázdného souboru a uložte jej jako
myown_blacklist.py
-
Test- spusťte jej příkazem:
python3 /pat/to/myown_blacklist.py`
Nyní odemkněte svá (jakákoli, funguje nejen zařízení USB) nechtěná zařízení. Odemknutí je potřeba pouze jednou.
-
Pokud vše funguje dobře, přidejte jej do Startup Applications:zvolte Dash> Startup Applications> Add. Přidejte příkaz:
python3 /pat/to/myown_blacklist.py`
Jak to funguje
Problém je v tom, že Unity „zapomene“ zařízení, jakmile jsou odpojena. Skript pak sleduje, co se stane s výstupem:
gsettings get com.canonical.Unity.Devices blacklist
Pokud je do seznamu přidána položka, skript zapíše seznam do skrytého souboru ve vašem domovském adresáři. Pokud je položka odstraněna, přečte skrytý soubor a obnoví černou listinu (toto je potřeba pouze jednou při odpojení zařízení)
Související:Balíček „grub-efi-amd64-signed“ se nepodařilo nainstalovat target/?