Standardizing a design pattern to visually differentiate remote (or removable media, or elevated privileges) tabs from normal local filesystem tabs in Nautilus

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 :globe_with_meridians:
  • 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).

1 Like

One consideration is that people may have a large portion of their file system as remote file systems, particularly in corporate settings where it is common to have almost the entire file tree as mounted NFS partitions. Therefore consideration must be taken to either limit when this applies, or to make it fairly subtle.

One way to limit it would be to only apply it to remotes that are added after boot, or that are mounted by non-root.

Indeed, I was thinking of this for temporary/dynamic mounts, not “my whole home is on NFS”, which presumably is a corporate/IT policy whereas from the user’s standpoint they don’t know/care that it’s on the network, it’s “just their filesystem” in a way.

My first instinct is that an icon in the tab makes sense, maybe not a globe but the same icon as in the sidebar to distinguish remote locations. This could be helpful as there are some preferences that only apply to remote versus local locations as well, so it makes sense to visually distinguish them.

I like the concept of using color to distinguish remote but I don’t think we can rely on it as the only signal—plus I worry that a purple tab would look really out of place here. Maybe just an icon on the tab is sufficient?

Would it make sense to only distinguish in the “mixed” case, where you have some tabs that are local and some that are remote? Or just always have the remote icon on remote locations? I lean towards always having it for consistency.

Wild idea: use a subtle background color different from the white we have around icons?

1 Like

When we’re in this design phase, it would be also important to think about accessibility of the pattern, e.g. a visual only distinction will not help users needing to use screen reading software at all. That will require, likely, a different accessible name of the tab, or likely the whole window, as that’s what’s read when focusing Nautilus.

1 Like

This topic was automatically closed 45 days after the last reply. New replies are no longer allowed.