As apparent from the answer of Zany_Zachary suggested, launchers in
/usr/share/applications are available for all users. Launchers under
~/.local/share/applications are available for the current user only. When the launcher is in these places, it will be picked up by your desktop menu or launcher. The location
/usr/share/applications is a directory in use by the software management system APT of the operating system, so, although it would work, you should not place your custom
.desktop files there. Instead, use the folder
/usr/local/share/applications. That folder does not exist by default on Ubuntu, so you may need to create it first.
This is how "global" from your title is most readily understood. However, in your question, you suggest that under "global" you understand also something as "portable", i.e., it should continue to work even if the icon or app changed location. Still, you have to obey the conventions of the operating system where to place your icon or executable. So there is no such thing as a "global"
.desktop launcher that keeps working irrespective of where you place icon or executable.
There are limits in this "portability". For one thing, the name of the icon or from the executable cannot change, because the name is hardcoded in the
.desktop file. However, you can omit the path from the
.desktop file, but then, you have to place icon and executable in specific places searched by the operating system.
The icon is defined in the
.desktop file on the
If you only provide the name of the icon (without the extension), the operating system will search
~/.local/share/icons first, and then search the system wide icon directories mostly under
/usr/local/share/icons. A graphics file with
.svg extension in one of these folders will be picked up by the menuing system. If no corresponding graphic file is found, the system will revert to a default fallback icon.
The executable is defined in the
.desktop file on the
Also here, the system will search predefined paths for an executable a the matching name if no full file path is provided. You can see the folders and their order in which they are searched with the
echo $PATH command.