Подтвердить что ты не робот

Как установить значок моего рабочего стола для Linux: KDE, Gnome и т.д.?

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

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

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

4b9b3361

Ответ 1

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

Ответ 2

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

install (FILES myapp.desktop DESTINATION ${XDG_APPS_INSTALL_DIR}) kde4_add_app_icon (myapp_SRCS "$ {CMAKE_CURRENT_SOURCE_DIR}/hi*-app-myappname.png" )

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

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

Ответ 3

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

Возможно, вы можете использовать его.