Як зупинити піктограми розділів у запуску Unity?


8

Нова проблема. Ubuntu 16.04 / 16.10. Тепер, коли я починаю gparted, з'являються нові піктограми розділів диска, безпосередньо над піктограмою смітників, у панелі запуску Unity. Я маю "розблокувати від пускової установки", щоб позбутися від них.

Старіші публікації для старих версій Ubuntu пропонують різні виправлення, які більше не застосовуються в 16.04 / 16.10. Будь-які ідеї, як назавжди позбутися цих примхливих ікон?

Ось скріншот, на якому відображаються 3 піктограми, безпосередньо над піктограмою сміття:

введіть тут опис зображення


Будь ласка, додайте скріншот
YouAGitForNotUsingGit

Знімок екрана не дозволить мені зробити оснащення 3-х піктограм розділів диска, які додаються щоразу, коли я запускаю gparted, тому що пускова програма не прокручується до нижньої частини списку запуску під час активного екрана. ps: Якщо я міг отримати скріншот, як додати його в майбутньому?
heynnema

Під час редагування публікації у верхній смузі з’являється невеликий значок зображення. Якщо натиснути на нього, це дозволяє вбудовувати зображення.
YouAGitForNotUsingGit

Крім того, якщо ви скажете скріншот зробити повне вікно з затримкою, це має спрацювати :)
YouAGitForNotUsingGit

Відповіді:


6

Причина

Видалення пристроїв із пускового пристрою приведе в чорний список пристрій у gsettingsклавіші ( )

com.canonical.Unity.Devices blacklist

Однак якщо пристрій вилучено (будь-яким чином відключено), він також буде вилучений із чорного списку. При наступному підключенні пристрою історія починається заново.

Рішення

Нижче наведене рішення зберігатиме пристрої, що перебувають у чорному списку, у файлі. Після видалення їх один раз , пристрій ніколи не буде доступний широкому знову в пусковий установці . Якщо ви відключите пристрій, сценарій негайно (повторно) додасть пристрій у чорний список.

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

Як користуватись

  1. Скопіюйте сценарій у порожній файл
  2. Збережіть як remember_blacklist.py
  3. Тест - запустіть його командою:

    python3 /path/to/remember_blacklist.py
    
  4. Якщо все працює добре, додайте до програми запуску програми: тире> програми запуску> Додати. Додайте команду:

    python3 /path/to/remember_blacklist.py
    

Примітка

  1. Читання з gsettings(практично всього, що робить сценарій) надзвичайно вагоме, і не додасть вашої системи помітного навантаження
  2. Якщо пристрій (і поки що) буде відкрито в будь-якому nautilusвікні, воно все одно відобразиться в пусковій установці. Однак піктограма не буде заблокована до пускової установки та зникне.

Спасибі за вашу допомогу! Невдовзі тестую. Тоді я повернусь і проголосую / прийму.
heynnema

1
Здається, працює! Коли я тестував його, я зробив контроль-c, щоб зупинити його, і мені це вдалося ... $ python3 ~/bin/remember_blacklist.py ^CTraceback (most recent call last): File "/home/alheynneman/bin/remember_blacklist.py", line 23, in <module> time.sleep(2) KeyboardInterruptНаскільки складно було б додати оброблювач "переривання", який іде на хороший чистий вихід?
гейннема

@heynnema Так, це те, що ви повинні отримати при натисканні клавіші Ctrl -c. Це означає, що цикл був зупинений Ctrl c. В іншому випадку цикл було б неможливим.
Яків Влійм

1
Що б сталося ... і я вважаю, що ніколи б не було, якби Startup Applicationsконтроль-c (або вбивство?) Перервав написання на .blacklist_data і пошкодив його?
гейннема

Ніно, це коли ви запускаєте його з терміналу :)
Яків Влійм
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.