2

I am often opening exwm buffers by running async-shell-command but unfortunately these buffers always get named *EXWM*. It would be great if when I ran async-shell-command 'firefox the buffer that gets created would be named firefox.

3
  • 1
    I don't use EXWM, but async-shell-command accepts extra optional parameters. The second parameter is the name you want for the buffer with the results. Commented Dec 14, 2020 at 22:38
  • @darcamo: Please consider posting that as an answer. Commented Dec 15, 2020 at 17:07
  • please note that I am seeking a complete elisp function. Commented Dec 15, 2020 at 20:29

1 Answer 1

0

something like this could work...

(defun async-shell-to-buffer (cmd) (interactive "sCall command: ") (let ((output-buffer (generate-new-buffer (format "*async:%s*" cmd))) (error-buffer (generate-new-buffer (format "*error:%s*" cmd)))) (async-shell-command cmd output-buffer error-buffer))) 

then it's possible to call (async-shell-to-buffer "firefox")

4
  • this behaves exactly the same for me as async-shell-command Commented Dec 16, 2020 at 0:35
  • in the *Buffer List* i get *async:firefox* and *error:firefox* so might be something else exwm is doing? Commented Dec 16, 2020 at 2:51
  • maybe try rename-buffer in a function advising exwm-manage--manage-window looks like that's where it's creating new buffers... Commented Dec 16, 2020 at 2:52
  • I'd copy this from the example config; it sets the name to a I'd expect (feel free to choose a different keybinding): github.com/ch11ng/exwm/blob/… Commented Jan 5, 2023 at 6:22

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.