Come fermare le icone delle partizioni in Unity Launcher?


8

Nuovo problema Ubuntu 16.04 / 16.10. Ora, ogni volta che avvio gparted, vengono visualizzate nuove icone di partizione del disco, appena sopra l'icona del cestino, nel programma di avvio di Unity. Devo "sbloccare dal launcher" per sbarazzarmi di loro.

I post precedenti per le versioni precedenti di Ubuntu propongono varie correzioni che non si applicano più in 16.04 / 16.10. Qualche idea su come sbarazzarsi permanentemente di queste fastidiose icone?

Ecco uno screenshot che mostra le 3 icone, appena sopra l'icona del cestino:

inserisci qui la descrizione dell'immagine


Per favore, aggiungi uno screenshot
You'reAGitForNotUsingGit

Schermata non mi consente di scattare uno scatto delle 3 icone di partizione del disco che vengono aggiunte ogni volta che eseguo gparted, perché il launcher non scorrerà fino alla fine dell'elenco di launcher quando Screenshot è attivo. ps: se potessi ottenere uno screenshot, come posso aggiungerlo in futuro?
heynnema,

Quando modifichi il tuo post, nella barra in alto, c'è una piccola icona dell'immagine. Se fai clic su di esso, ti consente di incorporare un'immagine.
I'mAGitForNotUsingGit

Inoltre, se dici allo screenshot di fare uno snap alla finestra intera con un ritardo, dovrebbe funzionare :)
You'reAGitForNotUsingGit

Risposte:


6

La causa

La rimozione dei dispositivi dal programma di avvio inserirà nella blacklist il dispositivo nel gsettingstasto ( )

com.canonical.Unity.Devices blacklist

Tuttavia, se il dispositivo viene rimosso (disconnesso in qualsiasi modo), anche il dispositivo viene rimosso dalla lista nera. Alla successiva connessione del dispositivo, la storia ricomincia da capo.

La soluzione

La soluzione seguente memorizzerà i dispositivi nella lista nera in un file. Dopo averli rimossi una volta , il dispositivo non verrà più visualizzato nel programma di avvio. Se si disconnette un dispositivo, lo script aggiungerà immediatamente (ri) il dispositivo come nella lista nera.

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

Come usare

  1. Copia lo script in un file vuoto
  2. Salva come remember_blacklist.py
  3. Prova- eseguilo con il comando:

    python3 /path/to/remember_blacklist.py
    
  4. Se tutto funziona correttamente, aggiungi ad Applicazioni di avvio: Dash> Applicazioni di avvio> Aggiungi. Aggiungi il comando:

    python3 /path/to/remember_blacklist.py
    

Nota

  1. Leggere gsettings(praticamente tutto ciò che fa la sceneggiatura) è estremamente leggero e non aggiungerà alcun onere evidente al tuo sistema
  2. Se (e fino a quando) il dispositivo viene aperto in qualsiasi nautilusfinestra, verrà comunque visualizzato nel programma di avvio. L'icona non verrà tuttavia bloccata sul programma di avvio e scomparirà.

Grazie per l'aiuto! Lo proverò a breve. Poi tornerò e voterò / accetterò.
heynnema,

1
Sembra funzionare! Quando lo stavo testando, ho fatto un control-c per fermarlo, e ho ottenuto questo ... $ python3 ~/bin/remember_blacklist.py ^CTraceback (most recent call last): File "/home/alheynneman/bin/remember_blacklist.py", line 23, in <module> time.sleep(2) KeyboardInterruptQuanto sarebbe difficile aggiungere un gestore di "interruzione" che vada a una bella uscita pulita?
heynnema,

@heynnema sì, è quello che dovresti ottenere quando premi Ctrl -c. Significa che il ciclo è stato interrotto da Ctrl c. Altrimenti il ​​ciclo sarebbe inarrestabile.
Jacob Vlijm,

1
Cosa succederebbe ... e suppongo che non sarebbe mai se fosse in Startup Applications... che un control-c (o un'uccisione?) Interrompesse la scrittura su .blacklist_data e lo corrompesse?
heynnema,

Nono, è quando lo esegui da un terminale :)
Jacob Vlijm,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.