activities

Homepage: https://github.com/alphapapa/activities.el

Author: Adam Porter

Updated:

Summary

Save/restore sets of windows, tabs/frames, and their buffers

Commentary

Inspired by Genera's and KDE's concepts of "activities", this
library allows the user to select an "activity", the loading of
which restores a window configuration into a `tab-bar' tab or
frame, along with the buffers shown in each window.  Saving an
activity saves the state for later restoration.  Switching away
from an activity saves the last-used state for later switching back
to, while still allowing the activity's initial or default state to
be restored on demand.  Resuming an activity loads the last-used
state, or the initial/default state when a universal argument is
provided.

The implementation uses the bookmark system to save buffers'
states--that is, any major mode that supports the bookmark system
is compatible.  A buffer whose major mode does not support the
bookmark system (or does not support it well enough to restore
useful state) is not compatible and can't be fully restored, or
perhaps not at all; but solving that is as simple as implementing
bookmark support for the mode, which is usually trivial.

Integration with Emacs's `tab-bar-mode' is provided: a window
configuration or can be restored to a `tab-bar' tab or to a frame.

Various hooks are provided, both globally and per-activity, so that
the user can define functions to be called when an activity is
saved, restored, or switched from/to.  For example, this could be
used to limit the set of buffers offered for switching to within an
activity, or to track the time spent in an activity.

Dependencies