.desktop в изменяющийся AppImage

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

Я скачал Cursor, AI-редактор, в формате AppImage, а затем создал файл .desktop для удобного запуска.

Однако ярлык вскоре становится непригодным, так как AppImage обновляется до новой версии и имя файла изменяется (например, номера сборки меняются в “cursor-0.42.5-build-24111460bf2loz1-x86_64.AppImage”).

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

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

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

Проблема с .desktop-файлом для AppImage

Когда вы создаете .desktop-файл для AppImage, вы указываете конкретное имя файла, например:

[Desktop Entry]
Type=Application
Name=Cursor
Exec=/path/to/cursor-0.42.5-build-24111460bf2loz1-x86_64.AppImage
Icon=/path/to/icon.png
Terminal=false

Однако при обновлении приложения ваш .desktop-файл становится неработоспособным, так как имя файла меняется (например, на cursor-0.42.6-build-3521563edbf3-x86_64.AppImage).

Решение проблемы

  1. Создание скрипта для замены имени файла: Один из подходов к решению этой проблемы заключается в создании простого Bash-скрипта, который будет находит актуальное имя AppImage-файла и запускать его. Вот пример такого скрипта:

    #!/bin/bash
    APPIMAGE_DIR="/path/to/directory/"
    APPIMAGE_NAME=$(ls $APPIMAGE_DIR/cursor-*-x86_64.AppImage | sort -V | tail -n 1)
    exec "$APPIMAGE_NAME"

    Этот скрипт ищет все AppImage-файлы с желаемым префиксом в указанной директории и выбирает последний по версии.

  2. Обновление .desktop-файла: Вам нужно изменить .desktop-файл, чтобы он запускал скрипт вместо конкретного файла AppImage. Исправленный .desktop-файл будет выглядеть следующим образом:

    [Desktop Entry]
    Type=Application
    Name=Cursor
    Exec=/path/to/launch_cursor.sh
    Icon=/path/to/icon.png
    Terminal=false

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

Обзор альтернативных методов

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

    ln -sf /path/to/cursor-0.42.5-build-24111460bf2loz1-x86_64.AppImage /path/to/cursor-latest.AppImage

    Тогда в .desktop-файле просто укажите путь к cursor-latest.AppImage.

  • Проверка наличия автоматических обновлений: Некоторые AppImage-пакеты поддерживают автоматические обновления. Убедитесь, что функция обновления включена, что позволит вам избежать этих проблем в будущем.

Заключение

Использование AppImage-файлов в Linux предоставляет вам свободу, но требует некоторых усилий для поддержания эффективности ваших ярлыков. Применение скриптов или символических ссылок поможет вам легко справляться с изменениями имен файлов. Выберите подходящий для вас способ, чтобы каждый раз без лишних усилий запускать необходимое приложение.

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

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