Tag, You’re It! How to Manage Files on Linux with TagSpaces
You feel like you’ve tried it all, but nothing seems to work.
I’m talking about productivity advice. There are so many tips on how to organize files, but has it ever occurred to you that those chaotic folders are not your fault? What if your OS is part of the problem?
Of course, users are responsible for establishing a document management system: deciding what to name the files and where to put them. Computers let us organize our digital assets, but this ability is limited by the very system that provides it.
Most modern file managers are based on the traditional desktop metaphor with a hierarchical approach to sorting our files. They conceptualize our real-world experience with physical files: we put a file into a folder, and place it in a filing cabinet. In a hierarchical filesystem, a file can exist only in one folder (just like physical files), which restricts our categorization options. This is where tags can help.
Tag-Based File Management
Tags are content-dependent keywords; metadata that describes the contents of a file. We need them because the world is not one-dimensional, and one file can belong to several categories. A prime example are multimedia files – photos, videos, music – but a simple report from your latest meeting can also require complex categorization (by date, project, topic, client…).
You could “hack” the hierarchical filesystem by symlinking or copying files to different subfolders, but will you really remember where each and every shortcut is? Will you go back and update the shortcuts when you move or delete the original file? The mess gets even worse if you use some kind of version control .
A potential solution is tag-based file management. It can be achieved on several levels, starting with the filesystem itself. Tag-based filesystems for Linux exist, but they’re not particularly popular. Windows Vista was supposed to introduce a similar concept, but it was eventually discontinued.
Another level are various implementations of file-tagging, like databases or specialized applications. They don’t directly affect the filesystem, instead acting like an “overlay” that lets the user index, search, and manage files using tags. You’ve probably heard of the “semantic desktop”. KDE’s Nepomuk and GNOME’s Zeitgeist are frameworks built on this idea, but to the average user they often seem like a resource-hogging nuisance.
So far the only approach that successfully attracts a wide userbase are desktop apps that apply custom metadata to files. There are plenty of those for Windows and OS X: from Windows Explorer alternatives like DirectoryOpus to powerful file managers that let you label files . File managers for Linux offer incredibly useful addons , but tagging is mostly an afterthought. The exception is TagSpaces, which puts tags in the spotlight.
Originally a German project, TagSpaces is best described as “Evernote for your OS”. It can manage files, but you can use it to build a personal wiki, collect research material, preview and edit multiple file formats, and visualise your folders as mind-maps or family trees.
Free to Use, Simple to Start
TagSpaces is an open-source application available for both 32- and 64-bit architectures. If you’re a Windows user, don’t stop reading – TagSpaces is cross-platform, and the Windows version works just like its Linux counterpart. Versions for Android, iOS, and browsers (Firefox and Chrome) function a bit differently, but we’ll focus on the desktop app. You can use TagSpaces as a portable Linux application. Download and unpack the compressed package, and simply run the executable tagspaces file. No need to compile or install anything.
The Interface? Not So Simple
The first encounter with TagSpaces could leave you puzzled. There are no ribbons or text-based menus; only icons above the file list. The “hamburger menu” icon toggles a sidebar on the left, and the one next to it launches the Options dialog. The sidebar has a drop-down menu at the top that lets you select the active folder, and tabs at the bottom that switch between tag-based and location-based navigation. The triple-dot icon opens the Directory Operations menu of each folder.
Icons above the files let you toggle thumbnails, select, remove, copy, and tag files, as well as access additional menus. You can choose the view mode from the menu next to the Search bar. Depending on the selected mode (Grid or List), you can sort and group files by different criteria. Visualization options in the FolderViz mode will give you a cool overview of the folder structure.
Organizing Your Files with TagSpaces
By default, TagSpaces doesn’t show all your files like a regular file manager. Instead it lets you decide which folders it should manage. You’re free to import your entire /home or just a few folders via the Connect New Location dialog.
Once the desired files are in, you can tag them by selecting files and clicking the tag icon in the toolbar. Alternatively, first add tags and organize them into groups, then just select files and click on tags in the sidebar.
Smart Tags are predefined, time-sensitive tags that help you access recently modified files. TagSpaces supports tagging multiple files at once and it can suggest tags based on file properties. Every tag can be edited and color-coded.
TagSpaces can open and edit many file types in a preview pane on the right. Supported formats include HTML, plain text, Markdown, PDF, EPUB, and several audio and image formats.
Comparing TagSpaces and Classic File Managers
The strangest, most obvious difference between TagSpaces and classic file managers is the lack of context menus. You can right-click all day, but nothing will happen. All actions and menus are activated with left-click, but you can define a few keyboard shortcuts, which leaves TagSpaces in a weird limbo between being completely mouse-dependent and supporting mouseless browsing .
Another impractical difference is the fact that file-related menus are not unified. If you select a file and click the Create New File Menu icon in the toolbar, you’ll get a different set of options than in the File Operations menu that opens when you click the file extension.
The inconvenience trickles down to basic file operations. Say you want to copy some files. There’s no right-click menu for that, so you have to either click the corresponding icon in the toolbar or access the File Operations menu. Then you have to use a separate dialog to finally copy the files. The classic Ctrl+C/Ctrl+V combo has no power here.
Similar quirks keep popping up if you try to use TagSpaces as a traditional file manager. For example, it doesn’t let you delete folders that are not empty. It can display hidden files, but if a hidden file doesn’t have an explicit extension (like .bashrc) TagSpaces thinks the filename is the extension, and leaves the filename field empty.
Tags have their own share of problems. Currently, TagSpaces does not support tag subgroups, and you can’t drag-and-drop tags between groups. What you can do is create duplicate tags in different tag groups, introducing redundancy into your system. And we still haven’t touched upon the biggest issue of all.
The Biggest Issue with TagSpaces
You’ve embraced TagSpaces despite its shortcomings and tagged all your files. But then you open another file manager and notice that files look like this:
No, it’s not a bug. TagSpaces basically renames your files, appending tags to the filename using this pattern:
The Options dialog lets you modify this, but the feature is still marked as experimental.
The reasoning is that only filenames sync correctly across devices and different operating systems without requiring separate databases and third-party apps to read metadata. However, this approach is not without fault: filenames with multiple tags can be too long for some systems. Tags in filenames make file renaming tricky, and they don’t look pretty at all.
TagSpaces users either love this solution because it’s portable or hate it because they don’t want their files touched. In the end, it boils down to personal preference. If you plan to replace your file manager with TagSpaces, this won’t be a problem because you’ll never see the tags as part of the filename. When you share tagged files, you’ll have to inform the recipients about your file-tagging habits, though.
Hierarchy or Tags?
Most users stick to hierarchical folder structure because it feels “natural” and intuitive, or simply because they’re used to it. But what happens when you have to reorganize it? Introducing new subfolders is not easy with hundreds of files, and I imagine finding a file feels much like searching for a needle in a haystack.
With a tag-based file system, you don’t have to worry about the location – just make sure to tag the files with appropriate, relevant keywords. It’s entirely possible that tags are the future of file management on Linux.
Still, not all users will be ready for the switch. A 2005 study asked fourteen participants to replace their folders with a simple search tool. Thirteen declined, stating they can’t rely only on search and that they prefer to actually see their files grouped in folders. However,
All of the participants said they would be happy to have search utility that helped them to find their personal information better.
Jones, W., Phuwanartnurak, A. J., Gill, R., and Harry Bruce. Don’t Take My Folders Away! Organizing Personal Information to Get Things Done. The Information School, University of Washington, 2005.
Could TagSpaces be the utility they need? We’ve seen it’s not perfect, but it’s a young app, still in development with plenty of time to improve. Compared to CLI-only tag-based file managers like Tag and TagFS, using TagSpaces is a piece of cake, and the interface is much more appealing to beginners and ex-Windows users. The notorious tags-in-filename issue certainly needs attention, perhaps in the form of editing extended file attributes or storing tags in an existing metadata format.
For now, the solution might be to compromise, and let TagSpaces and traditional file managers complement each other. Keep Dolphin or Nautilus for your daily file management tasks and switch to TagSpaces for specific file types. You could use TagSpaces as a photo collection manager , a digital notebook, or an e-book organizer.