Cleaning the house (GSoC #6) & GUADEC

Some thoughts on Nautilus

During the last weeks, the code on Gtk+ side is more or less settled, so I started working on Nautilus.

The current situation is desperating.

Nautilus code is old and, after almost 20 years of hundreds of contributors throwing their coins in, things are in a poor state. Many different formatting styles, code tightly coupled, many old hacks still lying around… it’s very easy to get confused here.

So, before start trying to fit the new Places View code inside this spaghetti, we agreed on making a reasonable cleanup. You can already check some improvements on master, but there’s much work left to do.

Let’s take a look at Nautilus before:

Captura de tela de 2015-07-31 18-19-47

And how it looks like now:

Captura de tela de 2015-07-31 18-20-15

Spotted any difference? Hopefully not. This entire work is not related to UI, instead it is a major reorganization of the code. By the end of this cleanup phase, end users won’t notice any difference.

The main struggle here it to make the directory viewers (grid & list view, for instance) completely isolated, i.e. no widgets besides the views themselves are aware of the current directory. This may seem unintuitive at first, but this abstraction is needed in order to fit the new Places View, as it doesn’t represent a real location.

What changed up to now:

  • Moved management of empty states (empty folder & no search results) to the file viewers
  • Moved the floating bar to the viewers
  • Cleanup and reorganization of the focus chain
  • Removal of an old hack
  • Fixed an annoying bug

It may not look like a radical movement, but gosh, git says it -449/+382 lines of code, and each line of code removed and improved here counts.


As some of you may know, this year I’ll attend GUADEC. It’s the first time ever that I:

  • attend the conference
  • go to Sweden
  • go to Europe, in fact
  • bring paçocas and other brazilian sweets in my bag (as democratically asked by my mentor, under the risk of losing my life :P)

Now I have to find some vegan restaurants nearby to eat and a good park to meditate. Looks like there are some good options, but nevertheless I’m accepting suggestions here, in case someone knows (or even better, lives in) Gothenbutg.

Last but not least, I’d like to thank the GNOME Foundation for providing me shelter and covering most of the travel costs. It wouldn’t be possible without this kind sponsorship. See you all in Gothenburg, folks!

12 thoughts on “Cleaning the house (GSoC #6) & GUADEC

  1. Every shop that serves food in Gothenberg has at least one good vegetarian option prominently advertised, and many have vegan food. When there, I was struck by how much easier it was to not be a meat eater than elsewhere in the world.

    One of the people I was visiting, who is a Swede living in Gothenberg, said of the situation: “Oh, yeah. I think there might be a law,” which is to say, vegetarian and vegan food is so common and ubiquitous there, that someone native to the place thinks (but has never needed to question or confirm) that there might be laws demanding it.

    It was good.


    1. Freddie, this was my experience with Sweden also. Lived there for 3 years and I was amazed at how easy it was to find vegetarian food. It’s pretty much everywhere. So much different from my own country where I might need to drive for several hours to find veg. food.

      Liked by 1 person

      1. Compare this to Finland, where they’ll tell you “sure, do you want chicken salad or salmon soup?” if you ask for vegetarian food 😛


  2. It would be really nice if the contextmenu could be replaced by a popover as well, that would
    1) make Nautilus useable on touchscreen
    2) be consistend with recent filepicker-dialog development

    Also the eject buttons are not working on touchscreen right now. If those two things could be fixed in the process of the reorganization that would be super awesome 🙂


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s