I’m wondering if there’s any way to make a variable automatically save its old value, so that I can, e.g., write a minor mode that will automatically restore the old values of variables when it’s deactivated (without having to declare a bunch of -old-value
variables).
Have a look at the approach taken by the
logos.el
package. There’s a section in the manual called Leverage logos-focus-mode-hook.The idea there is that when you enable the
logos-focus-mode
, you’ll often want to change some other minor modes and variables too. But when you disablelogos-focus-mode
, you’ll want those other minor modes to revert to their previous value. The Logos package provides a few convenience functions to remember the previous values, and they are automatically restored whenlogos-focus-mode
is turned off.Perhaps the code for that could be made generic, instead of being coupled to the
logos-focus-mode
?