Procedure for creating a custom launcher icon, that runs your script or application, in GNOME on FreeBSD.

How to create a user only desktop launcher icon in GNOME.

In the following example, a custom launcher icon for Signal will be created.

$ cd .local/share/applications
$ nano signal.desktop
[Desktop Entry]
Name=Signal
Exec=/compat/ubuntu/opt/Signal/signal-desktop --no-sandbox
Terminal=false
Type=Application
Categories=InstantMessaging;
$ chmod 644 signal.desktop

How to create a system wide desktop launcher icon in GNOME.

If you want a system wide desktop launcher icon, then create it in the system shared directory.

# cd /usr/local/share/applications
# nano signal.desktop
[Desktop Entry]
Name=Signal
Exec=/compat/ubuntu/opt/Signal/signal-desktop --no-sandbox
Terminal=false
Type=Application
Categories=InstantMessaging;
# chmod 644 signal.desktop

More about GNOME.

Install and run Signal desktop application on FreeBSD, How to import a GNU Privacy Guard (GPG) public key into email client and How to sign and encrypt email with The GNU Privacy Guard (GPG) by myself.