가장 우아한 방법은 아이콘을 "다시 시작"하는 것입니다. 실행기의 해당 위치에서 아이콘을 제거하고 동일한 위치에서 아이콘을 교체하십시오. 아래 스크립트는 작업을 수행합니다. 12.04에는 기본적으로 python3이 제공되지 않으므로 python2에 있습니다. 그러나 그것은 python3에서도 사용될 수 있습니다.이 경우에만 shebang을 변경하십시오. 스크립트는 예를 들어 변경된 아이콘을 즉시 적용하는 데 유용 할 수 있습니다 (나중의 Ubuntu 버전에서도).
편집 된 데스크탑 파일을 인수로 사용하여 스크립트를 호출하여 간단히 사용할 수 있습니다 (아래 추가 참조).
참고 : 12.04에서 새로 고친 아이콘이 실행중인 응용 프로그램을 나타내는 경우이 질문에 설명 된 것처럼 문제의 응용 프로그램이 충돌 하므로 사용하면 응용 프로그램이 실행되고 있지 않은지 확인하십시오. 14.04에서는 실행중인 응용 프로그램의 경우 아이콘이 새로 고쳐지지 않습니다.
스크립트
#!/usr/bin/env python
import subprocess
import time
import sys
desktopfile = sys.argv[-1]
def read_currentlauncher():
# reads the current launcher contents
get_launcheritems = subprocess.Popen([
"gsettings", "get", "com.canonical.Unity.Launcher", "favorites"
], stdout=subprocess.PIPE)
return get_launcheritems.communicate()[0].decode("utf-8")
def set_launcher(llist):
# sets a defined unity launcher list
current_launcher = str(llist).replace(", ", ",")
subprocess.Popen([
"gsettings", "set", "com.canonical.Unity.Launcher", "favorites",
current_launcher,
])
def refresh_icon(desktopfile):
current_launcher = read_currentlauncher()
current_launcher_temp = eval(current_launcher)
item = [item for item in current_launcher_temp if desktopfile in item][0]
index = current_launcher_temp.index(item)
current_launcher_temp.pop(index)
set_launcher(current_launcher_temp)
time.sleep(2)
set_launcher(current_launcher)
refresh_icon(desktopfile)
사용 방법
정말로 매끄럽게 만들고 싶다면
unity --replace
공장? 나는 모든 것을 다시로드하는 것을 신경 쓰지 않습니다.