12

I want to create desktop entry for Inkscape AppImage. I'm having some issues because I don't have all MimeTypes or an clear idea about running that kind of app on desktop entry.

Does anyone knows how can I achieve such thing?

AtomX
  • 351
  • 1
  • 3
  • 14

3 Answers3

25

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.

  1. Download the official Inkscape AppImage.
  2. Make it executable, run: chmod +x inkscape.AppImage.
  3. Move it to an appropriate path, like ~/.local/bin.
  4. Extract the AppImage, run inkscape.AppImage --appimage-extract; a directory will be created called squashfs-root in the directory where the AppImage was extracted.
  5. Enter the directory 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.
  6. Remove the directory 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.

Uri Herrera
  • 14,684
  • 24
  • 89
  • 136
  • 1
    > then edit the desktop launcher to point to the path of the AppImage. This is the `Exec` line you need to edit – GMaster Dec 26 '21 at 07:33
  • 1
    Should the `~/.local/share/applications` directory be created if it doesn't exist? Does the `Icon=` path also need updated? Should the icon be copied out of the `squashfs-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:18
  • 1
    @user643722 1) Yes, the directory will exist if you have modified any desktop launcher or have installed software that adds a desktop launcher locally, .i.e, a Chrome web app. 2) Unless the path in `Icon=` 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:54
7

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;
Zany_Zachary1
  • 830
  • 7
  • 25
  • Thanks, I'll try. But what about mime type? – AtomX Mar 30 '21 at 14:53
  • And the Icon isn't displayed in app bar. – AtomX Mar 30 '21 at 15:01
  • 1
    To display the application in the app bar, place the .desktop file in `/usr/share/applications`. I'm not entirely sure about the mime type. – Zany_Zachary1 Mar 30 '21 at 15:16
  • No, I meant the Inkscape official icon, I think the script has some trouble to find the real icon for the app. And instead, it is showing default icon for unknown app. – AtomX Mar 30 '21 at 15:22
  • try to find the inkscape official icon, and set the path manually. If you can't do that, you can always download the picture off the internet. – Zany_Zachary1 Mar 30 '21 at 15:28
  • Yout can put an icon into the `~/.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
0

This is what worked for me.

  1. Download Inkscape-xxx.AppImage from inkscape.org.

  2. Copy it to /opt/inkscape/ folder and rename it to Inkscape.AppImage

  3. Make it executable chmod u+x Inkscape.AppImage

  4. Download inkscape-logo.svg file and copy it to /opt/inkscape/

  5. 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

  1. for wayland use looking-glass
  2. for xorg run xprop | grep WM_CLASS in terminal and click on your application's window
resuser
  • 1
  • 1