Distribution

I’ve read about various package types for distribution, but ended up very confused… not too au fait with bash/shell commands

I read about .desktop files as a way to get the app to show an icon, but can’t get that to work either in Ubuntu… the app remains resolutely generically icon’d
I can manually apply an icon, but after zipping and extracting, that information is lost.

I do seem to be able to zip the app, libs, and resources folder, then unpack in Ubuntu, and run the app sucessfully. (off topic… zipping the folder is fast, Tar.gz takes forever)

So Im hoping that a zip file will be a reasonable start for distribution.
What’s the right process to get Linux to show the app with a custom icon?

Here is my .desktop file (Linux Mint):

[Desktop Entry]
Name=iLetter
Encoding=UTF-8
Comment=Email client
GenericName=iLetter B200
Keywords=Internet;email
Terminal=false
Type=Application
Categories=Office;Internet
Icon=/usr/local/bin/iLetter/iLetter-128.png
Exec=/usr/local/bin/iLetter/iLetter

The png file is a 128x128 version of the icon I add to the actual app in the IDE.

Where have you tried putting the .desktop file?

Edit: I couldn’t remember where the .desktop file goes, but it looks like it’s supposed to be:

~/.local/share/applications

For Linux distribution, I asked about using snap or flatpak a while ago. I didn’t really get any helpful answers. When I was with Xojo, I built the deb and rpm installer scripts, but there are supposedly better ways these days. But all the guides I’ve found assume you’re distributing source code that will be built on the user’s machine. So I’m definitely going to be watching this thread for any new insight.

After much reading, I think Snap is ‘best’ for the end user, but frankly setting that up seems to reply on a server and service I cant control.
So I’m planning to use zip files.

With Linux apps it really depends on the distribution(s) your users are using.

Snap is Ubuntu’s preferred solution, however, many of the Ubuntu derivatives such as Mint, elementaryOS etc do not ship snap out of the box.

Flatpak is more widely available out of the box.

The alternative is AppImage and it is more like the macOS drag drop deployment.

Deb/rpm is the ‘older’ method but if you know which distributions your users are using you can create builds specifically for them.

The biggest issue is which libraries and their versions are available on a distribution and compiling for the version available. Each of the above aim to solve this in different ways. There isn’t really a best way it’s all down the personal preference.

Place file in /usr/share/applications/yourapp.desktop
But you need to create a DEBIAN control file as well.