;;; Add the following to your .emacs ;;; (desktop-load-default) ;;; (desktop-read) ;;; (setq desktop-globals-to-save (list 'desktop-missing-file-warning ;; Feature: saving kill-ring implies saving kill-ring-yank-pointer ;; 'kill-ring 'tags-file-name 'tags-table-list 'search-ring 'regexp-search-ring 'register-alist ;; 'desktop-globals-to-save ; Itself! )) ;;; Save some additional variables (mapcar (lambda (sym) (add-to-list 'desktop-globals-to-save sym)) '( coding-system-history command-history compile-history file-name-history grep-find-history grep-history input-method-history minibuffer-history query-replace-history set-variable-value-history shell-command-history )) ;;; auto-truncate to this length (set 'desktop-truncate-length 10) (defun desktop-truncate-vars nil (mapcar (lambda (sym) (condition-case var (desktop-truncate (eval sym) desktop-truncate-length) (error nil))) desktop-globals-to-save)) (add-hook 'desktop-save-hook 'desktop-truncate-vars)