Como parar os ícones de partição no iniciador do Unity?

8

Novo problema. Ubuntu 16.04 / 16.10. Agora, sempre que eu inicio o gparted, novos ícones de partição de disco aparecem, logo acima do ícone da lixeira, no iniciador do Unity. Eu tenho que "desbloquear do lançador" para se livrar deles.

Posts mais antigos para versões mais antigas do Ubuntu propõem várias correções que não se aplicam mais em 16.04 / 16.10. Alguma idéia de como se livrar permanentemente desses ícones irritantes?

Aqui está uma captura de tela que mostra os três ícones, logo acima do ícone da lixeira:

    
por heynnema 13.08.2016 / 17:55

1 resposta

7

A causa

Remover dispositivos do iniciador irá colocar o dispositivo na lista negra na chave ( gsettings )

com.canonical.Unity.Devices blacklist

No entanto, se o dispositivo for removido (desconectado de qualquer forma), o dispositivo também será removido da lista negra. Na próxima vez que você conectar o dispositivo, a história recomeça.

A solução

A solução abaixo armazenará os dispositivos na lista negra em um arquivo. Depois de removê-los uma vez , o dispositivo nunca mais aparecerá no iniciador. Se você desconectar um dispositivo, o script irá (re) adicionar o dispositivo imediatamente na lista negra.

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

Como usar

  1. Copie o script em um arquivo vazio
  2. Salvar como remember_blacklist.py
  3. Teste - execute-o pelo comando:

    python3 /path/to/remember_blacklist.py
    
  4. Se tudo funcionar bem, adicione a Startup Applications: Dash > Aplicativos de inicialização > Adicionar. Adicione o comando:

    python3 /path/to/remember_blacklist.py
    

Nota

  1. A leitura de gsettings (praticamente tudo o que o script faz) é extremamente leve e não agrega nenhum ônus perceptível ao seu sistema
  2. Se (e um tempo) o dispositivo for aberto em qualquer janela nautilus , ele ainda será exibido no inicializador. O ícone, no entanto, não será bloqueado para o lançador e desaparecerá.
por Jacob Vlijm 20.11.2016 / 21:29