Nautilus & Gtk+ status – 1 year of progress

Hello,

Today I was having a rough time thinking on how to implement the new GtkPathBar, which is taking more time and frustration than expected given some technological limitations on animations in gtk+ and that responsive design is technologically hard to do.

In the middle of these thoughts, I realized that I was actually discussing these big plans about responsive design for gtk+ with Georges Stavracas, my former GSoC student. I was actually discussing with someone big plans about Nautilus and gtk+. I couldn’t do that 1 year ago, because Georges was not there. Although Cosimo, previous main maintainer of Nautilus, is *always* there if we need him and he reviewed/helped with high impact changes, but he is involved in multiple projects and I personally don’t want to take much of his time.

That made me think about the progress in contributors and technology that Nautilus and gtk+ has made in 1 year. And realized how much it changed, and how good it has become.

In one year Nautilus went from 1 main contributor, me, to 5 regular contributors. That’s really impressive! Not only that, two of these regular contributors are going to be GSoC students this year for Nautilus, congrats Alex and Razvan!

These contributors are random people that got attracted by Nautilus and GNOME and all the plans we have for the project, and I believe we all agree we are having fun chatting around in #nautilus IRC channel, which kinda helps :). They have some specific areas that they are more expert with, and I ask them to review small patches or to discuss some ideas I had for those areas, and usually, my ideas need notorious adjustments, and my patches, changes in the code.

They triage bugs, fix crashes, improve small details all people complain about, do performance improvements, etc. Just today one of these regular contributors improved the copy operation of files in the order of ten times.

No one can imagine how good is for a project like Nautilus to have different developers contributing and reviewing both code and ideas. For one year, I was doing changes freely, and that, even if I try my best, it’s not ideal.

This applies to gtk+ as well. As said, with Georges we share similar areas of responsibility in gtk+, and we discuss and push together for plans we believe are good for the toolkit, so we became contributors to gtk+. Also, it’s important to highlight that gtk+ improved exponentially in the last year, and we have a much more consistency in the code,  that will eventually allow all the big plans we have planned for gtk+, like animations, responsive design, etc.

In conclusion, as far as I can see the development status of Nautilus it’s in its best moment since it was created, and part of that is thanks of the status of gtk+ development and the values and vision of GNOME as a project.

The day ended well after all.

Cheers.

Advertisements

50 thoughts on “Nautilus & Gtk+ status – 1 year of progress

  1. “Just today one of these regular contributors improved the copy operation of files in the order of ten times.”

    Talk about burying the lede! Could you elaborate?

    1. Yeah, so nautilus copy operation receive a list of files to copy. These files are pased one by one to another operation that really makes the copy using g_file_copy and ensures conflicts, read permissions, etc etc. In this function that receives one file adds the file to a list of files with the undo information. This function to add a file to the undo information uses a GList, which is O(1) for prepending objects and O(n) for appending. Guess what 🙂 we were using appending because we don’t want to deal manually with the order and usually is not a problem… but here, we call this for every file which makes the whole thing O(n^2). So this start to get a user feeling when you copy more than 3000 files or so. Solution is to either use prepend and deal with the order manually, or use a different data structure.

      1. About copy, I dont know if this is a bug:

        Whenever I copy big (~1-2 GB) files to some pendrives it remains stuck at 100% for quite a long time (approx 5 minutes).

        If its a bug please try to resolve it because its quite annoying.

        Let the great work on Nautilus keep coming!

      2. I believe is synchronizing, better to report in bugzilla just in case with more information and we can investigate

  2. Thank you for making nautilus a touch only solution for a OS’s that are mostly used by developers and system admins on workstations … this will help us be more productive on terminals and help you win the 99.9% of windows and mac users .

    Continue the illusion …. or may I say the fantasy

    1. Seems this comment is not relevant to the topic so I removed it. Feel free to rephrase.
      PD: actually my poor WordPress skills shown up, and I didn’t manage to remove the post. I will leave it as a example on how not to provide feedback 🙂

      1. Poor Gnome hero do not stand criticizing his ugly baby. Please Please oh please keep my comment…

      2. Let’s make clear the topic to avoid confusions on future comments:
        – New contributors in Nautilus
        – Better technology in gtk+
        – Better code in Nautilus

        On the other hand, saying Nautilus is touch only, when the problem with Nautilus is precisely that doesn’t and never did work well in touch… makes my brain explode 🙂

        Now please focus on specific actionable items criticism. If not, save your time… I’m sure you don’t want to lose it with me.

    1. Thanks we will!
      “Are there any plans to attract more contributors or funding?”
      It’s one of the topics that goes through my head regularly. But I realized that what brings most contributors is create this feel of community and group of people enjoying what we do.
      Apart of that, do you have some idea? For example Google Summer of Code indeed helps here.

  3. I just recently switched from Mac OS(*) to Gnome and I’m really happy with Nautilus.

    It fits perfectly into “I need a simple tool for a simple task”, and I still use mc for more complex operations (as a software engineer I use terminal and vim all the time, so it’s not a big deal).

    In result I find myself working like this:
    – If I need to symlink 5 files and compare the structure of tests between two clones of git repo – mc
    – If I need to go to Downloads and open a movie in VLC – Nautilus.

    Keep up the good work! Gnome 3 is really great product that can already totally compete with Mac OS X UI, and seems to be advancing faster 🙂

    *) My history is a bit more complex – Amiga, Red Hat(KDE), Slackware(KDE), Gentoo(KDE), Ubuntu(Unity), Mac OS for 4 years, and now Ubuntu+Gnome 3 🙂

    1. It’s really good to hear these kind of histories and feedback.

      ” If I need to symlink 5 files and compare the structure of tests between two clones of git repo ”
      The vision I usually have is, if you need to use the terminal, then we are doing something wrong. This specific case has been discussed (there is a loong bug report about that), and I found out we use symlinks to workaround deficiencies in other places. For example we use symlinks for “selecting” a folder to sync with cloud services without moving the folder to the default cloud service folder. What we should do is improve the integration of cloud services in Nautilus.

      In your case, why do you need to make 5 symlinks?

      FWIW you can do it in Nautilus with the mouse wheel button and dragging files. A menu will appear there with three options, one of them is “link files here”. Also, you have a preference to show the “Make link” in the context menu.

      1. > The vision I usually have is, if you need to use the terminal, then we are doing something wrong.

        Disagree.
        I’d suggest to think about it this way – if more than X% of your target users have a need that they cannot easily fulfill with Nautilus – you are doing something wrong. X may be 10% for example.

        There will always be outliers. As a software engineer, I am an outlier, and you should not optimize the UX for those of my use cases. Mind you, I sometimes wear a “casual user” hat and then I want Nautilus to just work for me (or my Mom).

        > In your case, why do you need to make 5 symlinks?

        Because I need to rebuild one project using a library from another project and I don’t want to copy&paste the dependency library whenever I change it.
        It’s really not what you should optimize for 🙂 mc works well for that.

        > FWIW you can do it in Nautilus with the mouse wheel button and dragging files.

        In most cases I use a trackpad on my XPS 13, so no mouse wheel. I probably can emulate it, but also remember, that as a dev, I sometimes am in “no pointer, just keyboard” mode – hack in vim, rebuild, reload etc.

        I really believe that you should aim for common cases of casual users. It’s great if the more esoteric needs can be fulfilled with some more clicking, but that should not crowd the UX imo. 🙂

      2. > you should not optimize the UX for those of my use cases

        Probably I was not clear, I mean that. We don’t optimize for the 1%, but it’s on our goals to still provide a way for those.

        > I sometimes wear a “casual user” hat

        I understand what you mean. My vision here is that I would like to give this “casual” feeling experience to also experienced users. That means, their tasks have an simple – easy solution.
        Of course if the task itself has multiple parameters, i.e. “I want to rename all files from 2 years ago that are format jp2 and that the user is different than mine” there is no way to make it simple, and probably not pretty common, so we are not going to optimize for that.

        > sometimes am in “no pointer, just keyboard” mode

        Then there is the right click menu option for you. But it’s true that I don’t think I will take into account this use case when I think about fulfilling are use cases for symlinks… looks pretty esoteric (but valid) 🙂

        > but that should not crowd the UX imo.

        Yeah, as said previously seems I was not clear enough. It’s in my goals to provide a way if it fits, but not optimize for it.

  4. Just wanted to say that I really like your work. Nautilus is really great.

    The only thing I miss there is the “loading bar” that tells me how much space I have left in a hard drive that exists in the main harddrive listing of Windows Explorer, I see that Nemo was able to somewhat mime that. I don’t know if it’s interesting but it could be something you could turn on.

    Other than that, how one could contribute to the project? What is needed?

    1. Hey thanks!
      “tells me how much space I have left in a hard drive” You mean in the sidebar right? I agree. And even more now that we show the space in the Other Locations place for internal drives.
      We had a discussion for it with different ideas in https://bugzilla.gnome.org/show_bug.cgi?id=684943.
      I can summarize, the use case behind this is basically, as far as I can gather, “does this file fits in my external drive?”. A bar doesn’t answer that question, however a label with space left does.
      So I’m inclined to include a label under the name of the drive, but it really breaks the sidebar sizing and feels odd :/
      We are still considering what to do there. Please feel free to comment on the bug report if you have new ideas. You can see there Jeremy was providing some mockups.

      “Other than that, how one could contribute to the project? What is needed?”
      Oh! Everything you want really 🙂 Apart of the common writing code, I can say:
      – Translations
      – Documentation
      – Reviewing patches
      – Testing
      – Triaging bugs, reproducing them, find steps to reproduce them reliably
      – Engaging discussions and provide ideas
      – User testing
      – UX Design – Found ways to include features without affecting the overall usability, etc.
      – Visual Design – Icons, css, animations…

      Here is where everything starts: wiki.gnome.org/Newcomers 🙂

      1. For me a space left bar is what I personally need to tell me “is this partition near to get full or I have still some space left?”. This is not something that I can recognize in a quick look whit a label (I’ve to read it, and figure out if in a/b a represent free space or used space). A coloured “a” text label (green to orange to red) may be good, but it could also look strange in the application

      2. With latest usb sticks, a bar doesn’t really tells you anything useful. A usb stick that is 16 or 32 gb, and the bar somehow full, still fits few movies/music. So it’s not really helping at all… does it?

  5. Thanks for your work, very appreciated. It’s funny how nautilus gets criticized for lack of attention in the past…Horray for the new contributors, may the code be with you and let the removal of the floating bar and addition of free space available on the action bar finally happen!

    1. Hey! I think it’s just common that any project gets criticized for some reason at any time. It’s just expected.
      So as you can see, even if this post is just “I’m happy there are more contributors and that we enjoy doing things together”, it’s going to be people so see that as bad I guess. Or at least there is no specification on what point of the post are in disagreement.

      “removal of the floating bar”
      I cannot wait for the day this will happen!
      “free space available on the action bar”
      Look the answer I made to Ericoporto above you if you want more info about this 🙂

  6. Nautilus is by far the best file manager among the major workstation operating systems. Each and every time I’m on OS X I literally can’t believe how terrible Finder is (run an undocumented terminal command and reboot just to show hidden files – what?).

    It’s great to see that there has also been substantial usability progress in Nautilus recently. The popovers feel very fresh and modern. The one thing that now looks dated are the default file and folder icons. I don’t know anyone using GNOME who doesn’t replace them as one of the first steps after installing. It would be nice if that wasn’t necessary because the default icons are good enough already. There are many superior replacements available (Faenza, elementary, Paper, …), all of them free software, and even just taking the file and folder graphics from those (the rest of the GNOME icons are actually fine) would substantially improve the “first contact” experience for new users, which currently feels decidedly unpolished.

    1. “Nautilus is by far the best file manager among the major workstation operating systems.”
      Really? haha. I always though Finder was the best, although I never used it, I have the feeling people using MacOSX are quite happy.
      ” The one thing that now looks dated are the default file and folder icons. ”
      Did you try the ones in 3.20? I’m start to like them now, they are kinda flat. It’s something that changes almost every release, probably because we don’t find a neat spot for them.
      “There are many superior replacements available”
      That is kinda subjective, and you can guess if we didn’t take them is for some reasons. In this case, Faenza is square, and form and shape of icons are good for usability and recognition. For Paper I would say it doesn’t go with the overall feeling of all the other icons of GNOME.
      But I’m sure Lapo knows more about this, he is the one doing adjustments every release on it based on feedback.

      1. Hey Zibi,
        Indeed I would like to play with finder. I though few times about buying a Mac just to play with it… but looks like too much money just to play.

        > I’d love the Column View from Finder to be in Nautilus
        I believe our designers don’t like it, but I don’t know the reason. Feel free to join #gnome-design IRC channel at irc.gnome.org and ask.

        >My only other problem is that the default icon set in Gnome 3.20 for folders
        Please join gnome-design and tell Lapo (our free time designer) what do you think is not good. I have no idea how to improve it more.

  7. Nautilus has indeed been improving. Now the code is in good shape, please consider readding the F3 split view (even if requires setting a dconf option first, like type-ahead find), and I (and probably a lot of power users) will switch back from Nemo immediately. 🙂

    1. Hey Michael,
      I don’t think split view is a matter of “the code was not in a good shape” which probably it wasn’t and would require lot of maintenership on it.
      I would say in this case is mostly the design doesn’t fit :/ it’s actually pretty confusing to me when I tried to use split view in other file managers (I usually run other file managers to learn what they do and what we can improve).
      For example one of the things is that the pathbar doesn’t relate clearly to the view, since now you have to. and the same for search etc. Also, the overall application gets more bloated imho.
      Is using two windows less convenient in your opinion?
      For example, I would like a split view which are exactly two windows side by side. But at that point it’s better to improve the window handling on the window manager to make a great experience for all windows.

      1. What do you mean with ‘pathbar’ precisely? The one that displays the location of the folder? In that case, the pathbar did relate clearly to the view in Nautilus, as both panes had their own, directly above the view itself. The same applied to search if I recall correctly. Nemo on the other hand uses one pathbar. (It isn’t really confusing to me, but I can see why it could confuse some people.)

        Two windows is less convenient. You’re pretty much stuck with each of them taking one half of the screen (using side snapping). And you have two sidebars, which takes more space. Your resizing capabilities are also way more limited, as with split pane you simply drag the divider, whereas you need tedious manual resizing without it.

        Features add complexity. I’m aware of that, as I’m also a developer and I have had to tell people we couldn’t implement certain features exactly because they would add too much complexity for their benefit. But in this case I think the demand warrants it: it’s about the most mentioned feature after some other features cut in Nautilus 3.6 were added back in later versions.

        Finally, this is mostly a power user feature. If you feel it’s too confusing for regular users (I don’t think it is) you could make those power users turn it on via dconf, like you already did with type-ahead find.

      2. Hey Michael,
        > as both panes had their own, The same applied to search if I recall correctly
        Aha! I didn’t know that. That is indeed better. As you pointed out, I usually use Nemo for “taking a look at nautilus gtk2 era”. I didn’t know the changed this.

        >You’re pretty much stuck with each of them taking one half of the screen
        Oh no, this is definitely need on improving. Gnome-shell developers have it on their goals afaik, allowing to resize selecting the separators of the two windows, as you would do with a split view.

        >And you have two sidebars
        Well, the same principle as the pathbar and search applies here, I would expect the sidebar to be present in both views, if not, to which view it relates to?
        At that point they are just two windows.

        > you could make those power users turn it on via dconf, like you already did with type-ahead find.
        Not really, there is no type ahead find in Nautilus. And there is no much options hidden in dconf. We prefer to fix the real issue behind it rather than adding a obscure option in dconf that only a few knowledge users can use.

        In conclusion, if what we want two windows snapped together, but having the convenience of dragging to resize like we had in split view, indeed, we agree. And I hope that work comes soon in Gnome Shell.

  8. thanks to all the nautilus contributors for doing an awesome job. considering the age and complexity of nautilus it’s great to see it still progressing and the team not being afraid to iterate.

    1. Thanks Bastian!

      “the team not being afraid to iterate”
      I’m surprised you know this.
      I though it was one of the things only people contributing get the feeling.
      Usually we (other contributors included) are “afraid” of modifying or breaking Nautilus, because all the background and users it has. I try to balance this feeling transmitting the opposite, that the code needs to be improved and changes are necessary, even though, it’s hard for me as well.

  9. Thanks for all the work you are doing Carlos. I can really feel the difference from all of the hard work from version to version, and Nautilus keeps getting better to use. I know that for my daily workflow, nautilus is extremely important, so it is fantastic that it is getting a lot of well-deserved attention lately. I really can’t wait for the upcoming changes to the icon view being able to be centered in the frame, and flexibly re-size spacing and whatnot 🙂 As small as these changes seem on the surface (which I’m sure are complicated behind the scenes), all of them being fixed really is bumping Nautilus to the next level.

    I’m sure that you get feedback from fellow programmers and computer scientists often, but from me, a neuroscientist at the University of California, the work you are doing makes a big difference to my day to day work 🙂

    Quick question, are there any plans to work on the the right click “set as background” option? It’s a little broken, on issue being that it redundantly copies local image files into /pictures/wallpapers, even if the image is already in /pictures/wallpapers, as well as a few other weird behaviors. I just think it could use a bit of attention if any one of you has some time. There’s already two open bugs for this issue that have yet to get any responses

    1. Good to hear that!
      You are like me then, these small details like the non-centered view of the icons makes my eyes bleed 🙂 and indeed, it’s one of the most complex things to work on in nautilus… probably the most complex one. I’m working on it.

      > Quick question, are there any plans to work on the the right click “set as background” option?

      Yes, here is the bug report: https://bugzilla.gnome.org/show_bug.cgi?id=688812
      But never saw it as a priority, wrt other things. I think is a good and fun candidate for some contributor to experiment with different ways to handle this. (I keep the boring tasks for me 🙂 )

  10. Hi Carlos,
    I have a issue related (but the issue is not in nautilus ) :

    i was also a big fan of split view, as a workarround, it’s was say, “we just have to open 2 nautilus, one in left, one in right”

    since long time, now i’m doing this but i’m facing to a issue :

    if i’m using “super+Right” (or “super+Left”) the size of the window is arbitrary locked
    so it’s really easy to have 2 windows using each 50% of the window
    but it’s really hard to the 2 window with something like 60% and 40% of the size

    Why after using “super+Right” :
    “Super+lef click” is working to move the windows
    but not ” Super+middle click” (or Alt +F8)

Leave a Reply

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

WordPress.com Logo

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

Twitter picture

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

Facebook photo

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

Google+ photo

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

Connecting to %s