easysession

Homepage: https://github.com/jamescherti/easysession.el

Author: James Cherti

Updated:

Summary

Easily persist and restore your editing sessions

Commentary

The easysession Emacs package is a lightweight session manager for Emacs that
can persist and restore file editing buffers, indirect buffers (clones),
Dired buffers, the tab-bar, and Emacs frames (including or excluding the
geometry: frame size, width, and height). It offers a convenient and
effortless way to manage Emacs editing sessions and utilizes built-in Emacs
functions to persist and restore frames.

With Easysession.el, you can effortlessly switch between sessions,
ensuring a consistent and uninterrupted editing experience.

Key features include:
- Minimalist design focused on performance and simplicity, avoiding
  unnecessary complexity.
- Quickly switch between sessions while editing without disrupting the frame
  geometry, enabling you to resume work immediately.
- Save and load file editing buffers, indirect buffers/clones, Dired buffers,
  windows/splits, the Emacs frame (including support for the tab-bar).
- Helper functions: Switch to a session (i.e., load and change the current
  session) with `easysession-switch-to', load the Emacs editing session with
  `easysession-load', save the Emacs editing session with `easysession-save'
  and `easysession-save-as', delete the current Emacs session with
  `easysession-delete', and rename the current Emacs session with
  `easysession-rename'.

Installation from MELPA:
------------------------
(use-package easysession
  :ensure t
  :custom
  ;; Interval between automatic session saves
  (easysession-save-interval (* 10 60))
  ;; Make the current session name appear in the mode-line
  (easysession-mode-line-misc-info t)
  :init
  (add-hook 'emacs-startup-hook #'easysession-load-including-geometry 102)
  (add-hook 'emacs-startup-hook #'easysession-save-mode 103))

Usage:
------
It is recommended to use the following functions:
- (easysession-switch-to) to switch to another session or (easysession-load)
  to reload the current one,
- (easysession-save-as) to save the current session as the current name or
  another name.

To facilitate session management, consider using the following key mappings:
C-c l for switching sessions with easysession-switch-to, and C-c s for
saving the current session with easysession-save-as:
  (global-set-key (kbd "C-c l") 'easysession-switch-to)
  (global-set-key (kbd "C-c s") 'easysession-save-as)

Links:
------
- More information about easysession (Frequently asked questions, usage...):
  https://github.com/jamescherti/easysession.el

Dependencies