Tags in Nautilus

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.


Tags in Nautilus

11 thoughts on “Tags in Nautilus

  1. Bastián says:

    The first paragraph made me very sad, really? … Tags in nautilus was always a very requested feature and its function is very different to the use of folders. Even email clients use both systems because their uses are different.
    I hope this work is attached to the main branch or distributed as an extension of Nautilus. I remember before there was one that was deprecated. I really hope that tags are one more feature in Nautilus, I’ve always felt healthy envy of macOS since Finder use tags.


  2. Thanks for your work!
    One question, would it be possible to store the tag information in the file system?
    How would working together on files with other user, or copying them on USB stick work with Tracker?


    1. With Tracker’s current design the tag info stays just on your machine.

      It would be interesting to look at what the Baloo framework offers here — they store extra metadata in xattrs and perhaps they’ve already come up with a way of writing tags to the filesystem that we might be able to reuse.


  3. Adrien Dorsaz says:

    Taking time to think about the user interface before adding blindly features to software is a development way I think really relevant 🙂 Good job for your favorite feature and introducing video !
    After having seen the “favorite” video, I thought about another related feature which could be interesting too: add a column to Nautilus with 1 to 5 stars to simply add a grade to files (with a standardized tag if possible).
    So specialized applications could take advantage to these grades (like Gnome Photos, Gnome Music, …) and Nautilus could add a search criteria like “Files with a grade more than 3”.
    Another idea with your video is that your favorite user interface seems for me a good way to solve the bookmark user interface issue: there’s no need to have a sophisticated animation to explain to the user that the favorite has been well created, since the favorite star becomes black filled and there’s already a place with this stare on the left panel.


  4. When removing favorite items from the “starred” view you should probably include a notification with an undo option. When you are in a directory and you star/unstar you can easily locate the file since it remains in the directory, however when you remove them from the “starred” view they disappear and you might not remember where you have it in the filesystem. Easy usability improvement.


  5. Hello,
    I was looking for generic tags just a few days ago and asking about them around. So I am very excited to read they are on their way. I was trying to work with Tracker GUI directly, but this was very impractical, if not bugged (I opened at least one bug report). That was not usable for day-to-day use, which requires an interaction in Nautilus directly (even though Tracker can still be the backend of course).
    It seems to me you are still wondering whether you should have generic tags (as in your first video) or “Favorites” only (second video). Well favorites are a nice idea for the “simple visual GUI” (a star to click). But please, include the generic tags as well. They are badly needed. 🙂
    The GUI will necessarily be a bit more complicated/advanced than a basic “Star” to click, yet the power associated is just another level. Also I’m sure the GUI can be improved with time.
    Moreover set tags should be visible in the main GUI as well, maybe a new column which may be optionally shown, which is important if we have a long list of files (in your video, it seems we’d have to open the tag edit dialog for every file to see its current tags, but maybe you just haven’t got around to implement the viewing part… I hope that’s what it is!).
    The use case we were facing when we wondered if we could tag files:
    – we have hundreds/thousands of references photos, videos. They are reference data for a movie (http://film.zemarmot.net), not holiday photos or whatever.
    – when we checked an image or video, we want to tag it for easy retrieval later, even though we may not need it now. Favorite too could be a good thing to star the best videos/photos, but being able to add random tags as well (meaningful words) would be extremely helpful when there is a very particular resource in our list.
    – Then we should be later able to search with tags, and see the tags directly in the main file list.
    Current situation: often we see a video, we feel it will be very useful but you don’t need it right away. 2 months later, you want to find it again, you get to this folder filled with images and videos and waste a loooong time finding it again. There is no proper solution with file naming and folder because that’s not a hierarchical organization needed here. And that’s not personal photos where we could just make a selection and delete the rest. Reference data have to be kept, just in case, that’s what they are for (even 2 photos very alike, with an animal who moved just a bit gives us 2 different angles which may both be useful; or none, but that’s life).
    That is our use case, but I’m sure there are a lot other use cases around when people need to search among a lot of data (apart from the basic case, where you simply search through your whole home directory because you just forgot where you stored something).


  6. core bots says:

    The star icons on the right are too big and really disturb the view as the main file icon on the left isn’t the only graphic the eye needs to focus on anymore – a small (even colored) dot would be less distracting than a complex star-shaped outlined icon. Please make “empty” stars visible only on hover so the user can toggle them, keep the “full” stars visible with the starred files all the time and hide them with the unstarred files(so they’re only displayed on when hovering on that row). Design IS important when adding such a big change to the list view (as there only used to be text accompanying the main icon in the list view, until now).


  7. As you know, macOS offers a “tags” feature, and it’s great. I’ve been hoping to see a similar feature offered by a popular Linux file manager, such as Nautilus, for a long time. Guess I’ll keep waiting.

    Some object to your approach because they feel that tags “should be implemented in a file-manager agnostic way.” I don’t know much about the “nao:Tag” approach on which your tags relies. If the developers of other file managers wanted to, couldn’t they use the same “nao:Tag” approach? That is, aren’t you already using a relatively standardized approach?

    In any case, to help overcome objections related to a perceived lack of interoperability, perhaps you could offer a means for exporting a list (perhaps in a simple CSV format) of all files (and paths thereto) that are associated with a given tag.


  8. Personally, I really like your tags approach, and I very much hope to see it added as a natively integrated component of Nautilus.

    But if that’s not possible, as Alejandro asked above, why not as a Nautilus extension?

    Also, have you considered submitting to Caja, or to some other Nautilus fork? Maybe the Nautilus devs would be more willing to accept your tags approach if they saw it being happily used and maintained on a fork.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s