A Hook to Delegate the Display Naming of Notes (to Plugins)

Use case or problem

Obsidian currently largely requires that you give each note a name (filename).
Given the amount of notes that I write, it truly doesn’t make sense for me to be coming up with titles for each and every one of them.

One of my overall goals in note-taking is to remove all barriers to the actual capturing of my thoughts.

I’m a fan of quickly jumping into the writing of a new note without a lot of forethought/planning.

Like other systems (like zettelkasten), that leads me to have standardized/generated filenames (ex. timestamps). I already have plenty of plugins which help with that.

I never have to stop to come up with a filename or come back to write one later for my notes. I simply create a new one, it gets the standard filename.

Also, via other popular plugins, I can properly/automatically set frontmatter, etc in the note which gives more useful information than a simple filename.

However there is NO way to dynamically produce a display/searchable name for a file/note.

There is plenty of data in my notes (frontmatter + metadata) which could be used to create an ephemeral display/search name.

Proposed solution

What would be amazing is if Obsidian provided some kind of hook which community plugins or users could implement which would allow for something like the following

function namer(TFile file) {
    return "some name";
}

The output of the function implementing the hook would be used in all aspects of the UI, the search(maybe like an alias), etc

By exposing the TFile, defined function could have full access to the frontmatter, metadata, etc

Imagine the billions of possible naming schemes that people could come up with.

In my case, I might (either manually or via other plugins) add frontmatter for things like “speaker”, “place”, “topic”, “series”, “person”, “category”, etc.

I could generate a name like “Afternoon notes with Jim”, “Journal Entry at 4:00pm”, “Info Note last Tuesday”, etc. (Keep in mind that this function could return different values over time for the same file). Ex. I have my templating or quick edit plugins generate a new note for a class/speech I’m watching. At first it will say"Class notes at 3:52pm." , then maybe tomorrow it says “Class notes yesterday afternoon” and then in the future it might say “Class notes last March” or “Class Notes on 2025/03/08”.

I could imagine more technical users just writing a function to implement the hook themselves, but also plugins could provide great implementations or UIs to define the behavior, etc.

This is a feature that so many existing community plugins could benefit from if it were available for them to hook into.

Current workaround

Right now, I make use of the fabulous plugin GitHub - snezhig/obsidian-front-matter-title: Plugin for Obsidian.md which is the CLOSEST thing for right now. The author of this plugin has done an amazing job, but in my opinion, the concept behind this is powerful and yet simple enough that it should be implemented in Obsidian core.

That way no manual manipulation of the UI has to happen at render time, but rather the application would allow you to delegate the responsibility of getting the display/search name of a file…

Again, the implementations of the hook should be left up to the users and community plugins. However, this feature would give 1st class support from Obsidian core to the users of Obsidian to be able to have files be called and searched by useful names within the context of their own note taking systems.

Summary

  1. Users and plugins should have the power to choose by which name a note/file is displayed and searched in all parts of Obsidian
  2. This would prevent community plugins from having to manually manipulate core UI after the fact in order to accomplish a similar effect.
  3. A core Obsidian provided hook which plugins can register for would give that power over to the Obsidian community and its users.