I use desktop-save-mode in order to restore buffers on startup. However, the buffer which is visible immediately after startup is *scratch*, *Messages*, .bbdb, etc. I am not interested in those. Is there a way to have Emacs after a restart in the same buffer state, including ordering, as when it was closed?


I have the following in my equivalent of a .emacs file:

(defun my-bury-star-buffers ()
  "Bury all star buffers."
  (mapc (lambda (buf)
          (when (string-match-p "\\`\\*.*\\*\\'" (buffer-name buf))
            (bury-buffer buf)))
(add-hook 'desktop-after-read-hook #'my-bury-star-buffers)

I don't remember where I got it. You'll need to extend the regex for any other files you want buried (like .bbdb). The non-buried buffers seem to be in the right order.

| improve this answer | |
  • Is it safe to just kill them? – Torsten Bronger Feb 3 '16 at 16:55
  • @TorstenBronger, it's safe to kill the "star" buffers, but not recommended. The *Messages* buffer will just come back next time a message is generated, but you will have lost all messages that happened before. And the *scratch* buffer can be handy, but easily recreated if necessary. – Tad Ashlock Feb 3 '16 at 18:28
  • I thought about it again and I remember that "File xy has recoverable data" messages have been important to me quite often. Thus, I don't feel comfortable with just killing all star buffers. Of course, one could switch your code off if one sees such messages in the minibuffer blinking during start-up and re-start Emacs; but I wouldn't know what annoys more. – Torsten Bronger Feb 6 '16 at 11:48

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.