Hello all,

It’s this time of the year again, a new Nautilus release is on its way to be delivered. This release has been increasing contributions and work done in a steady pace as it has been for the last years, which makes me happy as one of the maintainers of Nautilus. This release had around 140 major contributions (merge requests) including whole features, fixes and improvements. Against our willing, we have included more code than deleted by 3000 lines 😉

I will explain the most visible improvements and changes we have been doing as part of this 6 months effort. But first, a peek on how Nautilus 3.30 looks like:

New toolbar design

We have been trying to improve the exposure of available actions and make them available for the list view and for touch devices for over almost 3 years, iterating on several designs. We finally came with a solution that we are happy with. As a result the user can now access background actions in list view such as creating templates or extensions like opening in a terminal.

We also implemented a less cluttered path bar and moved the search entry to the same place to give more place for the actual content, the user’s files. Lately, we improved the usage on small resolutions making Nautilus be able to shrink up to 530px. The result is the following:

As part of the new design, we also replicated the app menu actions to the hamburger menu so it’s easily accessible in multi-monitor set ups:

The end result feels definitely more modern and implements one of the most requested features.

Dynamic space resizing

Probably everyone is aware that the code in the icon view of Nautilus is from 20 years ago when gtk+ didn’t exist, so it does everything manually.

One of the most obvious limitations was how the space was distributed between icons, it was not distributed at all and there was always empty space at the end. In previous versions it looked like:

Fortunately we came up with a solution for this release, with these results:

While the goal is to eventually move to a more modern code and use a proper gtk+ widget, this improves the situation until we can achieve that major goal.

Thanks Nikita Churaev for this work!

Desktop files aren’t special treated

When Nautilus had desktop icons we used to manage desktop files in a special way since the desktop was used as a way to launch applications. Last release the desktop was no longer part of the Nautilus code, so we could finally reconsider having desktop files as a special file to be launched or not.

The special treatment of desktop files had several problems, including security concerns (we had a CVE last year!) . Unfortunately the way we had to handle them was a blocker for the major rework of file operations that we are planning. This work will allow proper handling of files operations making them faster and secure.

The .desktop files are now treated as normal files: their real file name is shown and they open as text files in applications like GEdit. We leave their graphical edition to more featureful tools like Alacarte. We can provide replacements for some of their uses (you can provide use cases in the ticket). This goes with the vision of having a canonical path for trusting binaries and permissions rather than rely on Nautilus for such a delicate action.

CI/CD and automatic testing with Flatpak

One of the major work this release has been around making the whole feedback cycle of Nautilus development shorter and make as easy as possible for everyone to test any change we do to give feedback even before the work is implemented.

As part of this, we have improved the experience of Flatpak with Nautilus, created a whole continuous integration (CI) and continuous delivery (CD) system with GitLab and Flatpak that automatically creates an app bundle, so anyone can install any work in progress of Nautilus with a single click.

Going to any merge request and clicking the “View app” button will install a Flatpak app bundle where you can try the work in progress. A nightly of Nautilus that updates every day is also available in the GNOME Nightlies.

It has proven already successful with the toolbar redesign helping us getting early feedback and iterating on it. We hope that from now on everyone try the nightlies and engage with us on Nautilus development by either providing feedback, designs or contributing code.

Also, maybe it will come as a surprise, Nautilus didn’t really have automatic testing. To improve the situation we have invested 3 months on providing automatic testing to Nautilus. Now we have a full framework and batch of tests in the most critical parts like file operations and search. Automatic testing will improve stability and will avoid regressions reaching the user and has already made us find and fix several issues.

Thanks Jordan Petridis, Ernestas Kulik and Alex Fazakas for this work!

Fast search of recent files

We have implemented a new search engine for faster results of user files that have been recently used. This will be an improvement specially for users in Ubuntu LTS that don’t have tracker installed and were used to search for files in the overview in Unity.

Thanks Marco Trevisan from Canonical for this work!

And more…

We have also work in many more details.

Only current folder searching

We have redesigned and added an information bar in case only the current location is being searched:

A detail to spot here is that Nautilus has the FTS feature which also takes into account the actual content of the user’s files for wider and better results.*

* Not available in Ubuntu

“Open in Disks” button

Advanced tooling for partitions and external devices can now be accessed easily in the properties window. Thanks Rahul Verma for this contribution!

Touch support for menus

Nautilus now supports popping context menus in touch devices by long pressing a single file or the view itself. This is another step on making sure Nautilus can be used with touch devices, as they become more relevant specially for business like design, sales, marketing and finances. Thanks Jan-Michael Brummer for working on this!

What’s next?

I hope you will be glad of this release, it has been a continuous effort of several people during 6 months, and we think it pays off!

While we fix the issues this new code introduces, we are already planning about the work for the next release. So what’s to come?

Ernestas Kulik is working (and sweating it) the port of Nautilus to gtk4. We have created a Flatpak nightly for testing, however it’s still very early and most likely will have major regressions. Our hope is to introduce gtk4 for Nautilus 3.32, we will announce the ready status for testing in the upcoming next 3 weeks.

Apart from that we have many other things, we expose our vision and planning for the project in GitLab. So go ahead and check what is going to come and provide input ahead of time to help us steering the project, check out the short term vision and planing, the long term vision and planing and lately, the vision and planning with possible user impact.

Thanks to all the contributors!