Wenn ich ein externes Gerät (z. B. einen USB-Stick oder ein Android-Smartphone) anschließe, wird es automatisch in Nautilus geöffnet und ein entsprechendes Symbol für den Unity Launcher gesperrt. Gibt es eine Möglichkeit, dies zu verhindern?
Ich verwende Ubuntu 14.04
Akzeptierte Antwort:
Wenn Sie ein Gerät über den Unity Launcher entsperren, wird es tatsächlich auf die schwarze Liste gesetzt aus dem Launcher. Mit dem Befehl können Sie sehen, welche Geräte derzeit auf der schwarzen Liste stehen:
gsettings get com.canonical.Unity.Devices blacklist
Das folgende Skript ist eine alternative Möglichkeit, Ihre eigenen Geräte auf der schwarzen Liste festzulegen . Der Unterschied besteht darin, dass das Skript dies dauerhaft tut, bis Sie die Datei ~/.blacklist_data
entfernen . (siehe Erklärung:Wie es funktioniert )
Hintergrundskript
Selbst für ein Hintergrundskript ist dieses extrem geringes Gewicht, da, wenn sich nichts an der Blacklist ändert, nur die aktuelle Blacklist von den gsettings
gelesen wird Befehl. Es liest die dconf
Datenbank, die binary
ist Format und damit sehr leicht.
Das 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
Verwendung
- Kopieren Sie das Skript in eine leere Datei und speichern Sie es als
myown_blacklist.py
-
Testen Sie es mit dem Befehl:
python3 /pat/to/myown_blacklist.py`
Entsperren Sie jetzt Ihre (beliebigen, es funktioniert nicht nur USB-Geräte) unerwünschten Geräte. Das Entsperren ist nur einmal erforderlich.
-
Wenn alles funktioniert, fügen Sie es den Startanwendungen hinzu:Wählen Sie Dash> Startanwendungen> Hinzufügen. Fügen Sie den Befehl hinzu:
python3 /pat/to/myown_blacklist.py`
Wie es funktioniert
Das Problem ist, dass Unity Geräte „vergisst“, sobald sie ausgehängt wurden. Das Skript verfolgt dann, was mit der Ausgabe von passiert:
gsettings get com.canonical.Unity.Devices blacklist
Wenn der Liste ein Element hinzugefügt wird, schreibt das Skript die Liste in eine versteckte Datei in Ihrem Home-Verzeichnis. Wenn ein Element entfernt wird, liest es die versteckte Datei und stellt die Blacklist wieder her (dies wird nur einmal beim Unmounten des Geräts benötigt)
Verwandt:Das Paket „grub-efi-amd64-signed“ konnte das Ziel nicht installieren/?