Controversial miller columns for Nautilus

are you happy with your experience or do you find that you had to compromise?

Both ! I had to make some compromises and change my habits, but I’m pretty satisfied by the switch. However, it was a long journey to return to a proper working environment…

oh no, I meant particularly parting ways with Finder and getting accustomed to a non graphical file manager.

I’m sure the switch was tough but I bet you’ve been able to create the most ideal workstation that suits your needs best :slight_smile:

As you mentioned in the PR, I’d like a bit of guidance to implement this in my own fork to try things out. I couldn’t find you in Matrix, which I’d prefer, so here I am.

1 Like

I’ve recently finished a refactoring if the views in nautilus, which make it easier to add new views. Actually, the last piece (part 9 of 9) is not merged yet …

I’m also implementing a new view on top of that (but for a special location only: Network view) which can serve as a reference of how to add a new view. This is still work in progress, there isn’t even a Merge Request yet, but I’m pushing my work to the wip/antoniof/network-view branch.

So, I think it would be easiest for you to start on top if that branch (or wait for it to be merged into main, if you wish to avoid the trouble of merge conflicts later on).

The views are derived from the NautilusListBase abstract class, which provides common abstraction for GtkListBase-based views to display NautilusViewModel.

For historical reasons, there is a NautilusView interface which you can simply ignore.

There is also NautilusFilesView which, despite the name, is more like a “view manager”. You may need to adapt some glue code there but, again, you can ignore most of the content of that file.

Now, for how to implement your columns view, I think it would be fun to experiment with an horizontal box containing 1+ GtkScrollerWindow children, each containing one GtkListView. I would take advantage of the directory-load/directory-unload signals used by for expandable folders (trees), and the GtkTreeListRow:children property to get a model for the subdirectory in the next column.

For an easy start, you probably don’t need to create your own cell widget. I would use the NautilusNameCell widget.

3 Likes

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