As I mentioned in my last blog post, I spent the last weeks working on tags. Though, just to be clear from the beginning, general tags will probably not make it into the next versions of Nautilus. At the time I found out that this feature should not be included, I already had some of the work done, so I’ll explain below what I accomplished even if it’ll not be part of the next releases.
From what I understood, the issue with general tags is that it would add another layer of organization, as it would serve a similar purpose to folders. To some extent I understand this decision, but still, I think that even so, tags would be useful to some users, because for tags the file location doesn’t matter and you can also use colors.
General tags are stored in the tracker database using nao:Tag. In the time I worked on tags I mostly worked on the backend, so I have implemented a tag manager which does all the queries asynchronously, except for getting all existing tags and favorite files, which are queried at start up. Other actions that can be done with the tag manager are: adding/deleting a tag, getting what tags some files have or getting files that have a certain tag.
Besides that, I also got to implement a dialog which edits the tags of the selection, being able to create a new tag, add an existing tag or deleting a tag. The video below shows how it looks like. This is just a design that I came up with and there’s definitely room for improvement. Though, if in the end we decide that general tags should be a feature of Nautilus, we’ll have the mockups of Paulo who did some nice design for this.
Instead of using general tags we decided that it would be useful to have Favorite files, which is like a tag, but focused on a single case.
The UI for favorite files is a bit different. In the list view, there is a star icon which can be toggled making/unmaking files favorite. Also, the favorite files can be accessed from the sidebar which will have an item for this, opening a location which shows all the favorite files.
The tag manager is also used for the favorite files, using the nao:predefined-tag-favorite tag for them. Nautilus keeps the urls and the tracker ids of the favorite files cached, so that there won’t be any unnecessary queries when navigating through directories. This cache is updated using Tracker Notifier which emits a signal whenever a change occurs, like starring/unstarring a file.