Как добавить ярлык программы .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
Надеюсь, это поможет!