Обычно вы не должны этого делать.Как правило, если ваше приложение ведет себя по-разному в зависимости от среды рабочего стола, это будет неприятным сюрпризом для любого пользователя, который переключается между ними.
Альтернатива
Использование команд, не зависящих от DE, таких как xdg-open
.Преимущества:
- Вам не нужно писать логику самостоятельно (xdg-utils уже сделал это)
- Более удобный для пользователя.Это следует за фактическими предпочтениями пользователя;многие пользователи используют один DE, но предпочитают некоторые приложения из другого DE.
- Поддерживает другие DE, такие как XFCE, LXDE, Unity и т. д.
Например, вместо открытия URL-адресав Firefox или Konqueror в соответствии с запущенным в настоящий момент DE передайте URL-адрес на xdg-open
, чтобы открыть его в предпочтительном приложении пользователя.(Пользователь может быть пользователем Chromium.) Не кодируйте nautilus
или dolphin
для GNOME и KDE;вместо этого откройте путь, используя xdg-open
.
Аналогично, для других форм взаимодействия с DE попробуйте использовать спецификации Freedesktop , вместо того, чтобы пытаться угадать, что DE работает.Существуют стандарты для перемещения файлов в корзину , добавления апплетов в системном трее и добавления файлов в список «Последние файлы», среди прочих.