web-dev-qa-db-fra.com

Comment arrêter les icônes de partition dans le lanceur Unity?

Nouveau problème. Ubuntu 16.04/16.10. Maintenant, chaque fois que je lance gparted, de nouvelles icônes de partition de disque apparaissent, juste au-dessus de l'icône de corbeille, dans le lanceur Unity. Je dois "déverrouiller du lanceur" pour m'en débarrasser.

Les anciennes publications d’anciennes versions d’Ubuntu proposent diverses corrections qui ne sont plus applicables dans 16.04/16.10. Des idées sur la façon de se débarrasser définitivement de ces icônes embêtantes?

Voici une capture d'écran qui montre les 3 icônes, juste au-dessus de l'icône de la corbeille:

enter image description here

8
heynnema

La cause

Supprimer des périphériques du lanceur mettra la liste noire du périphérique dans la touche (gsettings)

com.canonical.Unity.Devices blacklist

Toutefois, si le périphérique est supprimé (déconnecté de quelque manière que ce soit), il est également supprimé de la liste noire. La prochaine fois que vous connecterez l'appareil, l'histoire recommencera.

La solution

La solution ci-dessous stockera les périphériques de la liste noire dans un fichier. Après les avoir retirés ne fois, l'appareil ne s'affichera plus jamais dans le lanceur. Si vous déconnectez un périphérique, le script ajoutera immédiatement le périphérique en tant que liste noire.

#!/usr/bin/env python3
import subprocess
import time
import os

key = "com.canonical.Unity.Devices"
bl_file = os.environ["HOME"]+"/.blacklist_data"

while True:
    time.sleep(2)

    current = subprocess.check_output([
        "gsettings", "get", key, "blacklist",
        ]).decode("utf-8")
    if "@as" in current:
        current = []
    else:
        current = eval(current)        
    try:
        r = open(bl_file).read()
        r = [] if r == '' else r.splitlines()           
    except FileNotFoundError:
        r = []
    if current != r:
        newlist = list(set([d for d in current+r if not d == '']))
        open(bl_file, "wt").write("\n".join(newlist))
        subprocess.Popen(["gsettings", "set", key, "blacklist", str(newlist)])

Comment utiliser

  1. Copiez le script dans un fichier vide
  2. Enregistrez-le sous remember_blacklist.py
  3. Testez-le avec la commande:

    python3 /path/to/remember_blacklist.py
    
  4. Si tout fonctionne correctement, ajoutez à Applications de démarrage: Dash> Applications de démarrage> Ajouter. Ajoutez la commande:

    python3 /path/to/remember_blacklist.py
    

Remarque

  1. La lecture de gsettings (pratiquement tout ce que fait le script) est extrêmement légère et n’ajoute aucune charge supplémentaire à votre système.
  2. Si (et tant que) le périphérique est ouvert dans une fenêtre nautilus, il sera toujours affiché dans le lanceur. L'icône ne sera toutefois pas verrouillée au lanceur et disparaîtra.
6
Jacob Vlijm