Feedback: Org-roam side buffer revamp

I’m about to start working on the Org-roam side buffer revamp. The current version was hastily designed, largely copying from my prior work using side-windows, and built around the constraints of org-mode. I’d like to not repeat this mistake, and at least have some mocks of the buffer first before diving into building it. For this, I’d like to gather some user feedback. I welcome any pictorial designs/descriptions of what you would like to see.

Here are some of my own pain points:

  1. It is currently impossible to specify what one would like to see in the side buffer. Some people would like to also see forward links. The buffer can also get crowded, and it is difficult to collapse them.
  2. One can only have 1 org-roam side buffer, and only for the currently viewed org-roam file. The side buffer can’t be split as the user desires. Window management with the side-windows is a pain in the ass.

1. Implement time-tested best practices from the Emacs world

Org Agenda is a great idea. The agenda buffer is modular, composable, ‘narrowable’, infinitely customizable. Make org-roam the same - a buffer with so many possible views of different modular units. Backlinks, forward links, unliked refs, n-degree backlinks (links from linked articles and so on), manually defined related links — all of these should be components that are plug and play to the org-roam buffer. These views should be elements that anyone can write and share — essentially creating an extension ecosystem.

The ability to easily define new types of views is the key.

The org-roam window should be a first-class citizen and it should be possible to add as many to the frame with saveable window configs.

2. Incorporate the best achievements of the dozens of Roam clones

I do not have a lot of experience here cause I have not extensively used any of those but I hope people can comment below what features other apps have that org-roam doesn’t.

Caveat: often a highly requested feature can be something for which there exists multiple of Emacs solutions already, and it is not incumbent upon org-roam to reinvent that wheel. Transclusion is a good example. Aside: I think we should create a FAQ for such things.


What I’d love to see is arbitrary tree depth and direction, not just “always one generation backward”. Or even better, the generalization of that idea that I posted as this Github issue.

1 Like

I like this idea, and the thought of making it modular. That to me would probably be key and allow users to customize it however they like. Then you can customize each section to display as much or as little, and control what data you see.

One other thing i’d like to see with the Unlinked refs, and maybe this is something that can be added to this agenda view, something like the bulk-action feature in org-agenda that’ll run through your unlinked refs, like a regex search and replace, cycle between each hit found and ask the user if they want to create a link back to the reference.

Also if the side-buffer showed super-headings, not just backlinks, that would be cool. I just provided more detail and a motivating explanation here.

1 Like

Could the side buffer recognise the currently active org-roam buffer within any frame?

I use org-roam across two monitors and have an emacs frame on each monitor. Currently each frame has to have its own org-roam side buffer in order to display the back links of an active buffer.

The buffer will definitely be modular :smile:

Not sure. The contents of org-roam buffer should already be updated based on the active window, not sure if it’s possible to trigger a redisplay in a separate frame.

Hi Jethro,
Yes, the org-roam buffer does update based on the active window within it’s frame on my system.

Thanks for all your work on org-roam mate. You’ve changed my workflow.

1 Like