Here is the complete process of what I ended up doing;
$ sudo apt-get install gksu
$ cd /usr/share/applications
$ gksudo gedit ApE.desktop
Then I made the following .desktop file
[Desktop Entry]
Type=Application
Name=ApE
Icon=/home/justin/ApE/ApE.png
Exec=/home/justin/ApE/AppMain.tcl %f
Version=1.0
Comment=A Plasmid Editor
GenericName=Plamid Editor
Terminal=false
X-MultipleArgs=false
Categories=Utility;
StartupWMClass=ApE
StartupNotify=true
From there, I needed to modify the .tcl file by adding the following shebang to that script;
#!/usr/bin/tclsh
Then I made the .tcl script executable;
$ cd /home/justin/ApE
$ chmod +x AppMain.tcl
Then I validated and installed the .desktop with the following commands;
$ cd /usr/share/applications
$ desktop-file-validate ApE.desktop
$ desktop-file-install ApE.desktop
The desktop-file-install command added the following line to the .desktop file;
X-Desktop-File-Install-Version=0.22
Then I needed to do a simple drag-and-drop of the ApE icon in the /usr/share/applications directory to the Unity Launcher, and there it was.
However, while this placed the ApE icon in the launcher, whenever I clicked the ApE icon, it created a question mark icon in the launcher to represent the open window. To alleviate this, I needed to make the StartupWMClass values in agreement. So back in terminal, I ran the following command;
$ xprop WM_CLASS
and then clicked on the open ApE window, which returned the following output;
WM_CLASS(STRING) = "dna_window18", "Toplevel"
So I went back into the ApE.desktop file;
$ cd /usr/share/applications
$ gksudo gedit ApE.desktop
and changed the StartupWMClass value to Toplevel, giving a final ApE.desktop file of
[Desktop Entry]
Type=Application
Name=ApE
Icon=/home/justin/ApE/ApE.png
Exec=/home/justin/ApE/AppMain.tcl %f
Version=1.0
Comment=A Plasmid Editor
GenericName=Plamid Editor
Terminal=false
X-MultipleArgs=false
Categories=Utility;
StartupWMClass=Toplevel
StartupNotify=true
X-Desktop-File-Install-Version=0.22
And that fixed it completely.