Activities.el (new package for "workspace" management)

FYI, I’ve added a new activities-switch-buffer command that switches to a buffer associated with the current activity. (Currently it requires using activities-tabs-mode.) Seems to work well. Please let me know what you think.

1 Like

FYI, I just released v0.6 of activities.el: Release v0.6 · alphapapa/activities.el · GitHub


Hi @alphapapa,

looks interesting. me that uses burly and bufler and tab-bar-mode.

thank you for another interesting package.


PS: if only it had a decent name like doing-songthing.el

Hi Benoit,

I think that if you like Burly, you’ll like Activities just as much, if not more. I can’t imagine going back to using Emacs without it now.

And, yeah…I’ll, uh…try to come up with a more…verbose cough I mean, descriptive, name… :wink: LOL

1 Like

I’ve been trying activities for a while and I think that I can move on from perspective (which does not play well with tabs even with perspective-tabs enabled) . I’m constantly changing tabs and the only thing that I required from perspective was the saving and restoring of buffer lists. For context here is the kind of function that I use for changing tabs.

(defun my/switch-to-tab2 ()
  (if (> (length (tab-bar-tabs)) 1)
        (tab-bar-select-tab 2)

Something that I did not find was a command save the current state of an activity (maybe I missed something in the docs). I could only find activities-save-all; a save command could play really well with the revert command.

Other thing that I think could be nice would be some kind of nested activities for testing or debugging (creating them as regular activities would pollute the activities list).

The current state of an activity is automatically saved. It shouldn’t be necessary to do so manually. If you find a contrary case, please let me know.

I’ve thought about that, but it would require a lot of changes to the code, and I don’t know if it would be worth it. With good completion tools like Vertico and Orderless, I don’t have any problem selecting from a large number of activities that have common prefixes in their names. Anyway, feel free to chime in on the relevant discussion on the repo.


The current state of an activity is automatically saved. It shouldn’t be necessary to do so manually. If you find a contrary case, please let me know.

The case that I had in mind was when you do some kind of exploratory programming or debugging and then want to go back to a previous state.
Since saving is a regular activity you can’t go back to a desired state using this approach. This is why I set (setq activities-always-persist nil), to always open an activity in a reasonable, predictable state.

The options that I find for saving an activity is suspending the activity (and then opening it again) or the save-all command which might save some unwanted state in other activities.

You appear to have overlooked that activities have two states: the default and the last-saved. See activities-define and activities-revert, as well as other relevant commands like activities-kill and activities-resume. This should be explained in the manual, e.g. under workflow.