Unity 런처에서 파티션 아이콘을 중지하는 방법은 무엇입니까?


8

새로운 문제. 우분투 16.04 / 16.10. 이제 gparted를 시작할 때마다 Unity 런처의 휴지통 아이콘 바로 위에 새로운 디스크 파티션 아이콘이 나타납니다. 나는 그들을 제거하기 위해 "런처에서 잠금 해제"해야합니다.

이전 버전의 Ubuntu에 대한 이전 게시물은 16.04 / 16.10에 더 이상 적용되지 않는 다양한 수정 사항을 제안합니다. 이 성가신 아이콘을 영구적으로 제거하는 방법에 대한 아이디어가 있습니까?

휴지통 아이콘 바로 위에 3 개의 아이콘이 표시된 스크린 샷이 있습니다.

여기에 이미지 설명을 입력하십시오


스크린 샷을 추가하십시오
귀하

스크린 샷은 gparted를 실행할 때마다 추가되는 3 개의 디스크 파티션 아이콘을 스냅 샷으로 만들 수 없습니다. 추신 : 스크린 샷을 얻을 수 있다면 나중에 어떻게 추가합니까?
heynnema

게시물을 편집 할 때 상단 표시 줄에 작은 이미지 아이콘이 있습니다. 클릭하면 이미지를 포함 할 수 있습니다.
You'reAGitForNotUsingGit 16:13

또한, 스크린 샷에 지연과 함께 전체 창 스냅을 수행하도록
지시

답변:


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
작동하는 것 같습니다! 테스트 할 때 control-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

그래 @heynnema, 즉 '당신이 무슨이다 해야 Ctrl 키의 -c를 누를 때 얻을. Ctrl c로 루프가 중지되었음을 나타냅니다. 그렇지 않으면 루프를 중지 할 수 없습니다.
Jacob Vlijm

1
무슨 일이 일어날 Startup Applications까요? 그리고 control-c (또는 kill?)가 .blacklist_data에 대한 쓰기를 중단하고 손상시킬 것이라고 생각하지 않습니다.
heynnema

Nono, 터미널에서 실행할 때입니다 :)
Jacob Vlijm
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.