Skip to content

Instantly share code, notes, and snippets.

@ffevotte
Created December 19, 2013 20:19

Revisions

  1. ffevotte created this gist Dec 19, 2013.
    30 changes: 30 additions & 0 deletions gistfile1.el
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,30 @@
    ;;; Desktop
    (setq desktop-save 'ask)
    (defvar desktop-base-dir "~/.emacs.d/desktops/"
    "Base directory for desktop files")

    (defun desktop--set-frame-title ()
    (setq frame-title-format
    (list (concat "%b - Emacs ["
    (file-name-nondirectory (directory-file-name desktop-dirname))
    "]"))))

    (defun desktop-load (name)
    (interactive
    (list
    (completing-read "Desktop name: "
    (remove "." (remove ".." (directory-files desktop-base-dir))))))
    (desktop-change-dir (concat desktop-base-dir name))
    (desktop--set-frame-title)
    (desktop-save-mode 1))

    (defun desktop-create ()
    (interactive)
    (when (or (not (boundp 'desktop-dirname))
    (null desktop-dirname))
    (let ((name (read-from-minibuffer "Desktop name: ")))
    (setq desktop-dirname (concat desktop-base-dir name))
    (make-directory desktop-dirname 'parents)))
    (desktop-save desktop-dirname)
    (desktop--set-frame-title)
    (desktop-save-mode 1))