Как добавить ярлык программы .appimage в лаунчер?

Об этом уже спрашивали, но предоставленный ответ больше не действителен.

2 ответа

В этом есть несколько частей.

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

chmod 755 your-AppImage-file

Другая часть этого сообщения сообщает вашей системе, где найти файл AppImage. Когда вы запускаете что-то из своего графического интерфейса, не предполагайте, что среда настроена так же, как когда вы запускаете их из терминала. В частности, KDE не запускается .bashrc во-первых, поэтому любые настройки, которые он любит добавлять $HOME/bin к вашему PATH не было сделано.

Я храню все свои файлы AppImage в $HOME/Containersкоторого нет в моем PATH, поэтому Linux не может их найти по умолчанию. Итак, я мог либо добавить этот каталог в свой PATH, либо указать его при запуске AppImage. Я выбираю последнее.

Как только эта проблема будет решена, все, что вам нужно сделать, это добавить запись в программу запуска для запуска AppImage. Он должен быть настроен на запуск абсолютного пути к вашему файлу AppImage.

Вторая проблема заключается в том, что многие используемые мной AppImages включают номер версии в имена файлов. Когда они обновляются (иногда автоматически, сами по себе), это нарушает пункт меню, указывающий на старое имя. Вместо того, чтобы вручную редактировать свое меню каждый раз, когда это происходит, я написал вспомогательный скрипт, чтобы справиться с этим, найдя для меня AppImage.

Это должно быть сохранено в файле в каталоге в вашем PATH, например $HOME/bin и установить как исполняемый.

#!/bin/bash
## app_launch 
## Launch an AppImage with a variable name
## Copyleft 06/10/2019 - Joseph J Pollock - JPmicrosystems
## Usage: app_launch <unique-name-substring>
## FIXME: arg may not have embedded blanks

##source $HOME/bin/bash_trace
cd "$HOME/Containers"  ## Where all my AppImages live
##find . -iname \*$1\*.AppImage  ## debug
real_name="$(find . -iname \*$1\*.AppImage)"
##echo "real_name = [$real_name]"

count="$(echo "$real_name" | wc -l)"
if (( count > 1 ))
then
  echo "Found more than one possible AppImage"
  exit 1
fi

if [[ ! -x "$real_name" ]]
then
  echo "Can't find an executable AppImage for [$1]"
  exit 1
fi

./"$real_name"

Я использую это в пункте меню:

app_launch electrum %U

Уловка здесь состоит в том, чтобы выбрать строку ("electrum" в приведенном выше примере), которая уникальна для желаемого имени файла appImage, но не меняется от выпуска к выпуску.

%U не является обязательным, но см. Примечание ниже.

Когда вы впервые настраиваете запись в меню для нового AppImage, вы должны запустить app_launch с терминала в первый раз, потому что, если что-то пойдет не так, он выдает сообщения на консоль, и я не потрудился сделать их сообщениями графического интерфейса, так что вы выиграли не вижу их при запуске скрипта из вашего меню / пусковой установки.


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

%f - a single file name
%F - a list of files; use for applications that can open several local files at once
%u - a single URL
%U - a list of URLs
%d - the folder of a file to open
%D - a list of folders
%i - the icon
%m - the mini icon
%c - the caption

У меня есть несколько сценариев bash, которые принимают имя файла в качестве аргумента. У меня они есть в моем меню, и они также установлены как параметры типа файла в моем файловом менеджере, которые предлагаются, когда я щелкаю правой кнопкой мыши значок файла в моем файловом менеджере. Когда я это делаю, файловый менеджер заменяет%f именем файла, который я только что щелкнул, чтобы мой сценарий знал, как работать с этим файлом.

Я нашел быстрый способ сделать это, следуя совету из этой статьи: linuxconfig.org

Короче говоря, когда у вас есть .AppImageфайл (и сделали его исполняемым, если это еще не так) и логотип приложения (может быть png, svg и т. д.), вы создаете файл с именем, заканчивающимся на .desktop, например: fancy_app.desktopсо следующим содержанием:

      [Desktop Entry]
Name=Fancy App
Comment=Does this and that
Exec=/home/username/path/to/the/fancy_app.appimage
Icon=/home/username/path/to/the/app-logo.png
Terminal=false
Type=Application
Categories=Something;
Keywords=something;more;

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

Некоторые соглашения, которые я нашел удобными:

  • вы можете сохранить файлы .desktop в /home/username/.local/share/applications
  • вы можете сохранить логотипы приложений в /home/username/.local/share/icons/hicolor/32x32/apps

Надеюсь, это поможет!

Другие вопросы по тегам