I don't leave Emacs often, but sometimes Emacs leaves me.
At moments like these, it's convenient to have a reasonably up to date state of recent files, bookmarks, history variables, etc. saved.
This package contains allows you to execute a function at a regular interval, and then waits for a few seconds of idleness to actually execute the function.
* Installation and usage
Clone the repository and put the package in your =load-path=.
#+begin_src elisp
(use-package persist-state
:ensure nil
:load-path "lisp/persist-state"
:init
(persist-state-enable))
#+end_src
Then, add functions to =persist-state-functions= which should be executed, e.g. to save bookmarks at regular intervals:
The code to generate the table of configuration items was inspired by an idea of [[https://xenodium.com/generating-elisp-org-docs/][Álvaro Ramírez]] (a.k.a. xenodium).