This makes elscreen persistent.
To use this, use customize to turn on elscreen-persist-mode
or add the following line somewhere in your init file:
(elscreen-persist-mode 1)
Or manually, use elscreen-persist-store to store,
and use elscreen-persist-restore to restore.
You can use desktop to restore frames.
When desktop restored frames, elscreen-persist doesn't restore any frame.
The behavior occurs when desktop is enabled and desktop-restore-frames is t(default).
elscreen-persist restores all buffers, so desktop doesn't have to save the buffers.
(setq desktop-files-not-to-save "")
You can use desktop like explained above (it is more simple and quick to setup). Or you
can use it like explained here (a little bit more setup) to use it in conjunction with
e.g. bookmark or
desktop+. So you dont want to get two files on
disk (the desktop-file and the elscreen-file) and you want to save files anywhere on disc.
(defcustom desktop-data-elscreen nil nil
:type 'list
:group 'desktop)
(defun desktop-prepare-data-elscreen! ()
(setq desktop-data-elscreen
(elscreen-persist-get-data)))
(defun desktop-evaluate-data-elscreen! ()
(when desktop-data-elscreen
(elscreen-persist-set-data desktop-data-elscreen)))
(add-hook 'desktop-after-read-hook 'desktop-evaluate-data-elscreen!)
(add-hook 'desktop-save-hook 'desktop-prepare-data-elscreen!)
(add-to-list 'desktop-globals-to-save 'desktop-data-elscreen)
(setq desktop-files-not-to-save "")
(setq desktop-restore-frames nil)