2008-09-23 2 views
12

У меня есть кросс-платформенная программа, которая работает на Windows, Linux и Macintosh. У моей версии Windows есть значок, но я не знаю, как сделать его для моей сборки Linux. Есть ли стандартный формат для KDE, Gnome и т. Д., Или мне нужно сделать что-то особенное для каждого из них?Как установить значок рабочего стола моего приложения для Linux: KDE, Gnome и т. Д.?

Мое приложение находится на C++ и распространяется как источник, поэтому конечный пользователь скомпилирует его с помощью gcc.

Если у меня есть значок, встроенный непосредственно в мой двоичный файл exe, это было бы лучше.

ответ

10

Для Gnome и Kde вы, вероятно, захотите включить в приложение файл рабочего стола, в котором будет указано, как он будет запущен. Спецификация может быть найдена here. Если у вас есть инсталлятор, включенный в ваше приложение, вы, вероятно, захотите, чтобы он сгенерировал этот файл рабочего стола и поместил его в нужные места, чтобы сделать записи в меню, а что-то еще

1

Сообщество KDE с его KDE 4 начали использовать CMake как система сборки. Они разработали макрос CMake, который знает, как установить значок для вашего приложения в отношении платформы (окна (встроенные в exe), mac (.app bundles), файлы linux (.desktop) и т. Д.)

Возможно, вы можете используй это.

3

Если вы используете один из предварительно обожженных F/OSS строить системы, такие как поддержка CMake KDE, это действительно довольно легко, если у вас есть файл .desktop:

установки (FILES myapp.desktop НАЗНАЧЕНИЯ $ {} XDG_APPS_INSTALL_DIR) kde4_add_app_icon (myapp_SRCS "$ {} CMAKE_CURRENT_SOURCE_DIR /hi*-app-myappname.png")

Если вы свертывают свой собственный, рассмотреть возможность использования xdg-utils, который включает в себя удобные небольшие скрипты, как XDG-рабочий стол-меню (устанавливает элементы меню рабочего стола) и xdg-desktop-icon (устанавливает значки на рабочий стол) для таких вещей.

Стандарт .desktop уже указывался в первом комментарии, хотя вы также можете просто захватить тот, который уже установлен в вашей системе, и изменить его оттуда. Что касается иконок, PNG и SVG поддерживаются на геральном уровне, хотя PNG, как правило, дают наилучшие результаты.

Смежные вопросы