Що відбувається
Такі проблеми стосуються рамки відповідності додатків Unity. Для спрощення технічних деталей Ubuntu - це вікна програм та додатки. Ubuntu потрібно «відгадати», якій програмі належить певне вікно. І іноді ця здогадка не вдається, і на пусковій установці з’являється знак питання.
Поломка може бути наслідком:
- Помилка в BAMF (згадана вище рамка відповідності додатку).
- Несправний опис програми (він же ".desktop" файл).
- Відсутність взагалі будь-якого опису програми. Виконавчі файли, що запускають Windows, по суті не мають цих метаданих.
Програма, показана у запитанні (KeePass2), страждає від проблеми типу 1, про яку повідомлялося у відповідному трекері помилок .
Приклади проблем
Наведені нижче приклади - технічні, спрямовані на програмістів, які хочуть, щоб їх власне додаток відображалося належним чином у запуску Ubuntu.
Проблема 3 - Немає опису програми
Для того, щоб програма інтегрувалася з Unity, тобто її можна було шукати на тире та розміщувати в панелі запуску - для цього потрібно мати запис на робочому столі. Такі дані містяться в /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
Шлях будучи символічне посилання , а не звичайний файл
- Виконавчим файлом є сценарій, який запускає основний виконуваний файл.
У цих випадках програмістам не залишається іншого варіанту, як використовувати обхідне рішення, як-от видалити символічну абстракцію посилання або безпосередньо посилання на виконуваний файл. Жодна з них не вимагає самої специфікації запису на робочому столі.