3 New Features for a Modern OS

For months now, I have been thinking about features that I think should be part of a modern operating system. Some of these features are included in application software today, but for a variety of reasons, would be much more powerful if present at the operating system level. Here are 3 of them.

1. Document linking and tracking

Anyone who uses a tool like Obsidian knows about the power of linking between notes. One of the great features of a tool like Obsidian is not the ability to link to other notes in my vault, but rather Obsidian’s ability to keep the links updated when documents are moved around or renamed within a vault. It takes a load off my mind. I can rename a file and not worry that the links that point to the file will break. Obsidian handles management of all of that linking behind the scenes.

I would love to see this type of linking moved to the operating system level so that I could take advantage of it with any type of document anywhere on my computer. Suppose that in my Master Reading List spreadsheet in Excel, I wanted to make a link from a cell with the title of a book I’ve read to a Wolfram notebook with notes on that book. It would be nice to have the ability to create a link from one document to any other document on my filesystem. Depending upon the type of document, it would be great to link to a specific part of the document.

My Master Reading List spreadsheet and a Wolfram notebook with notes from a book.

With such functionality at the operating system level, the operating system could manage the links. If I renamed the Wolfram notebook, the link to that file in my Master Reading List would be automatically updated. Moreover, since the linking would be managed by the operating system, the OS could maintain an index of linking that could be used for things like showing back-links (links that point to the current document) in the file properties of a file.

Obsidian fans might argue that I could get this functionality by making a vault of my entire filesystem. I see two problems with this. First, it would work only for markdown files managed in Obsidian. I couldn’t link from an Excel file to a Wolfram notebook. Second, it seems that linking would become a property of the filesystem, not the application level. In this case, the operating system is a better place for low-level monitoring and updating to take place.

2. Triggers on file events

A tool like Apple Shortcuts is surprisingly useful to create quick automations for repetitive tasks. I have used it for things like starting a workout or taking a nap. I even have a shortcut to ask Siri for the name of my kids’ friends’ parents, in case I forget.

One useful addition to automation at the operating system level would be to expose file event triggers. This would allow various automation to trigger on events that occur on a file. Such events include: creating a file, updating a file, deleting a file, renaming a file, copying or moving a file, etc. One could imagine these events having two properties: “before” and “after.” SQL database developers might recognize this function as analogous to table triggers.

With file event triggers, there are all sorts of automations I could setup. For instance, if I am working on a draft of a blog post, I could setup a file trigger on my file that acts on the “update” event. Each time I update the file, this event would get triggered. The event would allow me to specify whether I want to take an action before the update or after. I might trigger the “before” version to make a backup copy of my draft before the current version is saved to disk.

Of course, much of this functionality is available within application level tools. Scrivener allows for the saving of backups. Obsidian can maintain a list of versions that one can revert to. But there is an elegance and simplicity at extending this capability to the entire operating system.

3. Automatic searching for text within images

A modern OS should have the native ability to search text that appears in images. The latest version of macOS can recognize text in images and extract it, but it does not, so far as my experimentation has shown, search that text in a normal Spotlight search.

For this to work, an operating system first needs the ability to recognize text. macOS can already do this. The reason it can’t search the text as part of a normal operating system search is that it only performs the text extraction in the context of the image. You have to open the image in order for the text to be recognized. To make the text searchable, all images have to be indexed and text extracted as part of the indexing process. Moreover, when an image file changes, it needs to be re-indexed so the search text can be updated.

Searching for text in an image should combine multiple capabilities to be truly powerful. There are already tools that can readily translate from one language to another. When indexing text from images, the operating system should translate the text to the default operating system language. If my instance of macOS has a primary language setting of “English (US)”, then text extracted from images should be translated to English before they are stored in the index. This ensures that when I search files for the word “Airport,” images containing roadsigns in Greek that read αεροδρόμιο will show up in my search results.


This is my wish list for a modern operating system. What’s on your wishlist?

Written on June 27, 2023.

Did you enjoy this post?
If so, consider subscribing to the blog using the form below or clicking on the button below to follow the blog. And consider telling a friend about it. Already a reader or subscriber to the blog? Thanks for reading!

Follow Jamie Todd Rubin on WordPress.com

4 comments

    1. Curtis (and Tyler): Hookmark looks impressive, thanks for the recommendation. There are a few reasons why I think this type of functionality should be native to the OS, however, rather than a separate app. First, from an architectural standpoint, an operation like linking is best done at the kernel level. macOS already implements a Unix symlink capability at the kernel level. I would think a function like this would not add much overhead and could be optimized in threads or run on a separate core.

      Second, and more personal preference, I have a long list of software services that I already pay for. If the software is good, I don’t mind paying. But I’ve gotten a bit tired of having a pay for every new feature I want. (This is, to a large extend, why I often develop my owner scripts and automations.) It is cumbersome to keep track of. And then, there is the inevitability of obsolesce. At least if a function is introduced at the OS level, there is a good chance that it will survive for a while.

      Not all features are appropriate for integration at the OS level, but I think this notion of linking is.

    1. Tyler, thanks for calling Hazel to my attention. I poked around and I’m not sure it does what I described in the post (or perhaps I just described it poorly). Hazel looks like it searches for file or folder attributes and then takes an action for any matches. What I am looking for is lower-lever. I am looking for something that monitors real-time file activity and takes action on specific events. Instead of “take an action on all files matching the filename patter *.docx” in folder “foo”, I’m looking for: “when any file in folder ‘foo’ is modified, take an action.’ Replace ‘modified’ with ‘created’, ‘copied’, ‘moved’, ‘renamed’, ‘deleted’, etc.

      I skimmed Hazel’s documentation and couldn’t find this behavior, but maybe I missed it.

      Also, see my comment above about why I’d prefer these as OS functions instead of separate apps.

Comments

This site uses Akismet to reduce spam. Learn how your comment data is processed.