I am using xfce4-terminal on Arch Linux with Geany 1.31-1. I have my Terminal tool path set to xfce4-terminal -e "/bin/sh %c" and I have a command bound to Super + T exo-open --launch TerminalEmulator When I have a simple C program compiled and press "Run or view the current file" in Geany with the Execute command "./%e" the program runs in an xfce4-terminal window and prints the standard trailer ending in "Press return to continue". If I then use my Super + T shortcut while focused on the terminal window or not to open a new terminal window, the window opens so now I have two terminals, one of which was not created by Geany. Pressing the "Run or view the current file" button (which is now a stop sign instead of gears) again closes both terminal windows. However, if I create the other terminal window first by doing Super + T and then click the gear button in Geany, the gear button does not change. I haven't ever looked at Geany's code, but I think this might be caused by finding the terminal process to watch by using pgrep or similar, but because the child process actually running the program has not fully started it finds the existing one and waits for it to close. I assume this event is monitored by having the Geany wrapper script send SIGUSR1 or something like that. And presumably the stop button uses killall or similar thus accidentally killing all terminals. There's a pretty good chance that's totally wrong though :p.
If an xfce4-terminal is already running then trying to run another instance will instead open a new tab in the existing terminal instance and return immediately and does not wait. This is the same as Geany does by default.
Because the command therefore returns immediately the gears never have time to visibly change to the stop sign before the program is finished and they return to the gears.
Pass the `--disable-server` option to `xfce4-terminal` to bypass the single-instance feature.
Ah that makes sense thank you. I didn't really expect xfce4-terminal to use a single instance by default like eg Firefox and Geany. So this can just be solved by adding `--disable-server` to the terminal tool option, but could it also be solved by having Geany close the Geany wrapper script instead of the terminal?
I don't think there's a straightforward (and especially cross-platform) way for Geany to know the grandchild process of the shell that gets run by the terminal.
BTW, you can also have build commands run directly in the builtin terminal inside Geany, and also disable the run script (not needed since the terminal is permanently open). Personally I find this much more ergonomic.
![screenshot_2017-08-24_15-16-34](https://user-images.githubusercontent.com/181177/29691314-688ba42a-88df-11e7...)
Closed #1585.
@codebrainz It would be nice if the split view could contain VTE in one of these two parts. Executing in VTE in such a (vertically) small space is inconvenient.
@tvrbanec `Menu->Edit->Preferences->Interface->Interface->Message window->Position->Right` gives full window height.
@elextr Thanks! That's it.
github-comments@lists.geany.org