GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Impedire che i dispositivi esterni vengano bloccati su Launcher?

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

  1. Copia lo script in un file vuoto, salvalo come myown_blacklist.py
  2. 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.

  3. 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/?
Ubuntu
  1. Impedire ai Syslog di essere registrati in Journalctl?

  2. Necessità di impedire l'installazione di un pacchetto?

  3. Aggiungere applicazioni personalizzate a Gnome Launcher?

  4. Il Bluetooth non trova i dispositivi!?

  5. Come evitare di andare in SWAP?

Come creare una tabella esterna in Hive

Come impedire l'aggiornamento di un pacchetto nelle distribuzioni Linux basate su Ubuntu e Debian

Icona di avvio duplicata senza icone?

Come impedire lo spegnimento degli schermi quando lo schermo è bloccato?

Che cos'è un DDoS e come possiamo impedire che la nostra attività venga attaccata?

Impedisci a Ubuntu 14.04 di bloccarsi su virtualbox se Windows è bloccato