2010-07-27 8 views
4

간단한 API 호출이 Windows에서 사용자 지정 폴더 아이콘 설정을 처리한다는 것을 알고 있기 때문에 Linux에서 사용자 지정 폴더 아이콘을 설정하는 API 메서드를 찾았습니다.GNOME에서 프로그래밍 방식으로 사용자 지정 폴더 아이콘을 설정하는 방법은 무엇입니까?

그러나 this thread에서 나는 그런 방법이 없다는 것을 알았습니다. 또한 각 데스크톱 환경에는 사용자 지정 폴더 아이콘을 설정하는 고유 한 방법이 있다는 것을 알게되었습니다. KDE의 방법이 명확하게 설명되어 있습니다.

GNOME의 경우 비슷한 방법으로 검색했습니다. 속성 패널에서 폴더 아이콘을 설정할 때 파일이 만들어지지 않습니다. 나는 어딘가에 사용자 가정이나/etc에 레지스트리와 같은 파일이 있어야한다고 생각한다.

당신이 내 고통을 죽이는다면 나는 기쁠 것입니다. 감사합니다. .

답변

5

나는 마침내 어떻게하는지 알아 냈습니다! 다음은 표준 Gnome 환경에서 작동하는 Python 스크립트입니다.

#!/usr/bin/env python 

import sys 
from gi.repository import Gio 

if len(sys.argv) not in (2, 3): 
    print 'Usage: {} FOLDER [ICON]'.format(sys.argv[0]) 
    print 'Leave out ICON to unset' 
    sys.exit(0) 

folder = Gio.File.new_for_path(sys.argv[1]) 
icon_file = Gio.File.new_for_path(sys.argv[2]) if len(sys.argv) == 3 else None 

# Get a file info object 
info = folder.query_info('metadata::custom-icon', 0, None) 

if icon_file is not None: 
    icon_uri = icon_file.get_uri() 
    info.set_attribute_string('metadata::custom-icon', icon_uri) 
else: 
    # Change the attribute type to INVALID to unset it 
    info.set_attribute('metadata::custom-icon', 
     Gio.FileAttributeType.INVALID, '') 

# Write the changes back to the file 
folder.set_attributes_from_info(info, 0, None) 
+0

이것은 훌륭합니다! 정말 고마워! – STW

관련 문제