설치 프로그램/패키지 관리자 없이 Linux 애플리케이션 아이콘 제공

설치 프로그램/패키지 관리자 없이 Linux 애플리케이션 아이콘 제공

뒷이야기:

나는 다음을 원한다:

  1. 사용자가 추출하고 실행할 수 있는 간단한 TAR로 애플리케이션 제공
  2. 해당 앱에 적절한 앱 아이콘이 있어야 합니다.

패키지 관리자, sudo, 설치 프로그램 스크립트가 없습니다.

나는에서 본다기준그리고다양한 기사해당 앱 아이콘에는 .desktop실행 파일(으)의 절대 경로와 앱 아이콘이 필요한 파일이 필요합니다. 나는 또한 Ubuntu Unity(아마도 다른 것들도)가 다음 .desktop의 파일을 지원한다는 것을 알고 있습니다.~/.local/share/applications

Windows는 아이콘을 실행 파일에 포함시켜 이를 지원합니다. Mac OS X에는 아이콘이 포함된 응용 프로그램에 대한 상대 디렉토리 구조가 있습니다.

"해킹" 솔루션:

내 "해킹" 솔루션은 앱 시작 시 myApp.desktop파일이 있는지 감지하고 ~/.local/share/applications/, 없으면 파일을 작성하고(실행 파일 및 아이콘의 전체 절대 경로 포함) 새로운 myApp 프로세스를 실행한 후 종료하는 것입니다.

희망하는 것은 새로운 myApp 프로세스가 앱 아이콘을 선택하는 것입니다. 그리고때때로그렇습니다.

문제:

sleep 2이 문제는 새 프로세스를 시작하기까지 몇 초가 걸린다는 것입니다 . 그렇게 하면 아이콘이 선택됩니다. 그렇지 않으면 내 앱에 아이콘이 없습니다.

잠자기( 를 사용하여) 대신 GTK 아이콘 캐시를 다시 로드해 보았지만 gtk-update-icon-cache /usr/share/icons/hicolor효과가 없습니다.

.desktop이 지연을 방지하고 새로 작성된 파일이 선택되도록 하는 방법을 아는 사람이 있습니까 ? (파일을 플러시하고 닫고 있습니다.) 아니면 내 해킹 솔루션보다 더 나은 아이디어가 있습니까?

업데이트:흥미롭습니다. 파일을 작성하는 일반 스크립트를 테스트합니다 .desktop(수동으로 또는xdg-데스크탑-메뉴) 애플리케이션을 실행하더라도 2초의 지연이 필요합니다. 그렇지 않으면 아이콘이 표시되지 않습니다. 매력적인.

답변1

사용gtk_window_set_icon또는 유사합니다(_from_file 변형 및 Glade 통합이 있음).

루트가 없으면 아이콘 캐시에 액세스할 수 없으며 데스크탑 파일을 시기적절하게 로드하는 것은 당신이 발견한 것처럼 신뢰할 수 있는 방법이 아닌 것 같습니다.

관련 정보