Question: I have created a simple xulrunner app and it works great when invoked from command line.

```
clain@desktop:~$ xulrunner /home/clain/myapp/application.ini

```

The problem is that I need to keep the terminal open while the app is running. is there a way I can launch the app with a desktop shortcut / desktop entry?

I have tried to make a desktop entry file like below but when running it I got the error "Invalid desktop entry file: '/home/clain/Desktop/myapp'"

```
[Desktop Entry]
Version=1.0
Encoding=UTF-8
Name=MyApp
GenericName=MyApp XulRunner
Exec=xulrunner /home/clain/myapp/application.ini
TryExec=xulrunner /home/clain/myapp/application.ini
Terminal=false
Type=Application
MimeType=text/xml;application/xhtml+xml;application/x-javascript;application/x-php;application/x-java;text/x-javascript;text/html;text/plain;

Name[en_IN]=MyApp
Comment[en_IN]=Standalone MyApp SSB

```

I am running on Lubuntu 14.04 LTS (Trusty Tahr)

Answer: 
You have a couple of options.

You could either run from the graphical "Run Command" - the equivalent of `Windows` + `R`. You can also find this in the start menu on Windows.

On Ubuntu, you use `Alt` + `F2` to open this:

[![](https://i.stack.imgur.com/mWot0.png)](https://i.stack.imgur.com/mWot0.png)

And on lubuntu it is "Menu" -> "Run".

And then run the command

```
xulrunner /home/clain/myapp/application.ini

```

graphically, without a terminal being needed.

---

Your second option is to run in a terminal, but unlink it from the terminal with the `&` character, like so:

```
xulrunner /home/clain/myapp/application.ini &

```

this will start it as a separate process. Here is an example with Gedit:

[![](https://i.stack.imgur.com/nBhDO.png)](https://i.stack.imgur.com/nBhDO.png)

As you can see, I can run another command without affecting Gedit. It will keep running. If I was to not use the `&` the terminal would be attached. Closing the terminal gives this message:

[![](https://i.stack.imgur.com/ZgiRR.png)](https://i.stack.imgur.com/ZgiRR.png)

And of course if I do close it Gedit will stop. If I use the `&`, there is 
no active process so the terminal can just be closed.

---

Finally, if you do really need a desktop shortcut, you could use this `.desktop` file.

```
[Desktop Entry]
  Version=1.0
  Encoding=UTF-8
  Name=MyApp
  Exec=xulrunner /home/tim/xulrunner/application.ini
  Terminal=false
  Type=Application

```

I've cut out the unnececary parts which, so this may work. Add in the line `Icon = /path/to/iconname.svg` to give it an icon.

Also note that you can simply put an icon is `~/.icons` or `/usr/share/icons`. Then if your icon name is "MyApp.svg" just use the line `Icon = MyApp`.

If you still want the "TryExec" line, which isn't needed, A.B.'s answer explains why you do.
The entry `TryExec` is wrong and that's the reason for your error message:

> 
> Invalid desktop entry file: '/home/clain/Desktop/myapp'
> 
> 
> 

The definition for `TryExec` is

> 
> Path to an executable file on disk used to determine if the program is
>  actually installed. If the path is not an absolute path, the file is
>  looked up in the $PATH environment variable. If the file is not
>  present or if it is not executable, the entry may be ignored (not be
>  used in menus, for example).
> 
> 
> 

Use

```
TryExec=xulrunner

```

because

```
xulrunner /home/clain/myapp/application.ini

```

**isn't** an executable file. It's an executable with a parameter.