之前已经问过这个问题,但是提供的答案不再有效。
答案1
这有几个部分。
第一个最基本的问题是,就 Linux 而言,AppImage 只是一个可执行二进制程序,和其他程序一样。要实现这一点,您要做的第一件事就是使 AppImage 文件可执行,因为您下载的大多数文件通常都禁用了该权限。
chmod 755 your-AppImage-file
另一部分是告诉您的系统在哪里可以找到 AppImage 文件。当您从 GUI 运行程序时,不要假设环境设置与从终端运行程序时相同。特别是,KDE 不会.bashrc
首先运行,因此它所做的任何自定义操作(例如添加$HOME/bin
到您的 PATH)都尚未完成。
我将所有 AppImage 文件存储在$HOME/Containers
不在我的 PATH 中的目录中,因此 Linux 默认找不到它们。因此,我可以将该目录添加到我的 PATH 中,也可以在运行 AppImage 时指定它。我选择后者。
解决此问题后,您所要做的就是在启动器中添加一个条目来运行 AppImage。它应设置为运行 AppImage 文件的绝对路径。
第二个问题是,我使用的很多 AppImage 的文件名中都包含版本号。当这些文件更新时(有时是自动更新),指向旧名称的菜单项就会被破坏。每次发生这种情况时,我都编写了一个帮助脚本来处理这个问题,而不是手动编辑菜单,而是帮我找到 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,因为如果出现问题,它会向控制台发出消息,而我没有费心将它们制作成 GUI 消息,所以您在从菜单/启动器运行脚本时不会看到它们。
添加菜单项时,您可以添加一些可选参数作为参数。通常您不需要它们,但它们对于更高级的用法很有用。这些在 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 替换为我刚刚单击的文件的名称,这样我的脚本就知道要使用该文件。
答案2
我找到了一种快速的方法,按照这篇文章的建议: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
我希望这能有所帮助!