Что творится
Подобные проблемы относятся к структуре сопоставления приложений Unity. Чтобы упростить технические детали, окна программы и приложения - это две разные вещи для Ubuntu. Ubuntu нужно «угадать», какому приложению принадлежит конкретное окно. И иногда это предположение не удается, и в панели запуска появляется знак вопроса.
Ошибка может быть вызвана:
- Ошибка в BAMF (структура соответствия приложения, упомянутая выше).
- Неисправное описание приложения (он же файл .desktop).
- Отсутствие какого-либо описания приложения вообще. Исполняемые файлы, запускающие окна, по сути не имеют этих метаданных.
Приложение, показанное в вопросе (KeePass2), страдает от проблемы типа 1, о которой было сообщено соответствующему средству отслеживания ошибок .
Примеры проблем
Приведенные ниже примеры являются техническими и предназначены для программистов, которые хотят, чтобы их собственные приложения правильно отображались в средстве запуска Ubuntu.
Проблема 3 - Нет описания приложения
Чтобы приложение могло интегрироваться с Unity, то есть иметь возможность поиска в Dash и располагаться в модуле запуска, оно должно иметь запись на рабочем столе. Такие данные помещаются в /usr/share/applications/
, /usr/local/share/applications/
и $HOME/.local/share/applications/
(причем два последних для третьих программного обеспечения сторонних производителей , общесистемные и пользователь только соответственно). Они заканчиваются .desktop
расширением и следуют этому базовому формату:
[Desktop Entry]
Type=Application
Name=My Application's Name
Icon=/file/path/of/my/icon
Exec=/file/path/of/my/executable
Эта запись запускает программу, вызывая Exec
исполняемый файл. Всякий раз, когда эта программа отображает окно или диалоговое окно, Unity замечает, что ее исполняемый файл «принадлежит» этому описанию приложения, и использует данное Name
и Icon
в модуле запуска.
Это простой пример. Формальная спецификация охватывает множество дополнительных функций.
Проблема 2 - Неправильное описание приложения
Предположим, что my_app.desktop
существует в допустимом каталоге приложения, но:
/file/path/of/my/icon
не существует в файловой системе.
/file/path/of/my/icon
это не изображение.
- запись использует неправильный синтаксис или недействительные теги.
В любом из вышеперечисленных случаев Ubuntu не сможет правильно отобразить окно приложения в панели запуска.
Проблема 1 - ошибка в BAMF
Начиная с Ubuntu 11.10, BAMF имеет ряд ошибок, которые мешают правильному сопоставлению приложений. Общие (временные) подводные камни включают в себя:
Exec
Путь будучи символическую ссылку , а не обычный файл
- Исполняемый файл представляет собой скрипт, который запускает основной исполняемый файл.
В этих случаях у программистов нет другого выбора, кроме как использовать обходной путь, такой как удаление абстракции символической ссылки или прямая ссылка на исполняемый файл. Ни один из них не требуется самой спецификацией записи рабочего стола.