Add a settings boolean
“Use H1 header instead of file name” (or Use first not empty line) that will display files main Header instead of the filename in each possible situation:
Link autocompletion - display Headers on the list and fill link with [[filename|H1 Header]]
Placeholder click filled with [[filename|H1 Header]]
There is clearly a demand for this functionality for each user (I am one of them) that want to use UIDs instead of filenames. People just have their reasons. In my opinion using Main Header as “filename” in the whole system is the easiest solution that will satisfy both sides.
Current workaround (optional)
Currently there is no workaround for this, there is one plugin front matter title that tries to do that and almost accomplishes it, but still, not all places are covered.
You can use the Filename Heading Sync plugin to achieve this functionality. It will keep the first heading of your note as the filename in sync. It also works to make the filename the first heading of your note.
Yes, I described this solution in the workaround section. But the plugin does not handle all situations. Still in autocomplete and search view and other places filenames are displayed instead of Title.
Why this functionality cant be added to the core application, as clearly seen there are several requests for UID handling?
I would also really (really) like to see this model supported as a first-class thing in Obsidian. I have a database primarily in Bear, for which I want to use Obsidian as a secondary tool. I can export the Bear database to a folder of Markdown files which almost entirely works, but the normalization of Bear titles (arbitrary strings) to filenames (much more restricted) breaks everything. A much cleaner model would be a folder where filenames are just note UIDs, but the file metadata (YAML frontmatter) encodes the title. I can rewrite links to the form [[UID|Title]] on export, but quick-open and autocomplete totally fail in this world since there are no human-readable filenames.