Làm cách nào để dừng biểu tượng phân vùng trong trình khởi chạy Unity?


8

Vấn đề mới. Ubuntu 16.04 / 16.10. Bây giờ, bất cứ khi nào tôi bắt đầu gparted, các biểu tượng phân vùng đĩa mới xuất hiện, ngay phía trên biểu tượng thùng rác, trong trình khởi chạy Unity. Tôi phải "mở khóa từ launcher" để loại bỏ chúng.

Các bài đăng cũ hơn cho các phiên bản cũ hơn của Ubuntu đề xuất các bản sửa lỗi khác nhau không còn áp dụng trong 16.04 / 16.10. Bất kỳ ý tưởng làm thế nào để vĩnh viễn thoát khỏi các biểu tượng pesky?

Dưới đây là ảnh chụp màn hình hiển thị 3 biểu tượng, ngay phía trên biểu tượng thùng rác:

nhập mô tả hình ảnh ở đây


Vui lòng thêm ảnh chụp màn hình
You'reAGitForNotUsingGit

Ảnh chụp màn hình sẽ không cho phép tôi chụp nhanh 3 biểu tượng phân vùng đĩa được thêm vào bất cứ khi nào tôi chạy gparted, vì trình khởi chạy sẽ không cuộn xuống cuối danh sách trình khởi chạy khi Ảnh chụp màn hình đang hoạt động. ps: Nếu tôi có thể có được một ảnh chụp màn hình, làm thế nào để tôi thêm nó trong tương lai?
heynnema

Khi bạn đang chỉnh sửa bài đăng của mình, ở thanh trên cùng, có một biểu tượng hình ảnh nhỏ. Nếu bạn nhấp vào nó, nó cho phép bạn nhúng một hình ảnh.
AreAGitForNotUsingGit

Ngoài ra, nếu bạn yêu cầu ảnh chụp màn hình thực hiện chụp nhanh cửa sổ đầy đủ với độ trễ, nó sẽ hoạt động :)
You'reAGitForNotUsingGit

Câu trả lời:


6

Nguyên nhân

Xóa thiết bị khỏi trình khởi chạy sẽ đưa vào danh sách đen thiết bị trong phím ( gsettings)

com.canonical.Unity.Devices blacklist

Tuy nhiên, nếu thiết bị bị xóa (ngắt kết nối theo bất kỳ cách nào), thiết bị cũng bị xóa khỏi danh sách đen. Vào lần tiếp theo bạn kết nối thiết bị, câu chuyện lại bắt đầu.

Giải pháp

Giải pháp dưới đây sẽ lưu trữ các thiết bị trong danh sách đen trong một tệp. Sau khi loại bỏ chúng một lần , thiết bị sẽ không bao giờ xuất hiện lại trong trình khởi chạy. Nếu bạn ngắt kết nối thiết bị, tập lệnh sẽ ngay lập tức (lại) thêm thiết bị vào danh sách đen.

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

Cách sử dụng

  1. Sao chép tập lệnh vào một tập tin trống
  2. Lưu nó dưới dạng remember_blacklist.py
  3. Kiểm tra- chạy nó bằng lệnh:

    python3 /path/to/remember_blacklist.py
    
  4. Nếu tất cả đều hoạt động tốt, hãy thêm vào Ứng dụng khởi động: Dash> Ứng dụng khởi động> Thêm. Thêm lệnh:

    python3 /path/to/remember_blacklist.py
    

Ghi chú

  1. Đọc từ gsettings(thực tế là tất cả những gì kịch bản làm) rất nhẹ và sẽ không thêm bất kỳ gánh nặng đáng chú ý nào vào hệ thống của bạn
  2. Nếu (và miễn là) thiết bị được mở trong bất kỳ nautiluscửa sổ nào , thiết bị vẫn sẽ hiển thị trong trình khởi chạy. Tuy nhiên, biểu tượng sẽ không bị khóa với trình khởi chạy và biến mất.

Cảm ơn bạn đã giúp đỡ! Tôi sẽ kiểm tra nó ngay. Sau đó tôi sẽ quay lại và bỏ phiếu / chấp nhận.
heynnema

1
Có vẻ để làm việc! Khi tôi đang thử nghiệm nó, tôi đã thực hiện một điều khiển-c để ngăn chặn nó và tôi đã nhận được điều này ... $ python3 ~/bin/remember_blacklist.py ^CTraceback (most recent call last): File "/home/alheynneman/bin/remember_blacklist.py", line 23, in <module> time.sleep(2) KeyboardInterruptSẽ khó khăn thế nào khi thêm một trình xử lý "ngắt" đi đến một lối thoát sạch đẹp?
heynnema

@heynnema yeah, đó là những gì bạn nên nhận khi nhấn Ctrl -c. Nó có nghĩa là vòng lặp đã bị dừng bởi Ctrl c. Khác vòng lặp sẽ không thể dừng lại.
Jacob Vlijm

1
Điều gì sẽ xảy ra ... và tôi cho rằng sẽ không bao giờ nếu nó ở trong Startup Applications... rằng một điều khiển-c (hoặc giết?) Sẽ làm gián đoạn chữ viết đến .blacklist_data và làm hỏng nó?
heynnema

Nono, đó là khi bạn chạy nó từ một thiết bị đầu cuối :)
Jacob Vlijm
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.