Missing support for tab-group / integration with desktop.el
rytswd opened this issue · comments
When saving / restoring tab details using tabspaces-save-session
and tabspaces-restore-session
, tab-group information does not seem to be handled at the moment. I started using desktop.el to save the frame setting instead, which does store the tab setup correctly including tab-group, but I won't get the correct buffer mapping with tabspaces.
What would be the approach I could take to restore all tabs and tab groups, while also keeping the buffers associated to tabs correctly? While both tabspaces-save-session
and tabspaces-restore-session
work pretty well on their own, is there any way to get them to work with desktop.el?
So I actually wrote the save/restore code because it seemed easier than integrating tabspaces with desktop.el. But ideally tabspaces would just bootstrap its session saving/restoring from desktop.el. Unfortunately I'm not sure how to do that (or perhaps I should say, I wasn't sure previously, and I don't have the time right now to revisit it). I'd welcome a pull request for such integration, and that might also help resolve other requests, such as saving shells and other non-file-visiting buffers.
Thanks, it makes sense how it was easier to implement without desktop.el. I'd be tied up for a little while as well, but if nobody else takes it on, I'll try to have a look at this sometime in early 2024 👍
Then, let me dream of this UI for 2025:
TabGroupName | Tab 1 | Tab 2
buffer 1 | buffer 2
tab-bar-group with name of project on the upper left (or Home/Work)
tabs for things I'm working on, like: "Bug 123" | "Spike 321" | "Meetings.org"
tab-line with buffers on current tab: "file 1" | "project cmd"
And everything is saved/restored when I restart. With only this package and emacs built-in ones.
I haven't had the time to look into this, but thought I'd share how I started using https://github.com/alphapapa/activities.el for session handling (with its (activities-tabs-mode)
). Because it's based on bookmark under the hood, tabspaces works with the buffer list for each tab when "activities" command opens buffers (and also processes). I don't get the "tab-group" support, but I can pick and choose a tab which I want to restore / kill which is something I wanted.
I could see the desktop.el integration is still useful for some use case. But I personally got most of what I want from the activities package -- especially when combined with tabspaces, that is 😉