mirror of
https://github.com/lliding/ld-emacs.git
synced 2025-10-13 13:33:04 +00:00
52 lines
1.3 KiB
EmacsLisp
52 lines
1.3 KiB
EmacsLisp
;; -*- coding: utf-8; -*-
|
|
;;; Require:
|
|
(require 'auto-save)
|
|
|
|
;;; Code:
|
|
|
|
(setq desktop-load-locked-desktop t) ; don't popup dialog ask user, load anyway
|
|
(setq desktop-restore-frames nil) ; don't restore any frame
|
|
|
|
(defun kill-unused-buffers ()
|
|
(interactive)
|
|
(ignore-errors
|
|
(save-excursion
|
|
(dolist (buf (buffer-list))
|
|
(set-buffer buf)
|
|
(when (and (string-prefix-p "*" (buffer-name)) (string-suffix-p "*" (buffer-name)))
|
|
(kill-buffer buf))
|
|
))))
|
|
|
|
(defun emacs-session-restore ()
|
|
"Restore emacs session."
|
|
(interactive)
|
|
(ignore-errors
|
|
;; Kill other windows.
|
|
(delete-other-windows)
|
|
;; Kill unused buffers.
|
|
(kill-unused-buffers)
|
|
;; Restore session.
|
|
(desktop-read "~/.emacs.d/")
|
|
))
|
|
|
|
(defun emacs-session-save (&optional arg)
|
|
"Save emacs session."
|
|
(interactive "p")
|
|
(ignore-errors
|
|
(if (equal arg 4)
|
|
;; Kill all buffers if with prefix argument.
|
|
(mapc 'kill-buffer (buffer-list))
|
|
;; Kill unused buffers.
|
|
(kill-unused-buffers)
|
|
;; Save all buffers before exit.
|
|
(auto-save-buffers))
|
|
;; Save session.
|
|
(make-directory "~/.emacs.d/" t)
|
|
(desktop-save "~/.emacs.d/")
|
|
;; Exit emacs.
|
|
(kill-emacs)))
|
|
|
|
(provide 'init-session)
|
|
|
|
;;; init-session.el ends here
|