https://github.com/SirCmpwn/sway/issues/1350 is fixed with this.
The commit that change swaygrab to use fork instead of Popen tried to
write to the read end of the pipe in the child branch and exec in the
parent branch.
This commit fixes both of those and closes the write fd after writing,
so convert actually exits.
Increase _POSIX_SOURCE value where needed.
Increase _XOPEN_SOURCE value where needed.
Conditionally link to libcap (only on Linux).
Possibly some trailing whitespace fixes (automatic).
Calling `exit` in sway_terminate prevents sway from correctly shutting
down (freeing data, cleanly terminating the ipc server, etc.).
A better way is to exit straight away if the failure occurs before
`wlc_run` and use sway_abort as usual if it occur when wlc is running.
With this it's possible to run `swaygrab` without a filename argument.
With no filename supplied it will use a default name based on the
current time.
The default file will get the extension `png` for screenshots and `webm`
for video capture.
Using 'flag' results in duplicate code paths for short and long options.
This broke the -q short option in swaymsg, because there was:
{"quiet", no_argument, &quiet, 'q'}
Which will set quiet to 'q' and return 0, not 'q'.