reddit / emacs

bufferlo: per frame|tab buffer lists

florommel · 2022-04-03 18:19
For those of you who like to keep your buffers separate per frame and per (tab-bar) tabs. [https://github.com/florommel/bufferlo](https://github.com/florommel/bufferlo)
mclearc · 2022-04-04 02:31
Very cool. I actually wrote something similar, which is just going up on Melpa. https://github.com/mclear-tools/tabspaces
florommel · 2022-04-04 10:15
Ah funny, yes that's similar. The main difference seems to be that in tabspaces the workspace management is explicit.
github-alphapapa · 2022-04-04 10:58
Well, that's kind of amusing, a package similar to [Bufler](https://github.com/alphapapa/bufler.el) (which uses a buffalo as its mascot), named "bufferlo." See `bufler-workspace-mode` and `bufler-tabs-mode` for similar functionality. Comparing them: Workspaces in Bufler are generally defined programmatically--the point of Bufler being to save the user from having to define workspaces and manage buffers' workspaces manually--but may also be defined manually with the following command: > Use bufferlo-{clear,remove,bury} to manage the frame/tab-local list. This is much like the command `bufler-workspace-buffer-set`, which sets a buffer's workspace name. A frame can then have its workspace set to any workspace defined in Bufler. The buffer can then be switched to using `bufler-switch-buffer`, offering completion on the current workspace's buffers (or all buffers when called with a prefix). > A buffer is added to the local buffer-list if it is shown in the frame/tab. This is a nice idea, a way to automatically add a buffer to a certain workspace based on the workspace of the frame/tab that it's first shown in. That would make a nice addition to Bufler, a simple hook, and maybe a new auto-grouping predicate. In closing: *Bufler bufler bufler bufler bufler bufler bufler bufler.*
florommel · 2022-04-04 17:33
Nice, bufler looks really powerful. I must admit that I didn't really do a comprehensive search for existing packages - just put together some of the code that I had in my init.el before. In bufler, can a buffer be in more than one workspace? Does bufler support desktop.el? (I am one of its enthusiastic users)
ares623 · 2022-04-04 23:16
Another similar approach to the problem https://github.com/john2x/nameframe
mclearc · 2022-04-04 23:18
Yeah I used to use that package. Great package but I stopped using it when I stopped using perspectives and projectile in favor of the native tab-bar and project libraries.
ares623 · 2022-04-04 23:24
Interesting. I didn't know about tab-bar. I may do the same. I'm trying to cut down on 3rd-party packages
github-alphapapa · 2022-04-05 07:55
> Nice, bufler looks really powerful. I must admit that I didn't really do a comprehensive search for existing packages - just put together some of the code that I had in my init.el before. Please consider contributing any improvements you need to Bufler rather than publishing another, very similar package to MELPA. With over 5,000 packages now, discovery is a real problem for users: they are just as likely to find a less powerful, less mature package and use it as they are to find the more powerful, mature solution. I hear things like this all the time: I point out a package that does something, and they say they have been using a different one that is inferior, because they didn't know that the better one exists, because they searched for a term on MELPA and used the first one they found. > In bufler, can a buffer be in more than one workspace? It's not designed to work that way, but it's theoretically possible. Especially, when I refactor parts of Bufler to use [Taxy](https://github.com/alphapapa/taxy.el), it will be easy to make certain grouping keys non-consuming. See https://github.com/alphapapa/bufler.el/issues/69 > Does bufler support desktop.el? (I am one of its enthusiastic users) `desktop` is not a great solution for restoring buffers, because it generally only works for file-backed buffers. Instead, I wrote [Burly](https://github.com/alphapapa/burly.el) to restore buffers, windows, and frames in mode-specific ways, on-demand using Emacs bookmarks. This is much more flexible and powerful than similar functionality in `desktop`.
fragglestickcar0 · 2022-04-05 11:04
> Please consider contributing any improvements you need to Bufler > rather than publishing another, very similar package to MELPA. That's not how this ever worked. Narcissism, not money, drives this market.
florommel · 2022-04-05 13:58
No panic, I don't have any motivation to bring it to melpa (I mean I had it lying around for half a year, with 3 commits).. just posted this here in case anybody finds it useful. Apart from tht, I don't really see a problem in having multiple similar packages. And contributing to a larger code base often requires much more time and effort than spending half an hour and hacking a small thing (and the latter is also often a bit more fun). When I find the time I'll try bufler and if I have something to contribute I'll be happy to do so. Burly looks interesting. I'll definitely have a look, too.
github-alphapapa · 2022-04-12 16:44
That's surely a large part of it--but if that were all, then we wouldn't even be sitting here talking about Emacs, which many people have collaborated on for decades.
github-alphapapa · 2022-04-12 16:47
> Apart from tht, I don't really see a problem in having multiple similar packages. The only problem is for Emacs users who need a package to do X: when they search MELPA and come up with 12 results, who has time to review them all and discover that some haven't been updated in 7 years, some only do half of what the others do, some are difficult to use, etc. And yesterday someone published Yet Another Package That Does X to MELPA, so, being the newest, the user just picks that one--and so misses the carefully crafted package that does X 10 times better and has been on MELPA for years. > When I find the time I'll try bufler and if I have something to contribute I'll be happy to do so. Thanks, I look forward to it.