"mnt/tabs/by-id/*/title.txt" asks your shell to expand a wildcard match, generating a list of files holding the title of each tab. If I were to feed it into a command-line app, I might start running into command length limits.
Would it work better as a "relational database" than a hierarchical tree filesystem? I noticced that "by-id" and "by-title" and "last-focused" are several views into an underlying source of data, and changing one view causes other branches of the filesystem to change automatically. Maybe it could be more cleanly modeled as a relational data store with one row per tab, and columns with different meanings. Then use SQL, or a cleaner notation for relational algebra, to query this interface.
The downside is that you can no longer use command-line utilities that operate on files (find/grep, fd/rg).
/dev/disk and /dev/input both have a bunch of view subdirectories on my Debian box. the idea of a symlink itself suggests denormalization, suggests views, suggests relations, so perhaps we should try to loosen up our mental model of what a file-system is some?
i upvoted because it's an interesting question, but to me i would like good patterns for how to express data & views on the file-system. data goes into databases to die, alas. it remains tragically single consumer, one database one application. not that it has to be, but that's how things usually are. the file system by contrast is exposed system wide, & requires no app configuration or discovery to consume data on it (I guess choosing a file might sort of count?). there are a wide range of command line and gui tools built in to the os for exploring & manipulating the file system.
perhaps we could make a good sql on the file-system plugin, to make sql data more accessible across the system? :)
Would it work better as a "relational database" than a hierarchical tree filesystem? I noticced that "by-id" and "by-title" and "last-focused" are several views into an underlying source of data, and changing one view causes other branches of the filesystem to change automatically. Maybe it could be more cleanly modeled as a relational data store with one row per tab, and columns with different meanings. Then use SQL, or a cleaner notation for relational algebra, to query this interface.
The downside is that you can no longer use command-line utilities that operate on files (find/grep, fd/rg).