Как установить значок моего приложения на рабочем столе для Linux:KDE, Gnome и т.д.?
Вопрос
У меня есть кроссплатформенная программа, которая работает на Windows, Linux и Macintosh.В моей версии Windows есть значок, но я не знаю, как сделать так, чтобы он был в моей сборке Linux.Существует ли стандартный формат для KDE, Gnome и т.д.или мне придется сделать что-то особенное для каждого из них?
Мое приложение написано на c ++ и распространяется как исходный код, поэтому конечный пользователь скомпилирует его с помощью gcc.
Если бы я мог встроить значок непосредственно в мой двоичный файл exe, это было бы лучше всего.
Решение
Для Gnome и Kde вы, вероятно, захотите включить в свое приложение файл рабочего стола, который определяет способ его запуска.Спецификацию можно найти здесь.Если у вас есть установщик, включенный в ваше приложение, вы, вероятно, захотите, чтобы он сгенерировал этот файл рабочего стола и разместил его в нужных местах для создания пунктов меню и еще много чего
Другие советы
Если вы используете одну из готовых систем сборки F / OSS, например, KDE с поддержкой CMake, это действительно довольно просто, если у вас есть файл .desktop:
установить (ФАЙЛЫ myapp.desktop ДЛЯ НАЗНАЧЕНИЯ ${XDG_APPS_INSTALL_DIR} ) kde4_add_app_icon(myapp_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/привет *-app-myappname.png")
Если вы создаете свой собственный, подумайте об использовании xdg-утилиты, который включает в себя удобные небольшие скрипты, такие как xdg-desktop-menu (устанавливает пункты меню рабочего стола) и xdg-desktop-icon (устанавливает иконки на рабочий стол) для таких вещей.
Стандарт .desktop уже упоминался в первом комментарии, хотя вы также можете просто взять тот, который уже установлен в вашей системе, и изменить его оттуда.Что касается значков, PNG и SVG поддерживаются в основном, хотя PNG, как правило, по-прежнему дают наилучшие результаты.
Сообщество KDE с серией KDE 4 начало использовать CMake в качестве системы сборки.Они разработали макрос CMake, который знает, как установить значок для вашего приложения независимо от платформы (Windows (встроенный в exe), mac (пакеты приложений), linux (файлы .desktop) и т.д.)
Может быть, тебе это пригодится.