如何为AppImage创建桌面快捷方式?

我想为Inkscape AppImage创建桌面快捷方式。但是我遇到了一些问题,因为我没有所有的MimeTypes,也不清楚如何在桌面快捷方式中运行这种应用程序。
有人知道我该如何实现这样的功能吗?
3个回答

你可以手动操作,或者按照这里描述的方式进行操作:将AppImage文件注册为桌面应用程序
既然你想要手动操作,那么你可以这样做。
  1. 下载官方的Inkscape AppImage
  2. 将其设置为可执行文件,运行:chmod +x inkscape.AppImage
  3. 将其移动到适当的路径,例如~/.local/bin
  4. 提取AppImage,运行inkscape.AppImage --appimage-extract;一个名为squashfs-root的目录将在AppImage提取的目录中创建。
  5. 进入目录squashfs-root,并将桌面启动器org.inkscape.Inkscape.desktop复制到~/.local/share/applications;然后编辑桌面启动器,将其指向AppImage的路径,即Exec=$HOME/.local/bin/inkscape.AppImage
  6. 删除squashfs-root目录。
注意:AppImage文件名不一定要有.AppImage扩展名;系统会知道它是什么。如果图标没有显示出来,那么你使用的图标主题缺少org.inkscape.Inkscape文件。你也可以编辑桌面启动器,使用图标主题提供的任何图标。

1然后编辑桌面启动器,将其指向AppImage的路径。这是你需要编辑的Exec行。 - GMaster
1如果~/.local/share/applications目录不存在,应该创建吗?Icon=路径也需要更新吗?在删除squashfs-root目录之前,应该将图标复制出来吗?有没有什么我可以做的,使任意应用程序显示右键"固定到启动器"选项? - user643722
1@user643722 1) 是的,如果您修改了任何桌面启动器或安装了添加本地桌面启动器的软件,例如Chrome网络应用程序,那么该目录将存在。2) 除非Icon=中的路径指向AppImage内部的路径,否则不会存在。3) 不会,除非您想使用AppImage内部的PNG图像而不是您正在使用的图标主题提供的图像。4) 我猜这取决于您使用的桌面环境。我正在使用Plasma,可以右键单击以固定桌面启动器。 - Uri Herrera
我认为最后,你需要运行update-desktop-database ~/.local/share/applications/来更新桌面数据库。 - undefined

首先,确保它是可执行的:chmod u+x Inkscape.AppImage 然后,您可以按照以下方式格式化您的桌面文件:
[Desktop Entry]
Name=InkScape
Exec=/path/to/appimage.AppImage
Icon=Inkscape
Type=Application
Categories=GTK;GNOME;Utility;

谢谢,我会尝试的。但是关于MIME类型呢? - AtomX
图标没有显示在应用栏中。 - AtomX
1要在应用程序栏中显示应用程序,请将.desktop文件放置在/usr/share/applications目录中。关于MIME类型,我不是完全确定。 - Zany_Zachary1
不,我的意思是Inkscape官方图标,我认为脚本在寻找应用程序的真实图标时出了一些问题。因此,它显示未知应用程序的默认图标。 - AtomX
尝试找到Inkscape官方图标,并手动设置路径。如果你无法做到这一点,你总可以从互联网上下载图片。 - Zany_Zachary1
你可以将一个图标放入~/.local/share/icons/hicolor/256x256/my_icon.png,然后设置一个相对路径到这个图标:Icon=my_icon - James Bond

这是对我有效的方法。

  1. inkscape.org下载Inkscape-xxx.AppImage

  2. 将其复制到/opt/inkscape/文件夹并将其重命名为Inkscape.AppImage

  3. 使其可执行chmod u+x Inkscape.AppImage

  4. 下载inkscape-logo.svg文件并将其复制到/opt/inkscape/

  5. 创建一个新文件~/.local/share/application/inkscape.desktop

并添加以下内容。

[Desktop Entry]
Name=Inkscape
Exec=/opt/inkscape/Inkscape.AppImage %u
Icon=/opt/inkscape/inkscape-logo.svg
Comment=Draw Freely
Type=Application
Terminal=false
Encoding=UTF-8
Categories=Utility;
StartupNotify=true
StartupWMClass=org.inkscape.Inkscape

注意:`StartupWMClass=org.inkscape.Inkscape`非常重要,可以将运行的实例与`.desktop`启动器关联起来。此外,在`Exec`字段的末尾使用`%u`参数是为了在“打开方式”应用程序列表中列出该应用程序。
要找到应用程序的StartupWMClass条目,请按照以下步骤进行操作:
1. 对于wayland,请使用looking-glass。 2. 对于xorg,请在终端中运行`xprop | grep WM_CLASS`,然后单击您的应用程序窗口。