GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Empêcher les périphériques externes d'être verrouillés sur le lanceur ?

Si je connecte un périphérique externe (tel qu'une clé USB ou un smartphone Android), il s'ouvrira automatiquement dans Nautilus et obtiendra une icône correspondante verrouillée sur le lanceur d'unité. Existe-t-il un moyen d'empêcher cela ?

J'utilise Ubuntu 14.04

Réponse acceptée :

Si vous déverrouillez un appareil depuis Unity Launcher, il est en fait sur liste noire du lanceur. Vous pouvez voir quels appareils sont actuellement mis sur liste noire par la commande :

gsettings get com.canonical.Unity.Devices blacklist

Le script ci-dessous est une autre façon de définir vos propres appareils sur liste noire . La différence est que le script le fait de manière permanente, jusqu'à ce que vous supprimiez le fichier ~/.blacklist_data . (voir explication :Comment ça marche )

script d'arrière-plan

Même pour un script d'arrière-plan, celui-ci est extrêmement poids léger, du fait que, si rien ne change dans la liste noire, seule la liste noire en cours est lue par le gsettings commande. Il lit le dconf base de données, qui est en binary format, et donc très léger.

Le scénario

#!/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

Comment utiliser

  1. Copiez le script dans un fichier vide, enregistrez-le sous myown_blacklist.py
  2. Testez-le avec la commande :

    python3 /pat/to/myown_blacklist.py`
    

    Maintenant, déverrouillez vos appareils indésirables (tous, cela ne fonctionne pas seulement les appareils USB). Le déverrouillage n'est nécessaire qu'une seule fois.

  3. Si tout fonctionne correctement, ajoutez-le aux applications de démarrage :choisissez Dash> Startup Applications> Add. Ajoutez la commande :

    python3 /pat/to/myown_blacklist.py`
    

Comment ça marche

Le problème est que Unity "oublie" les appareils une fois qu'ils sont démontés. Le script garde ensuite une trace de ce qui arrive à la sortie de :

gsettings get com.canonical.Unity.Devices blacklist

Si un élément est ajouté à la liste, le script écrit la liste dans un fichier caché de votre répertoire personnel. Si un élément est supprimé, il lit le fichier caché et restaure la liste noire (ceci n'est nécessaire qu'une seule fois lors du démontage de l'appareil)

Connexe :le package "grub-efi-amd64-signed" n'a pas réussi à installer la cible /?
Ubuntu
  1. Ajouter des applications personnalisées au lanceur Gnome ?

  2. Comment installer un disque dur externe ?

  3. Comment configurer des e-mails gratuits cPanel sur vos appareils et applications de messagerie externes ?

  4. Comment éviter d'aller au SWAP ?

  5. Comment puis-je empêcher la détection des calmars ?

Comment créer une table externe dans Hive

Comment empêcher la mise à jour d'un paquet dans les distributions Linux basées sur Ubuntu et Debian

Icône sans icône en double du lanceur ?

Comment empêcher les écrans de s'éteindre lorsque l'écran est verrouillé ?

Qu'est-ce qu'un DDoS et comment empêcher que notre entreprise soit attaquée ?

Empêcher Ubuntu 14.04 de se verrouiller sur virtualbox si Windows est verrouillé