I want to create desktop entry for Inkscape AppImage. I'm having some issues because I don't have all MIME types or a clear idea about running that kind of app on desktop entry.
Does anyone know how I can achieve such a thing?
I want to create desktop entry for Inkscape AppImage. I'm having some issues because I don't have all MIME types or a clear idea about running that kind of app on desktop entry.
Does anyone know how I can achieve such a thing?
You can do it manually, or you can do it like it's described here: Registering AppImage Files as a desktop app.
Since you want to do it manually, you can do it like this.
chmod +x inkscape.AppImage
.~/.local/bin
.inkscape.AppImage --appimage-extract
; a directory will be created called squashfs-root
in the directory where the AppImage was extracted.squashfs-root
and copy the desktop launcher org.inkscape.Inkscape.desktop
to ~/.local/share/applications
; then edit the desktop launcher to point to the path of the AppImage, i.e., Exec=$HOME/.local/bin/inkscape.AppImage
.squashfs-root
.Note: The AppImage file name doesn't have to have .AppImage
; the system will know what it is. If the icon isn't displayed, the icon theme you're using is missing the file org.inkscape.Inkscape
. You can also edit the desktop launcher to use whatever icon is provided by the icon theme.
First, make sure it is executable: chmod u+x Inkscape.AppImage
Then, you would format your desktop file like this:
[Desktop Entry]
Name=InkScape
Exec=/path/to/appimage.AppImage
Icon=Inkscape
Type=Application
Categories=GTK;GNOME;Utility;
/usr/share/applications
. I'm not entirely sure about the mime type.
– Zany_Zachary1
Mar 30 '21 at 15:16
~/.local/share/icons/hicolor/256x256/my_icon.png
and then set a relative path to this icon: Icon=my_icon
– James Bond
Feb 12 '23 at 20:00
This is what worked for me.
Download Inkscape-xxx.AppImage
from inkscape.org.
Copy it to /opt/inkscape/
folder and rename it to
Inkscape.AppImage
Make it executable chmod u+x Inkscape.AppImage
Download inkscape-logo.svg file and copy it to /opt/inkscape/
Create a a new file ~/.local/share/application/inkscape.desktop
with the following entries.
[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
Note: StartupWMClass=org.inkscape.Inkscape
is very important to associate the running instance to the .desktop
launcher. Also %u
parameter at the end of Exec
field is to list the application in the open with applications list.
To find the StartupWMClass entry of your application use
xprop | grep WM_CLASS
in terminal and click on your application's windowUsing other answers I created a bash script that automatically extracts PNG icon from appimage and creates a .desktop file.
https://github.com/un1t/appimage-desktop-entry
Usage:
./appimage-desktop-entry.sh /path/to/Example.AppImage
This is the answer that the AppImage documentation gives:
Integrating AppImages into the desktop
AppImages are standalone bundles, and do not need to be installed. However, some users may want their AppImages to be available like distribution provided applications. This primarily involves being able to launch desktop applications from their desktop environments’ launchers. This concept is called desktop integration.
appimaged
appimaged is a daemon that monitors the system and integrates AppImages. It monitors a predefined set of directories on the user’s system searching for AppImages, and integrates them into the system using libappimage.
See also: More information on appimaged can be found in appimaged.
AppImageLauncher
AppImageLauncher is a helper application for Linux distributions serving as a kind of “entry point” for running and integrating AppImages. It makes a user’s system AppImage-ready™.
AppImageLauncher must be installed into the system to be able to integrate into the system properly. It uses technologies that are independent from any desktop environment features, and therefore should be able to run on most distributions.
After install AppImageLauncher, you can simply double-click AppImages in file managers, browsers etc. You will be prompted whether to integrate the AppImage, or run it just once. When you choose to integrate your AppImage, the file will be moved into the directory
~/Applications
. This helps reducing the mess of AppImages on your file system and prevents you from having to search for the actual AppImage file if you want to e.g., remove it.To provide a complete solution for managing AppImages on the system, AppImageLauncher furthermore provides solutions for updating and removing AppImages from the system. These functions can be found in the context menus of the entries in the desktop’s launcher.
See also: More information about AppImageLauncher can be found in AppImageLauncher.
then edit the desktop launcher to point to the path of the AppImage. This is the
– GMaster Dec 26 '21 at 07:33Exec
line you need to edit~/.local/share/applications
directory be created if it doesn't exist? Does theIcon=
path also need updated? Should the icon be copied out of thesquashfs-root
directory before deleting it? Is there anything I can do to make an arbitrary application expose a right-click "pin to launcher" ? – user643722 Dec 03 '22 at 19:18Icon=
is pointing to a path inside the AppImage, then no. 3) No, unless you want to use whatever PNG image is inside the AppImage and not the image provided by the icon theme you're using. 4) I guess that depends on what desktop you're using. I'm using Plasma and can right-click to pin a desktop launcher. – Uri Herrera Dec 06 '22 at 06:54update-desktop-database ~/.local/share/applications/
to update the desktop database. – e3oroush Oct 21 '23 at 11:31.Appimage
from the filename of the executable, otherwise the Xfce app menu would fail with a "not found" error on launch. Xfce 4.18 on Debian. – Douglas Silva Dec 08 '23 at 19:42StartupWMClass
of the desktop file matches the name of the window it launches. – Seth Falco Mar 21 '24 at 22:09sudo update-desktop-database
to register the new.desktop
entry! – Shinebayar G Mar 31 '24 at 07:41