We should simply support session managers
We kind of do, we handle `SIGTERM` and shutdown cleanly when received. In the usual case, the 10 seconds or whatever that `shutdown` gives, should be enough time to save everything and finish closing. I think on modern systemd systems, it additionally sends `SIGHUP` and gives 90 seconds by default[citation needed], which would should be lots of time for network shares and such, even with a slow link. If this code isn't working, we should probably fix that first.
It's GTK3-only isn't it?
AFAIK it is.
GTK3 only is fine IMO.
It is not. GTK+2 is still the runtime used for Windows, Macos, and by default for the source release. Given that it would probably require fairly invasive changes to some of the code, I don't think it would be the kind of thing we want to guard-out using `#ifdef` stuff all over the place for GTK+2. I could be wrong though, maybe it would be simple enough to abstract it out with a our own GeanyApplication class that can adapt to the GTK+ version.
Does it support multiple instances? I think it doesn't, at least not by default
If you mean independent processes, you could probably get it to do that, but I believe the main operating mode is that it supports multiple main/top-level windows, which in well encapsulated code bases is effectively the same thing (minus the process isolation).
People might also get annoyed by adding a dependency on DBUS, and AFAIK it isn't well supported and is effectively disabled for GtkApplication for Windows.