Antonio expressed interest in discussing here this idea I originally filed in a gitlab ticket. I’m hoping that fellow design folks like @allanday / @tbernard and others would be able to help us take this exploratory set of ideas towards an actionable set of design recommendations for Nautilus devs to implement, and perhaps other applications (maybe this could become a design pattern that could be standardized across some tabbed applications like Nautilus + Epiphany + Console, and I think Console already kinda paved the way here).
Here is my problem definition, and some ideas about potential approaches to solve this problem.
Compared to the original version from 2 years ago, I have updated the text a bit to add some new insights like privileges elevation and to take into account GNOME Console’s approach to the problem.
Use cases
While doing web development and maintenance, or even just sharing files, whether through SFTP/SSH/FTP or NextCloud, I very often have multiple local and remote folders open as tabs in Nautilus. The problem is that it quickly becomes hard to quickly switch between them without making mistakes, and more importantly, I always have to be super extra careful about really being in the tab I think I am in, because many have the same label because I typically have a local folder that is mostly the mirror of the remote folder, where I do my changes and then propagate them selectively. So if I have a website called “banana”, I have a /home/some_user/projects/banana
folder and a sftp://some_user@somehost/home/some_user/var/somecrap/banana
, and Nautilus shows both of them as simply “banana” in the tab name. Now imagine that multiplied by six, at the same time.
Or sometimes, instead of a remote folder, it can be a removable (or dynamically mounted, by Nautilus) hard drive, and I want to make sure I don’t destroy data with stupid mistakes. For example, I have a local ~/montages folder that is a partial replica of something on a NTFS partition that gets mounted when I click that drive in Nautilus, but both end up being called “montage”, and to have the same project subfolder names in them, etc.
There is also the potential future need to distinguish privileged and unprivileged tabs (like GNOME Console does) for Nautilus, if/when we implement the ability to ask for temporary elevated write permissions when needed.
Desired behavior
I would really like a visual distinction “in the tabs” between the local permanently-mounted filesystems and remote (FTP, SFTP, Samba, etc.) or removeable filesystems, and a visual distinction for “elevated privileges” folders too. And maybe even a visual distinction between regular folders and the search results view that “has some folder-like behaviors, but not entirely”?
There are two potential visual approaches I can imagine so far:
- It could be done by showing the hard-drive/pen-drive/remote-folder symbolic icons near the tab’s label, or, if you want something easier than an image as a stop-gap solution, I’d be OK an emoji in the label as well like …
- It could be done by recoloring the tab (or the window decoration + tabs strip, when a special tab is focused; I presume the sidebar should not be recolored, to avoid overpowering the visuals) like GNOME Console does for terminal tabs that have root privileges (root) or are running SSH (purple)… see this comment where I identified where that magic happens in GNOME Console.
Besides being a pretty neat trick and use of precise control over the styling of Nautilus as a libadwaita application, a benefit I can see with this approach is that it would create consistency with another app, GNOME Console; this made me think that this might become a pattern across GNOME apps, as mentioned in the introduction above.
Benefits of the solution
With those visual indicators, I couldn’t possibly confuse a local tab (or window) from a tab (or other tiled window) related to remote or hotplugged locations.
Short of being able to color one tab only (when it is not focused) in the row of tabs (like many of my tabs in my LibreOffice Calc spreadsheets!), the icon/emoji approach could have an advantage over—or be complementary to—the recoloration approach: it would let me spot those tabs easily in the row of tabs, instead of having to click or hover them one after another.
Possible drawbacks
None that I can see, other than the corner case if a user has the same emoji in a folder name, it could clash with Nautilus’ emoji (if you choose to go the emoji route instead of symbolic icons or recoloration).