Subject: bug#18133: Suppressing asynchronous command output

From: martin rudalics <[email-masked]>
Date: Fri, 23 Dec 2016 19:59:23 +0100

> ​I'm not trying to override the user here, I'm just trying to avoid adding
 > another configuration option.​

You change long-standing behavior when you add such an option.  Did
people agree that the buffer should be preferably not displayed?  The
current status is that

   To run COMMAND without displaying the output
   in a window you can configure `display-buffer-alist' to use the action
   `display-buffer-no-window' for the buffer `*Async Shell Command*'.

With your proposal the buffer would not be displayed and the user would
have to delete the ‘display-buffer-alist’ entry to display the buffer.

But if people generally agree that the buffer should not be displayed by
default, you can simply do something like

(display-buffer buffer
		`(,(and (equal (buffer-name buffer) "*Async Shell Command*")
			'display-buffer-no-window)
		  (allow-no-window . t)))

in ‘shell-command’.  This has the same effect without cluttering
‘display-buffer-alist’.

 > It would be nice if the user only had to change one thing to enable hiding
 > the async output buffer until there is output.

But when you add the entry to ‘display-buffer-alist’ the buffer will
already be hidden without any user intervention.

martin