Fedora Gnome에서 바탕 화면 아이콘을 만들려고 하는데 내 응용 프로그램에 대한 일반 바이너리 아이콘만 표시됩니다. Gimp나 OpenOffice를 설치하면 마술처럼 내 아이콘이 나타납니다.
png 이미지를 사용하여 바탕 화면 아이콘을 만들기 위한 참고 자료로 Fedora에서 Google Chrome을 사용하고 있습니다. Google Chrome은 16x16, 22x22, 24x24, 32x32, 48x48, 64x64, 128x128 및 256x256 등 다양한 해상도 /usr/share/icons/hicolor/#x#/apps/google-chrome.png
의 32비트 PNG 파일을 사용합니다 . #x#
이러한 파일에 대한 권한은 모두 0644
또는 입니다. Google은 해당 파일에 -rw-r--r--
권한을 부여했습니다.google-chrome.desktop
/usr/local/share/applications/
0644
시도:
.desktop 파일 위치를 제외한 모든 조건을 복사했습니다.
my-app.desktop
/usr/share/applications
허가를 받아 파일을 넣었습니다0644
- 모든 png 파일은 32비트 이미지로 저장되며
/usr/share/icons/hicolor/#x#/apps
권한이 있는 경우 올바르게 배치됩니다.0644
- 내 데스크탑 파일은 다음과 같습니다.
(myapp.desktop)
[Desktop Entry]
Version=1.0
Name=My-App
GenericName=My Application
Comment=Test Application
Terminal=false
Icon=my-app.png
Type=Application
Exec=/opt/my-app/my-app
MimeType=application/x-executable
Categories=Network
결과:
/usr/share/applications
my-app.desktop 파일 로 이동하는 것은 일반 파일처럼 보입니다.
Gnome 데스크탑 메뉴에서 내 애플리케이션은 범용 바이너리처럼 보입니다.
Gimp 또는 OpenOffice를 설치하면 파일 my-app.desktop
이나 png 파일을 수정하지 않고도 아이콘이 예상대로 표시됩니다.
문제를 해결하기 위해 다음과 같은 다양한 접근 방식을 시도했습니다.
- my-app.desktop
Icon=my-app.png
으로 변경Icon=my-app
- PNG 파일을 24비트로 저장
답변1
뭐라고 ~/.xsession-errors
? 유효성 검사에서 오류가 발생한다는 의미입니까?
뭐라고 desktop-file-validate
?
다음과 같이 말해야 합니다.
sm.desktop: error: (will be fatal in the future): value "sm.png" for key "Icon" in group "Desktop Entry" is an icon name with an extension, but there should be no extension as described in the Icon Theme Specification if the value is not an absolute path
편집하다: 데스크톱 파일이 수정된 것 같습니다.
[Desktop Entry]
Version=1.0
Name=My-App
GenericName=My Application
Comment=Test Application
Terminal=false
Icon=my-app
Type=Application
Exec=/opt/my-app/my-app
MimeType=application/x-executable;
Categories=Network;
답변2
문제는 "Terminal=false" 줄입니다. 이로 인해 GNOME 및 Unity의 .desktop 파일 처리에 버그가 발생하는 것 같습니다. KDE는 이 버그의 영향을 받지 않습니다.
비슷한 문제가 있었고 해당 줄을 제거한 후 내 아이콘이 올바르게 표시되었습니다.
이는 최신 데스크탑에도 영향을 미치며, 적어도 Ubuntu 17.04 및 Fedora Core 26은 여전히 이 버그로 인해 어려움을 겪고 있습니다.