Bagaimana cara menghentikan ikon partisi di peluncur Persatuan?

8

Masalah baru Ubuntu 16.04 / 16.10. Sekarang, setiap kali saya mulai gparted, ikon partisi disk baru muncul, tepat di atas ikon tempat sampah, di peluncur Persatuan. Saya harus "membuka kunci dari peluncur" untuk menyingkirkannya.

Posting lama untuk Ubuntu versi lama mengusulkan berbagai perbaikan yang tidak lagi berlaku di 16.04 / 16.10. Adakah ide tentang cara menghilangkan ikon sial ini secara permanen?

Berikut screenshot yang menunjukkan 3 ikon, tepat di atas ikon tempat sampah:

masukkan deskripsi gambar di sini

heynnema
sumber
Silakan tambahkan tangkapan layar
You'reAGitForNotUsingGit
Tangkapan layar tidak akan membiarkan saya mengambil snapshot dari 3 ikon partisi disk yang ditambahkan setiap kali saya menjalankan gparted, karena peluncur tidak akan menggulir ke bagian bawah daftar peluncur saat Tangkapan layar aktif. ps: Jika saya bisa mendapatkan tangkapan layar, bagaimana cara menambahkannya di masa mendatang?
heynnema
Ketika Anda mengedit posting Anda, di bar bagian atas, ada ikon gambar kecil. Jika Anda mengkliknya, itu memungkinkan Anda menanamkan gambar.
You'reAGitForNotUsingGit
Juga, jika Anda memberi tahu tangkapan layar untuk melakukan jepretan jendela penuh dengan penundaan, itu akan bekerja :)
You'reAGitForNotUsingGit

Jawaban:

6

Penyebab

Menghapus perangkat dari peluncur akan membuat daftar hitam perangkat di tombol ( gsettings)

com.canonical.Unity.Devices blacklist

Namun, jika perangkat dihapus (terputus dengan cara apa pun), perangkat juga dihapus dari daftar hitam. Di lain waktu Anda menghubungkan perangkat, cerita dimulai lagi.

Solusinya

Solusi di bawah ini akan menyimpan perangkat daftar hitam dalam file. Setelah menghapusnya sekali , perangkat tidak akan pernah muncul lagi di peluncur. Jika Anda memutuskan perangkat, skrip akan segera (kembali) menambahkan perangkat sebagai daftar hitam.

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

Cara Penggunaan

  1. Salin skrip ke file kosong
  2. Simpan sebagai remember_blacklist.py
  3. Uji-jalankan dengan perintah:

    python3 /path/to/remember_blacklist.py
    
  4. Jika semua berfungsi dengan baik, tambahkan ke Aplikasi Startup: Dash> Aplikasi Startup> Tambah. Tambahkan perintah:

    python3 /path/to/remember_blacklist.py
    

Catatan

  1. Membaca dari gsettings(praktis semua yang dilakukan skrip) sangat ringan, dan tidak akan menambah beban nyata pada sistem Anda
  2. Jika (dan selama) perangkat dibuka di nautilusjendela apa pun , ia masih akan muncul di peluncur. Namun ikon tidak akan dikunci ke peluncur, dan menghilang.
Yakub Vlijm
sumber
Terima kasih atas bantuan Anda! Saya akan mengujinya segera. Kemudian saya akan kembali dan memilih / menerima.
heynnema
1
Tampaknya bekerja! Ketika saya mengujinya, saya melakukan kontrol-c untuk menghentikannya, dan saya mendapatkan ini ... $ python3 ~/bin/remember_blacklist.py ^CTraceback (most recent call last): File "/home/alheynneman/bin/remember_blacklist.py", line 23, in <module> time.sleep(2) KeyboardInterruptSeberapa sulitkah untuk menambahkan pawang "interrupt" yang menuju keluar bersih yang bagus?
heynnema
@heynnema ya, itu yang harus Anda dapatkan saat menekan Ctrl-c. Ini berarti loop dihentikan oleh Ctrl c. Jika tidak, pengulangan akan terhenti.
Jacob Vlijm
1
Apa yang akan terjadi ... dan saya kira tidak akan pernah terjadi jika berada di Startup Applications... bahwa kontrol-c (atau pembunuhan?) Akan mengganggu penulisan ke .blacklist_data dan merusaknya?
heynnema
Nono, saat itulah Anda menjalankannya dari terminal :)
Jacob Vlijm