Разработка апплета mate-panel, минимальный рабочий пример

Вопрос или проблема

Чтобы разработать аплет mate-panel, я изучаю примеры. Пакет mate-panel содержит (в подкаталоге libmate-panel-applet/) файлы

  1. test-dbus-applet.c и
  2. org.mate.panel.TestApplet.mate-panel-applet.desktop.in.

Компиляция

./configure --datadir=/usr/share && make 

генерирует исполняемый файл test-dbus-applet (в подкаталоге libmate-panel-applet/.libs) и org.mate.panel.TestApplet.mate-panel-applet. Интуитивно, я копирую последний в /usr/share/mate-panel/applets/, изменяя (строку с расположением) следующим образом:

Location=/home/abc/share/mate-panel/libmate-panel-applet/.libs/test-dbus-applet

Щелчок правой кнопкой мыши по панели и выбор Добавить на панель показывает Тестовый DBus аплет, как и ожидалось. Метаданные обновляются (dconf dump /org/mate/panel/objects/ | grep -C 2 TestApplet перечисляет аплет), но аплет не виден на панели. В чем проблема?

Ответ или решение

Разработка applet для mate-panel предполагает некоторые сложности, особенно когда дело касается обеспечения его корректного отображения и интеграции в панель. Рассмотрим вашу ситуацию детально и шаг за шагом разберемся, почему ваш applet "Test DBus Applet" не отображается на панели, хотя и присутствует в списке добавляемых элементов.

Теория

Для начала, важно понять, как mate-panel взаимодействует с appletами. Mate-panel использует специальные applet файлы (.desktop-файлы), которые содержат информацию о местоположении исполняемого файла applet, его идентификаторе и других параметрах. Эти файлы должны быть правильно размещены и сконфигурированы, чтобы applet мог быть корректно добавлен и отображен на панели.

Основные компоненты, необходимые для успешного отображения applet:

  1. Исполняемый файл: Ваш applet должен быть компилирован в исполняемый файл и размещен в той директории, на которую ссылается ваш .desktop-файл.
  2. .desktop-файл: Этот файл должен быть правильно настроен, включая указание полного пути к исполняемому файлу applet.
  3. Правильная регистрация applet: Applet должен быть зарегистрирован в системе, чтобы панель могла его распознать.

Пример

Согласно предоставленной информации, вы скомпилировали applet и получили два ключевых файла:

  • test-dbus-applet: исполняемый файл, расположенный в libmate-panel-applet/.libs.
  • org.mate.panel.TestApplet.mate-panel-applet.desktop.in: .desktop-файл, который вы скопировали в /usr/share/mate-panel/applets/.

Вы правильно указали расположение исполняемого файла в .desktop-файле:

Location=/home/abc/share/mate-panel/libmate-panel-applet/.libs/test-dbus-applet

Однако, отображение applet на панели зависит не только от наличия исполняемого файла и его упоминания в .desktop-файле, но и от соблюдения всех необходимых условий для интеграции.

Применение

Проверьте следующие моменты, чтобы выяснить, почему applet не отображается:

  1. Правильность путей: Убедитесь, что указанный путь в .desktop-файле абсолютно соответствует расположенному исполняемому файлу. Обратите особое внимание на точный синтаксис спецсимволов и пробелов.

  2. Формат .desktop-файла: Проверьте наличие и правильность всех полей в .desktop-файле. Основные поля включают:

    • Type=Application
    • Name=Test DBus Applet
    • Exec=/home/abc/share/mate-panel/libmate-panel-applet/.libs/test-dbus-applet

    Возможно, также потребуется указать другие параметры, такие как NoDisplay=false для повышения вероятности отображения.

  3. Права доступа: Проверьте права доступа на исполняемый файл и файл .desktop. Они должны быть указаны как исполнимые:

    chmod +x /home/abc/share/mate-panel/libmate-panel-applet/.libs/test-dbus-applet
    chmod +x /usr/share/mate-panel/applets/org.mate.panel.TestApplet.mate-panel-applet
  4. Журнал ошибок: Просмотрите системные журналы для выявления ошибок, возникающих при запуске applet. Откройте терминал и введите:

    journalctl -xe

    В этих журналах можно обнаружить сообщения, указывающие на проблему с загрузкой applet.

  5. Перезагрузка сервиса панели: После изменений в .desktop-файлах и их расположении, перезапустите Mate Panel:

    mate-panel --replace &

    Это действие обновляет все текущие applet и может помочь в решении проблемы отображения.

  6. Декларация в schemas: Проверьте использование конфигурационных файлов GSettings или DConf для определения схем applet. Это может быть сделано через команду:

    dconf dump /org/mate/panel/objects/ | grep -C 2 TestApplet

    Убедитесь, что все требуемые параметры правильно настроены и не вызывают конфликты.

Если после выполнения всех вышеперечисленных проверок applet все еще не отображается на панели, рассмотрите возможность возникновения ошибок в самом коде applet. Иногда внутренние ошибки и недочеты в исходном коде applet могут препятствовать его корректному запуску и отображению.

Надеюсь, это поможет вам в успешной интеграции вашего applet в mate-panel. Настройка applet всегда требует внимания ко всем деталям, особенно если ваш опыт в этой области ограничен. Удачи в дальнейшем развитии!

Оцените материал
Добавить комментарий

Капча загружается...