Other Locations on Nautilus (GSoC final report)

Did you see what just happened with Nautilus? In case you didn’t, here’s what happened:

Other Locations on Nautilus

Yes, Nautilus now is able to display Other Locations view, and finally it caught up with Gtk+ file chooser! It’s already on master, so anyone can test it with jhbuild. Also, Nautilus 3.17.90 already includes it, so Fedora Rawhide users (and any other bleeding edge distro) will be able to test.

What’s happening?!

The Other Locations view was born to fix this issue:

Endless sidebar

The sidebar is enormous and my entire screen isn’t able to display it all. So we came up with the “Other Locations” idea: a place where we keep persistent, fixed things, and open space for  the sidebar to display what really matters. The implementation progress in Gtk+ is well documented here, as well as in Nautilus.

Flies And Spiders

In order to be able to implement this Nautilus feature, a huge cleanup was needed. Summing things up, it was more than -12117/+15487 lines of code changed, considering only the last 30 days. Obviously we’re introducing new issues, but hopefully we’ll be able to fix them all before 3.18 release.

Here’s a list of happened:

  • Search logic behind the scenes was completely reworked to be simpler and saner.
  • The code to select, open & switch views was also reworked.
  • Complete isolation underlying model of the files view.
  • A new abstraction layer was added, so we could encapsule the Other Locations view and the files view.
  • Code is much more clean and sweet (more on that below).
  • Don’t show empty folder feedback on desktop.

Riddles In The Dark

I integrally agree when my (awsome) mentor Carlos Soriano says that “it’s better for us a clean code that fails an can be fixed, then a speghetti code that works and can’t be improved.”

A clean code attracts new contributors to work on. I can only imagine how many skillfull people that tried to do some work on Nautilus and gave up because of it’s complexity. Because of that, we were really engaged on making the Other Locations view work the right way – and, if that means reworking the delicate and intricate internals, so be it.

I sincerely hope that, with all the efforts we put on making the codebase a little bit easier an simpler, new contributors will appear. Maybe we can even have another Summer of Code project on Nautilus! And talking about Summer of Code…

There and back again

The landing of the Other Locations view on Nautilus marks the end of my Summer of Code project. It was a big journey, and lately I even forgot it was a GSoC project at all, such was the joyful and frantic pace of work. I learned an uncountable amount of things, specially regarding software stability, good and bad software design and team work.

While the project is over, I won’t stop contributing to Nautilus. Even with the interesting code, even with all the strange things surrounding it. Nautilus is like an ugly puppy: it may hurt your eyes, yet you still warmly love it.

Nautilus (All rights reserved to the author)

And… for those who like to see moving images, and to never loose the tradition, here’s a nice video of the work:


7 responses to “Other Locations on Nautilus (GSoC final report)”

  1. That’s really sexy. Nautilus is in huge need of new views. Grouping support would bring it into the 21st century…

  2. […] as a Google Summer of Code intern with Gtk+ and Nautilus. We saw the very positive results of it. And the picky eyes out there noticed that I wrote with these exact words: “While the project […]

  3. neurontank Avatar
    neurontank

    don’t know if this is a result of your work, but i hate that other partitions are now extra clicks away… i’ll probably be shifting away from nautilus… but thanks for doing code cleanup…

  4. […] is the second time I’m working on something big on Gtk+ (the first one being the Other Locations view) and I’m pretty excited! This was requested by our beloved designer Lapo and also by […]

  5. I really don’t like this. Not too bad on small screens but really hard to notice the address bar at the BOTTOM on a larger screen. Breaks all sorts of standard expected behaviour and it’s really hard to use. It took me ages to find either the “connect to server” option or the address bar at the bottom of the screen when I was looking for it. Also it seems to have lost all my previous servers – when I went to connect to a server previously I would see a number of items in a list to choose from, now I do not.

  6. A very bad idea. This is a terrible solution. I hate it. Please bring us back our partitions in the sidebar.

  7. guest3243245 Avatar
    guest3243245

    I hate it! I frequently move files between partitions and I like seeing usb drives as soon as they are plugged in, as well as partitions other than just the “home” partition. Having to navigate through submenus is very cumbersome! I wasted over an hour trying to edit preferences, mounting and unmounting drives and partitions, only to realize that there is no longer an option to have an intuitive display of all drives on the sidebar.

    If you really think this design is superior, could you at least please add an option to customize the display, e.g. have “Other Locations” expand when clicking on the plus-symbol next to it (as the normal user would expect) or add that option to the preferences (ideally in a persistent manner, so I won’t have to change it every time I open Nautilus or restart the computer)? It would be greatly appreciated. Otherwise Nautilus has been great.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.