Le 28/07/2017 à 13:43, David Barnes a écrit :
Until this different behavior with 2 instances of your program is fixed, it isn't worth my chasing this.
It's highly likely the difference is simply that lxterminal is a single process application and thus that when it is already open calling it simply messages the existing instance to open a new window and returns immediately. Just like Geany, gnome-terminal, GEdit, and countless other applications do in the common case.
And the problem at hand IIUC is that you cannot run a build command that returns immediately yet has some things in background. And indeed, I'm afraid it's not possible in the current situation, because Geany waits on the child (on purpose, as it's supposed to be a build tool and wants to read the output and more or less control the child); and that whatever you do the shell it launches will wait on any child before quitting (yes, even if you use "&", because of job control). Unless I'm missing something somewhere, I see 2 solutions:
- have an option in Geany not to wait on the child, e.g. a general-purpose command launcher (I started a plugin for that kind of things, but never had time to get it to a really usable point yet -- it would be easy to make a dumb one though). - have a command that does return immediately and somehow still starts a new process. To achieve that, you probably need a daemon somewhere, or be able to communicate with your desktop shell if it can do that for you.
Or of course, have the single process application be started initially somewhere outside Geany (e.g. launch a lxterminal window before starting Geany).
Regards, Colomban