Гид по технологиям

Как создать ярлыки для AppImage и tarball-приложений в Linux

• 7 min read • Linux • Обновлено 10 Dec 2025
Ярлыки для AppImage и tarball в Linux
Ярлыки для AppImage и tarball в Linux

Рабочий стол с ноутбуком, книгой и плакатом с надписью

В Linux многие приложения распространяются не в виде DEB/RPM, а как автономные исполняемые файлы — AppImage или распакованные tarball. Такие файлы запускаются без «официальной» установки, поэтому система не создаёт записи в меню и не интегрирует их в панель задач. В этом руководстве показано, как вручную интегрировать такие приложения в рабочее окружение, чтобы они вели себя как привычные установленные программы.

Важно: инструкции ориентированы на современные окружения рабочего стола, которые следуют спецификациям freedesktop.org (GNOME, KDE, XFCE и другие). Никаких сторонних менеджеров пакетов мы не используем — только пользовательский уровень (~/.local).

Почему это работает — короткое объяснение

.desktop-файлы — это стандартизированные описатели приложений. Рабочая среда читает их и создаёт записи в меню, иконки, а также умеет связывать запущенные окна с ярлыками через поле StartupWMClass. Чтобы значок объединялся с открытыми окнами, нужно указать правильный WM_CLASS (или wmclass на Wayland/GNOME).

Краткое определение: WMClass — строковый идентификатор окна приложения, используемый оконным менеджером для связывания окон с ярлыком.

Содержание

  • Пошаговое руководство
    • Показать скрытые файлы и папки
    • Найти WMClass приложения (X11 и Wayland)
    • Создать .desktop-файл — шаблон и пример
    • Обработка пробелов и номеров версий
  • Проверка и отладка
  • Альтернативы и инструменты для автоматизации
  • Чек-листы и критерии приёмки
  • Частые ошибки и их исправление
  • Примеры и готовые сниппеты

Шаг 1: Показать скрытые файлы и папки

Пользовательские ярлыки хранятся в:

/home/username/.local/share/applications

Откройте файловый менеджер и включите показ скрытых файлов (обычно опция «Показать скрытые файлы» в меню — значок с тремя полосками или комбинация Ctrl+H). В корне домашнего каталога появится папка .local. Перейдите .local → share → applications. Если папки нет, создайте её вручную.

Файловый менеджер Nautilus с включённой опцией

Файловый менеджер Nautilus выделяет опцию

Шаг 2: Найти WMClass приложения

Чтобы значок приложения объединял открытые окна под одной иконкой в панели, нужно знать WMClass приложения.

На X11

  1. Запустите ваше приложение (AppImage или исполняемый из tarball).
  2. В терминале выполните:
xprop WM_CLASS

Курсор превратится в прицел. Кликните по окну приложения — в терминале появится строка формата:

WM_CLASS(STRING) = "appname", "AppName"

Запомните второе значение в кавычках (обычно это то, что нужно вставить в StartupWMClass).

Рабочий стол с терминалом и окном приложения Bitwarden

На Wayland (GNOME)

Wayland не поддерживает xprop. В GNOME используйте Looking Glass:

  1. Нажмите Alt+F2, введите lg и нажмите Enter.
  2. Перейдите на вкладку Windows.

Там перечислены открытые окна с полем wmclass. Запишите его значение и используйте в StartupWMClass.

GNOME Shell Looking Glass с вкладкой «Windows»

Примечание: в других окружениях для Wayland инструментов может не быть; иногда приходится полагаться на последнее значение WM_CLASS под XWayland или проверять документацию приложения.

Шаг 3: Создание .desktop-файла

Откройте любой текстовый редактор и вставьте шаблон. Сохраните файл как ApplicationName.desktop в ~/.local/share/applications/.

[Desktop Entry]
Type=Application
Name=ApplicationName
GenericName=ApplicationType
Icon=/home/Username/.local/share/applications/ApplicationIcon.extension
Exec=/home/Username/ApplicationDirectory/ApplicationExecutable.extension
Terminal=false
Categories=ApplicationSubCategory;ApplicationCategory;
Keywords=Keyword1;Keyword2;Keyword3;
StartupWMClass=ApplicationWMClass

Пояснения по ключевым полям:

  • [Desktop Entry] — идентификатор файла как ярлыка.
  • Type — обычно Application.
  • Name — имя приложения, отображаемое в меню.
  • GenericName — краткое описание типа (например, “Текстовый редактор“).
  • Icon — путь к файлу иконки (PNG или SVG). Можно положить иконку в ~/.local/share/icons/ или в ту же папку, где лежит исполняемый файл.
  • Exec — команда запуска приложения. Указывайте полный путь или используйте wrapper-скрипт.
  • Terminal — true для консольных приложений, false для GUI.
  • Categories — используйте категории freedesktop.org, чтобы приложение появилось в нужном разделе меню.
  • Keywords — слова для поиска.
  • StartupWMClass — значение WMClass, найденное на предыдущем шаге.

Пример для Bitwarden AppImage (путь — папка Загрузки):

[Desktop Entry]
Type=Application
Name=Bitwarden
GenericName=Password Manager
Icon=/home/adam/Downloads/Bitwarden.png
Exec=/home/adam/Downloads/Bitwarden-22.6.2-x86_64.AppImage
Terminal=false
Categories=Security;System;
Keywords=Bitwarden;Crypto;Passwords;Security;
StartupWMClass=bitwarden

Сохраните как: /home/adam/.local/share/applications/bitwarden.desktop

После этого Bitwarden появится в меню и его можно закрепить в доке:

Ubuntu с Bitwarden в доке и в меню приложений

Дополнительные советы по Exec и правам

  1. Сделайте AppImage исполняемым:
chmod +x /home/adam/Downloads/Bitwarden-22.6.2-x86_64.AppImage
  1. Если приложение требует рабочий каталог, добавьте поле Path=/home/adam/Downloads

  2. Если нужно передать параметры, используйте Exec с ними: Exec=/home/adam/приложение %u

  3. Для обработки пробелов в путях берите путь в кавычки в Exec и Icon:

Exec="/home/Username/Application Directory/Application Executable.extension"
Icon="/home/Username/Application Directory/Icon File.png"
  1. Обёртка-скрипт: если приложение сложно запускать напрямую (переменные окружения, предварительная подготовка), создайте скрипт /home/username/bin/run-myapp.sh, сделайте его исполняемым и укажите Exec=/home/username/bin/run-myapp.sh.

Пример wrapper:

#!/bin/sh
cd /home/username/AppDir
export MYAPP_CONFIG=/home/username/.config/myapp
./MyAppExecutable "$@"

Обработка версий и масок

Если исполняемый файл содержит номер версии в имени и обновляется часто, KDE поддерживает символ * (звёздочка) в Exec для подстановки. Пример:

Exec=/home/Username/ApplicationDirectory/ApplicationExecutable-v*.extension

GNOME не поддерживает wildcards в .desktop-файлах; в GNOME проще переименовать исполняемый файл (убрать версию) или использовать wrapper-скрипт с фиксированным именем.

Проверка и отладка

Если приложение не отображается или не запускается из меню:

  • Убедитесь, что .desktop-файл имеет корректный синтаксис и кодировку UTF-8.
  • Проверьте права: файл .desktop не обязательно должен быть исполняемым, но сам исполняемый файл (AppImage) должен иметь bit +x.
  • Проверьте Exec: полный путь и имя файла должны быть верными.
  • Убедитесь, что StartupWMClass совпадает с тем, что вернул xprop или Looking Glass.
  • Перезапустите сессию рабочего стола (выйдите и зайдите снова) или выполните:
update-desktop-database ~/.local/share/applications || true

(Не все окружения используют эту команду, но она полезна для обновления локальной базы .desktop.)

Частые ошибки и их решения

  • Приложение запускается, но значок не объединяется с его окнами: проверьте StartupWMClass — часто нужны строчные/прописные буквы.
  • Меню не видит новое приложение: проверьте синтаксис .desktop, особенно присутствие строки [Desktop Entry] и Type=Application.
  • Иконка не отображается: используйте абсолютный путь к PNG/SVG или положите файл в ~/.local/share/icons и укажите имя без расширения.
  • Приложение требует терминала: установите Terminal=true.

Альтернативы и автоматизация

Если вручную не хочется управлять множеством AppImage, есть инструменты:

  • AppImageLauncher — интегрирует AppImage в систему, создаёт .desktop и папку в ~/Applications.
  • desktop-file-install — утилита для установки .desktop с проверками.
  • appimaged — демон, который автоматически регистрирует AppImage при запуске.

Эти инструменты экономят время, но ручной подход даёт тонкий контроль и подходит для любых tarball/неформатных пакетов.

Чек-лист перед распространением ярлыка среди пользователей

Для создателя пакета или администратора:

  • Проверен полный путь Exec и Icon.
  • Исполняемый файл имеет +x.
  • StartupWMClass верный (проверено xprop/Looking Glass).
  • Categories выбраны корректно.
  • Присутствует GenericName и Keywords для поиска.
  • Протестировано закрепление в панели/доке в целевом DE.

Ролевая разбивка:

  • Пользователь: создать ~/.local/share/applications, сохранить .desktop, сделать AppImage исполняемым.
  • Системный администратор: при необходимости установить .desktop в /usr/share/applications для всех пользователей.
  • Поставщик ПО: включить информацию о StartupWMClass в документацию приложения.

Критерии приёмки

  1. Запуск приложения из меню — выполняется.
  2. Значок отображается в меню и в доке.
  3. Запущенное окно объединяется с ярлыком одного приложения (активный пин/группа).
  4. Поиск по ключевым словам находит приложение.
  5. Иконка выглядит корректно на разных масштабах дисплея (рекомендуется SVG).

Примеры и сниппеты

Простой .desktop для графического приложения:

[Desktop Entry]
Type=Application
Name=MyApp
GenericName=Utilities
Icon=/home/username/.local/share/icons/myapp.svg
Exec=/home/username/Apps/MyApp.AppImage
Terminal=false
Categories=Utility;
Keywords=myapp;tool;utility;
StartupWMClass=MyApp

Если путь содержит пробелы (пример с кавычками):

Exec="/home/username/Applications/My App Folder/MyApp.AppImage"

Wrapper-скрипт + .desktop:

# /home/username/bin/run-myapp.sh
#!/bin/sh
cd "/home/username/Applications/My App Folder"
./MyApp.AppImage "$@"

.desktop:

[Desktop Entry]
Type=Application
Name=MyApp
Exec=/home/username/bin/run-myapp.sh
Icon=/home/username/Applications/My App Folder/myapp.png
Terminal=false
StartupWMClass=MyApp

Когда это может не сработать

  • Окружение рабочего стола не соблюдает freedesktop стандарты — редкие кастомные DE могут игнорировать ~/.local/share/applications.
  • Приложение запускает дочерние процессы с другими WM_CLASS — тогда ярлык не будет объединять все окна.
  • Wayland-специфические ограничения: некоторые инструменты для поиска wmclass недоступны вне GNOME.

Быстрый сценарий отладки (Runbook)

  1. Проверьте, запускается ли AppImage вручную из терминала.
  2. Выполните xprop WM_CLASS и сохраните значение; для Wayland — используйте lg в GNOME.
  3. Создайте .desktop в ~/.local/share/applications/ с StartupWMClass.
  4. Убедитесь, что AppImage +x; если нет — chmod +x.
  5. Перезапустите сессию или выполните update-desktop-database.
  6. Если окно не объединяется — протестируйте различные варианты WMClass (в одном приложении может быть несколько).

Небольшая таблица совместимости (ориентир)

  • GNOME (X11): xprop работает, .desktop поддерживается
  • GNOME (Wayland): Looking Glass для wmclass, .desktop поддерживается
  • KDE Plasma: xprop работает, wildcard в Exec поддерживается, .desktop поддерживается
  • XFCE: похож на X11, .desktop поддерживается
  • Сторонние окружения: поведение может отличаться

Заключение

Создание пользовательских .desktop-файлов — надёжный способ интегрировать AppImage и распакованные tarball-приложения в вашу систему. Процесс включает показ скрытых файлов, определение WMClass, создание корректного .desktop с Exec, Icon и StartupWMClass, а также учёт нюансов пробелов и версий. Для массового управления рассмотрите AppImageLauncher или автоматизацию через системные средства.

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

Дополнительная быстрая шпаргалка (cheat sheet):

  • Путь к ярлыкам пользователя: ~/.local/share/applications/
  • Сделать AppImage исполняемым: chmod +x path/to/app.AppImage
  • Узнать WMClass (X11): xprop WM_CLASS -> клик по окну
  • GNOME Wayland: Alt+F2 → lg → Windows
  • При пробелах: берите Exec и Icon в кавычки

Конец руководства.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро