У меня проблема с парой программ, которые запускаются в единстве, но после запуска создают отдельный значок. Возможно ли, чтобы пусковая установка отслеживала окна, которые она порождает, чтобы лучше организовать? Или это ошибка в самом Unity?
Возможно, это не имеет значения, но эта конкретная программа является монопрограммой, а появившийся значок отображается в качестве панели.
StartupWMClass
свойство в панелиОтветы:
Что творится
Подобные проблемы относятся к структуре сопоставления приложений Unity. Чтобы упростить технические детали, окна программы и приложения - это две разные вещи для Ubuntu. Ubuntu нужно «угадать», какому приложению принадлежит конкретное окно. И иногда это предположение не удается, и в панели запуска появляется знак вопроса.
Ошибка может быть вызвана:
Приложение, показанное в вопросе (KeePass2), страдает от проблемы типа 1, о которой было сообщено соответствующему средству отслеживания ошибок .
Примеры проблем
Приведенные ниже примеры являются техническими и предназначены для программистов, которые хотят, чтобы их собственные приложения правильно отображались в средстве запуска Ubuntu.
Проблема 3 - Нет описания приложения
Чтобы приложение могло интегрироваться с Unity, то есть иметь возможность поиска в Dash и располагаться в модуле запуска, оно должно иметь запись на рабочем столе. Такие данные помещаются в
/usr/share/applications/
,/usr/local/share/applications/
и$HOME/.local/share/applications/
(причем два последних для третьих программного обеспечения сторонних производителей , общесистемные и пользователь только соответственно). Они заканчиваются.desktop
расширением и следуют этому базовому формату:Эта запись запускает программу, вызывая
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
Путь будучи символическую ссылку , а не обычный файлВ этих случаях у программистов нет другого выбора, кроме как использовать обходной путь, такой как удаление абстракции символической ссылки или прямая ссылка на исполняемый файл. Ни один из них не требуется самой спецификацией записи рабочего стола.
источник
.desktop
файлы для одного и того же приложения как в, так~/.local/share/applications/
и в/usr/share/applications/
. Первый файл переопределяет второй, даже если в нем не указан значок.Окно может быть сопоставлено только с приложением, если свойство WM_CLASS было установлено. Для этого в X11 вы используете:
Вам нужно передать указатель на структуру XClassHint с полями 'res_name' и 'res_class'.
источник
У меня было несколько проблем с 16.04, включая неактивные значки, и иногда тачпад становился ошибочным (Acer V15 nitro), а центр программного обеспечения (возможно, и другие значки) не открывался из значка (только из команды терминала). Я нашел рекомендацию где-нибудь удалить и переустановить программное обеспечение GNOME. С тех пор, как я это сделал, вся система стала на 100% стабильной, больше не выделяет серые значки и работает отлично. Поначалу это выглядело страшно, когда я перезагрузился после этого изменения - много системных сообщений при перезагрузке - так что делайте это на свой страх и риск.
источник