Параметры настройки менеджера окон fly-wm#

Важно

Документация дорабатывается по мере развития продуктов Группы Астра и по пожеланиям пользователей.

Ваши пожелания и замечания направляйте на почту docs@astralinux.ru

Общие сведения#

Процесс настройки взаимодействия приложения с пользовательской средой Fly (менеджер окон fly-wm — менеджер окон, рабочий стол, классическое меню «Пуск», панель инструментов, переключатель рабочих столов, блокировщик экрана), включает:

  • создание и регистрацию *.desktop-файла (ярлыка приложения),

  • создание *.directory-файла с собственной категорией (для кастомизации ярлыков в меню приложений),

  • настройку ассоциаций MIME-типов (открытие файлов нужным приложением).

Описание функций fly-wmfunc — инструмента редактирования оконного менеджера fly-wm — представлено в статье.

Рабочие каталоги менеджера окон fly-wm (для настройки приложения)#

Системные конфигурационные файлы:

  • /usr/share/fly-wm/shared/ — каталог интеграционных настроек приложений оконного менеджера;

  • /usr/share/fly-wm/shared/flydesktop — размещение в этом каталоге ярлыков (файлов *.desktop) приводит к их немедленному появлению на первых рабочих столах всех пользователей (и наоборот, удаление объекта из каталога ведет к удалению объекта с рабочих столов);

  • /usr/share/fly-wm/shared/flystartmenu — каталог для объектов меню «Пуск» (файлы *.directory — описатель категории меню);

  • /usr/share/fly-wm/shared/flytoolbar — каталог для объектов панели инструментов (файлы *.desktop);

  • /usr/share/mime/packages/ — каталог для XML-файлов регистрации MIME-типов;

  • /usr/share/icons/hicolor — каталог иконок приложения.

Файлы, представленные в каталогах выше, будут применены ко всем пользователям. Пользовательская настройка, заданная в каталоге ~/.config, переопределяет системную настройку.

Примечание

Описанные выше каталоги flydesktop, flystartmenu и flytoolbar задаются переменными окружения FLY_SHARED_DESKTOP_DIR, FLY_SHARED_STARTMENU_DIR, FLY_SHARED_TOOLBAR_DIR. Директории должны быть созданы заранее (если переменная пустая, то используется дефолтный каталог из /usr/share/fly-wm/shared/). После обновления значения переменной необходимо перезайти в пользовательскую сессию. Нежелательно использовать стандартные пути для нестандартных целей.

Предупреждение

В более ранних обновлениях:

  • /usr/share/applications/flydesktop — каталог для объектов рабочего стола;

  • /usr/share/applications/flystartmenu — каталог для объектов меню «Пуск»;

  • каталог для объектов панели инструментов отсутствует.

Использование данных каталогов для настройки собственного ПО в последних обновлениях ALSE не рекомендуется.

Конфигурационные файлы#

.desktop-файл — текстовый файл с расширением .desktop, соответствующий стандарту Freedesktop.org. Он содержит метаданные о приложении и используется для интеграции программы в графические среды рабочего стола Linux. Основные поля .desktop-файла включают:

  • название приложения (Name),

  • команда, запускающая приложение (Exec),

  • рабочая директория, из которой следует запускать команду (Path),

  • иконка (Icon),

  • категория (Categories, например, «Разработка», «Интернет»),

  • список MIME-типов, с которыми может работать приложение (MimeType).

.directory-файл — это специальный файл, описывающий категорию (или подменю) в меню приложений «Пуск». Он используется для группировки .desktop-файлов по логическим разделам. Содержит следующие ключевые поля:

  • Name (отображаемое имя категории, поддерживает локализацию через Name[ru]),

  • Categories (имя, по которому *.desktop-файлы ассоциируются с этой категорией),

  • Comment (краткое описание категории, появляется при наведении),

  • Icon (иконка категории),

  • Type=Directory (обязательное поле, указывающее, что это файл категории).

Категория ярлыка — логическая группа, к которой относится программа, связанная с этим ярлыком. Может использоваться для создания кастомизированной группы в меню Пуск, например, категория «ППО» и входящие в ее состав «SDK ППО», «Информация о версии ППО», «Лицензия ППО», «Справочник ППО» и др.

Совет

Стандартные категории — Инструменты («Utility»), Научные («Education»), Разработка («Development»), Игры («Game»), Графика («Graphics»), Мобильные («Mobile»), Мультимедиа («Multimedia»), Интернет («Network»), Офис («Office»), Параметры («Settings»), Системные («System»).

MIME (Multipurpose Internet Mail Extensions) — стандарт, описывающий типы файлов (обычно по расширению, определяется glob-паттерном) и способы их обработки. В контексте Linux-десктопов MIME-типы используются для определения, какое приложение должно открывать файл определённого типа (в .desktop файле в поле MimeType указываются MIME-типы, с которыми приложение умеет работать).

MIME-файл содержит описание новых или пользовательских MIME-типов, включая:

  • <mime-type type="application/x-myformat"> — объявление типа,

  • <glob pattern="*.myext"/> — сопоставление файла с MIME-типом (задается glob-паттерном, обычно указывается расширение файла),

  • <comment> — описание типа.

Примечание

Редактор меню Пуск и панели быстрого запуска (fly-menuedit) позволяет графически редактировать ярлыки и категории программ.

Интеграция ППО в ALSE#

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

Предупреждение

Данные настройки актуальны для обновления ALSE 1.8.5.

Добавление приложения в меню Пуск#

  1. Создать myapp.desktop файл для приложения myapp:

[Desktop Entry]
Name=My App
Name[ru]=Мое приложение
Exec=/opt/myapp
Icon=myappicon
Type=Application
Categories=Utility;
Terminal=false

Совет

Иконка задается png или svg файлом либо по указанному пути (например, /home/user/myicon.svg), либо с помощью заданного псевдонима (например, если задана ассоциация myappicon с файлом /usr/share/icons/hicolor/scalable/apps/myappicon.svg).

  1. Добавить ярлык в меню (для всех пользователей, требуются права администратора):

sudo mv myapp.desktop /usr/share/fly-wm/shared/flystartmenu

Результат — после добавления файла myapp.desktop в директорию /usr/share/fly-wm/shared/flystartmenu иконка приложения автоматически появится у всех пользователей в меню Пуск.

Примечание

Удаление файла myapp.desktop из директории /usr/share/fly-wm/shared/flystartmenu приведет к автоматическому удалению ярлыка приложения из меню Пуск у всех пользователей.

Совет

Для добавления приложения в меню Пуск от пользователя рекомендуется выполнить графическую настройку из меню Пуск ‣ Настройки меню Пуск ‣ Редактировать меню Пуск

Предупреждение

Пользовательская настройка имеет приоритет над системной. При возникновении ошибок с системной настройкой рекомендуется проверить нет ли конфликта с пользовательскими настройками.

Примечание

При появлении ярлыка приложения в меню Пуск пользователю будет удобно самостоятельно добавить ярлык на рабочий стол, панель инструментов, избранное или автозапуск. Для этого необходимо нажать правой кнопкой мыши на ярлык в меню и нажать кнопку «Добавить».

Создание ярлыка на рабочем столе#

Создать файл myapp.desktop из предыдущего примера в директории /usr/share/fly-wm/shared/flydesktop (для всех пользователей, требуются права администратора).

Результат — после создания файла в директории ярлык автоматически появится на рабочих столах всех пользователей.

Примечание

Удаление файла myapp.desktop из директории /usr/share/fly-wm/shared/flydesktop приведет к автоматическому удалению ярлыка приложения со всех рабочих столов у всех пользователей.

Совет

Для добавления приложения на рабочий стол от пользователя рекомендуется выполнить графическую настройку с рабочего стола: правая кнопка мыши ‣ Создать ‣ Ярлык и заполнить обязательные поля «Имя» и «Команда».

Предупреждение

Пользовательская настройка имеет приоритет над системной. При возникновении ошибок с системной настройкой рекомендуется проверить нет ли конфликта с пользовательскими настройками.

Добавление ярлыка на панель инструментов#

  1. Создать myapp.desktop как в примере выше.

  2. Добавить ярлык на панели инструментов (для всех пользователей, требуются права администратора):

sudo mv myapp.desktop /usr/share/fly-wm/shared/flytoolbar

Результат — файл myapp.desktop появится в каталоге /usr/share/fly-wm/shared/flytoolbar и автоматически появится на панели инструментов всех пользователей (появится в пользовательском каталоге ~/.local/share/applications/).

Примечание

Удаление файла myapp.desktop из директории /usr/share/fly-wm/shared/flytoolbar приведет к автоматическому удалению ярлыка приложения с панели инструментов у всех пользователей.

Совет

Для добавления приложения на панель управления пользователю необходимо выполнить следующие действия: правая кнопка мыши по значку меню Пуск ‣ Настроить панель быстрого запуска ‣ Новый ярлык.

Предупреждение

Пользовательская настройка имеет приоритет над системной. При возникновении ошибок с системной настройкой рекомендуется проверить нет ли конфликта с пользовательскими настройками.

Задание иконки#

Иконка задается файлами png или svg, который необходимо поместить в соответствующую директорию (для png файла — /usr/share/icons/hicolor/<размер>/apps/имя_иконки.png, для svg — /usr/share/icons/hicolor/scalable/apps/имя_иконки.svg):

sudo mv myicon.png /usr/share/icons/hicolor/48x48/apps/myicon.png

Совет

Рекомендуется использовать несколько размеров (16x16, 32x32, 48x48, 64x64, 128x128), но достаточно хотя бы одного — система подберёт ближайший.

Результат — иконка появится в реестре иконок и может быть использована по псевдониму как значок ярлыка.

Настройка ассоциации MIME-типа#

До настройки ассоциации (связи *.xml с *.desktop) необходимо убедится, что *.desktop имеет поле MimeType и находится в ~/.local/share/applications/ (пользовательские приложения) или /usr/share/applications/ (стандартные приложения Astra Linux Special Edition).

Пусть задан файл myapp.desktop:

[Desktop Entry]
Name=My app
Name[ru]=Мое приложение
Exec=/opt/myapp/myapp
Icon=myapplication
Type=Application
Categories=Utility;
Terminal=false
MimeType=application/x-myapp;

Предупреждение

Согласно Freedesktop.org Desktop Entry Specification, поле MimeType должно содержать полные имена MIME-типов в формате type/subtype, где type может быть application, text, video или image, а subtypex-myapp, pdf, png или др. Использование неправильных типов может приводить к ошибкам связывания.

1. Для работы приложения с определёнными файлами (например, *.myapp) необходимо зарегистрировать MIME-тип в системе, создав файл application-x-myapp.xml:

<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
  <mime-type type="application/x-myapp">
    <comment>MyApp Data File</comment>
    <glob pattern="*.myapp"/> <!-- glob-паттерн для файлов, например, config_*.cfg -->
  </mime-type>
</mime-info>
  1. Установить новый MIME-тип в системе (требуются права администратора):

sudo mv application-x-myapp.xml /usr/share/mime/packages/
sudo update-mime-database /usr/share/mime
  1. Связать его с приложением:

xdg-mime default myapp.desktop application/x-myapp

Результат — описанные в mime файлы (заданные glob-паттерном, например, .myapp) открываются системой в заданном приложении. Проверить работоспособность можно, открыв файл new.myapp командой xdg-open new.myapp.

Создание новой категории#

1. Создать папку MyApp с описателем категории .directory (обязательные поля - Type=Directory, Name, Categories) следующего содержания:

Совет

Иконка (icon) должна быть задана предварительно, если используется нестандартная. В примере folder - стандартная иконка каталогов.

[Desktop Entry]
Name=MyApp Tools
Name[ru]=Средства MyApp
Icon=folder
Type=Directory
Categories=MyCategoryName
  1. Скопировать каталог MyApp, содержащий описатель .directory, в /usr/share/fly-wm/shared/flystartmenu (содержат описание стандартных категорий):

sudo mv MyApp /usr/share/fly-wm/shared/flystartmenu

Примечание

Новая категория появится в меню Пуск у всех пользователей.

3. Создать файл MyApp.desktop с новой категорией и добавить его в меню Пуск (если *.desktop с новой категорией был создан до выполнения шагов 1-2, он находился в категории меню «Прочее», а после создания новой категории меню переместится в нее).

[Desktop Entry]
Name=MyApp
Name[ru]=MyApp
Exec=/opt/myapp/myapp
Icon=myapp
Terminal=false
Type=Application
Categories=MyCategoryName;

Примечание

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

Результат — ярлыки приложений (*.desktop) с заданной категорией MyCategoryName отобразятся в меню «Пуск» в новой категории меню.

Предупреждение

Изменение категории в файле *.desktop, уже находящегося в каталоге /usr/share/fly-wm/shared/flystartmenu/, не приведет к перемещению ярлыка приложения в новую категорию меню (даже после ручного обновления оконного менеджера с помощью fly-wmfunc).

Обновление оконного менеджера#

При изменении файлов в /usr/share/fly-wm/shared/ системным администратором обновление происходит автоматически. Ниже приведены команды fly-wmfunc, с помощью которых можно применить изменения вручную.

  1. Обновление стартового меню (применение - после добавления новой категории):

fly-wmfunc FLYWM_CREATE_STARTMENU
  1. Обновление значков на рабочем столе:

fly-wmfunc FLYWM_UPDATE_SHORTCUT
  1. Обновление панели быстрого запуска:

fly-wmfunc FLYWM_UPDATE_TOOLBAR
  1. Перезагрузка графической сессии пользователя без перезагрузки сессии или ОС:

fly-wmfunc FLYWM_RESTART

Предупреждение

Изменение в файлах каталога /usr/share/fly-wm может не привести к изменению даже после выполнения команд выше. Рабочим вариантом является удаление изменяемого файла и последующим его созданием с изменениями.