Files 40.beta: More productivity and some eye candy

Development of the nautilus project has picked up the pace for version 40, thanks to contributions from multiple people, new and old contributors alike.

I’ve previously blogged about the new Creation date property and the enhanced Wallpaper action, and this time I’m talking about changes which have made it into the beta or are set for the final release. There is a mix of enhancements, bug fixes and redesigns. And lot of screenshots.

Tab-completing path typing

The Files app has got a keyboard-only interface which allows navigating into a folder by typing a path. You can just start typing a path beginning with /or ~ to enter this mode, or Ctrl L if you want a relative path from the current location.

James Westman has enhanced this feature with automatic path completion suggestions. Read James’s blog to see it in action. It’s much more useful and enjoyable now.

File conflict automatic renaming

I’ve implemented an usability improvement which has been suggested by Jon McCann: if you move or copy a file but don’t want to overwrite another file with the same name, a new available name is automatically generated:

File conflict dialog suggesting a new name to avoid overwriting existing file
The automatically appended text is selected for convenience. You may want to replace it with something more meaningful.

Transfers & operations progress estimations

Making estimations on file operations is hard! Many factors may affect the speed, and unexpected file conflicts may change the final number of handled files compared to the initial count.

Over the years we have received reports of some weird results: unrealistic time estimations, incomplete progress bars for finished operations, number of files moved exceeding the total, etc.

Thanks to valiant efforts from Sachin Daluja and Ondrej Holy, the most visible and jarring bugs have been fixed, and the structure of the code has been improved.

Delete progress estimation

Extracting password-protected files

After bringing us the new Wallpaper portal integration, Felipe Borges has extended our simple extraction process to handle password-encrypted archives correctly. Instead of failing without any explanation, Files now asks the password as it should:

Dialog with password prompt for zip file

Running scripts directly

The Files app has always featured the option to run executable text files (commonly “scripts”). However, it’s been hidden in a Preferences section requiring people to make an awkward compromise between opening (e.g. in a text editor) or running.

A couple of years ago I’ve ignited a community brainstorm about running executable files from the Files app. Revisiting the very useful feedback and discussion from that time, I’ve implemented a simpler, safer and more empowering solution: a new action to the context menu.

Context menu displaying "Run as a Program"

This new action comes with a bonus: it runs scripts in a Terminal window, which ensures the user gets feedback from and control over the script’s execution.

With both Open and Run available in the context menu for executable text files, the old preferences option became obsolete, which, along with a few other optimizations, has prepared the ground for the…

… redesigned Preferences!

Starting from Sam Hewitt’s design, this was further polished by Tobias Bernard and implemented by Adrien Plazas.

New Preferences design, top part New Preferences design, bottom part

In addition to looking modern, the new Preferences dialog organizes the options in a more straightforward fashion, and describes them in clearer and more helpful ways.

Smooth visuals

You may have noticed the Preferences window has rounded corners all around. This feature has been extended to the main window, and Preferences too, by Christopher Davis.

Files app and Properties window displaying round corners


For testing the latest developments in GNOME Files, without modifying the Files app in your system, there is a Nightly flatpak. To install it, copy and run the following command in a Terminal:

flatpak install --from

The Nightly can now be launched from Activities, or with this command:

flatpak run org.gnome.NautilusDevel

(If your operating system doesn’t support flatpak out of the box, see the Quick Setup guide.)

Files 40.alpha: Creation timestamp & Wallpaper portal

Hi there, GNOME Planet.

In my last post I’ve promised that the next one would have screenshots of new developments in the Files app, and it’s finally here!

It took me longer than I expected back then. After the 3.38 release, I had to focus my time elsewhere: assisting and training local primary health care teams in managing and following up of the raising number of COVID-19 cases assigned to them. With this mission accomplished, in December I’ve picked up again on my GNOME contributions and have something to show you now.

Files 40.alpha

Last week we have reached the alpha milestone for the upcoming version 40 of GNOME Files. The highlights of this pre-release milestone are a long requested feature to show files creation timestamps and an enhancement to the Set as Wallpaper action.

Creation date

Finally the screenshots!

List of files sorted by creation date
“Created” column can be added by right clicking on the list headers.
List of files sorted by creation date
The full date and time is shown in the file Properties

This was made possible thanks to Thunar developer Andre Miranda’s laudable initiative to implement the low-level glue for all GIO-based apps to benefit from. It was then easy for me to add the column to list view, and for Apoorv Sachan to add it to the Properties dialog (a nice follow-up to his GSOC project cleaning up the Properties code and UI).

This is a new feature, so it would be great to have people testing it before the final release. It’s easy to test, see instructions at the end of this post.

There as some open questions:

  • What to do for files and folders in file systems for which we don’t have access to the creation date (e.g. FAT, NTFS)?
  • Should we do something in case the Modified date is older than Created date, which is counter-intuitive even if technically correct?

Wallpaper Portal

There is a “Set as Wallpaper” action in the context menu for image files, which had a few odd behaviors which were not in sync with the user experience provided by the Settings app.

Thanks to Felipe Borges, not only have these problems been fixed, but the feature has been enhanced! Now you get a preview of the wallpaper, so you can confirm this was the correct picture and whether it’s going to look good, before confirming the desktop wallpaper change.

This is provided by the wallpaper portal created for sandboxed apps, but it works even outside Flatpak.

More coming soon

There are some more enhancements which didn’t make it into this milestone, but which I hope to be able to deliver before the beta milestone. I’ll talk about them in a future post.

I’m also very happy to see many new contributors fixing both major and minor bugs and implementing exciting features in the Files app. Now, back to reviewing the MRs, so that I can highlight their contributions in a future post!


For testing the latest developments in GNOME Files, without modifying the Files app in your system, there is a Nightly flatpak. To install it, copy and run the following command in a Terminal:

flatpak install --from

The Nightly can now be launched from Activities, or with this command:

flatpak run org.gnome.NautilusDevel

(If your operating system doesn’t support flatpak out of the box, see the Quick Setup guide.)

6 months later: nautilus co-maintainership and GSoC mentorship

It’s been a little over six months since my last blog post. It’s not like nothing happened since; I’ve just not got used to this yet.

As Ondřej Holý has previously blogged, the (now old) news are that he has invited me to be co-maintainer of the Files app. I was hesitant at first. I’m not sure if it was what’s called imposter syndrome, but I did worry I was not qualified to be maintainer, as I have no formal education on software engineering. I’ve started to overcome my doubts while attending GUADEC 2019, thanks to everyone who encouraged me, and I’ve finally cleared them thanks to Ondřej’s invitation and support. Now I’m happy to have accepted the challenge.

Later another challenge arose: becoming a mentor for a Google Summer of Code project. The first few times I was asked if I would be a mentor, I’ve dismissed it as not having time, but the actual reason was I believed I would not come up with a good project idea. As it turned out, I actually had already written a project idea, I had just not realized it until Felipe Borges told me it was a valid idea. And this past week the project has been accepted. Today I’ve had a great conversation with my student, Apoorv Sachan, as our first scheduled IRC meeting. Now I’m also happy to have accepted this challenge too.

Now, enough with boring personal experiences, right? Okay, okay, I hear you, I promise next post will have screenshots of new developments in the Files app!

My first GUADEC

My first…

This summer I’ve had my first travel by plane, which has been my first trip to Greece, where I’ve had my first in-person meeting with fellow GNOME contributors, by attending my first GUADEC. These were but some of my “first”-type achievements which made me very glad to have attended it, and happy to report on my experience.


The conference was very well organized, it had an excellent, enriching track of talks and workshops, and two inspiring keynotes. There was a good balance of topics from both the technical side and the human side of GNOME. This is suitable for attracting more people who, like me, are not (primarily) programmers. Indeed, there was always something interesting for me in at least one of the rooms. Congratulations and thanks to the organizers and everyone involved in making this conference.

Setting a Positive Voice for GNOME by Britt Yazel and About Maintainers and Contributors by Georges Stavracas were two non-technical talks of high importance and surprising connections to each other. GNOME contributors are not always prepared to the exposure to and interaction with the Internet populace outside. If not well managed, this gives rise to bad experiences which alienate both users and contributors. We need more talks like this to understand the problems and develop better communication strategies, promoting the well-being of our contributors and the public image of our community.

I’ve particularly anticipated the first keynote, GNU HEALTH: The Fight for our Rights in the Public Health System by Luis Falcón, because the subject is very dear to me, a big problem I’m facing every day at work. Dr. Falcón has put a lot of thought into the problem and is creating a solution, so I was very glad to listen to his talk and to talk with him and other people about this topic afterwards. I’ve decided to learn more about GNU HEALTH and how I can help change my country’s NHS software policy.

Renata Gegaj and Clarissa Borges gave talks on user research and usability testing, which built a lot of momentum to apply these practices more regularly into our design and development process. Later, in the BoF days, Renata was also kind enough to apply some of her expertise to review some usability issues in the Files app. And since the conference Clarissa has been building a usability testing team.

These were some personal highlights, but I’ve also attended or watched the recording of other great talks. I’ve participated in the Unconscious Bias workshop, which, in a playful manner, demonstrated how varied life experiences are, and how that may limit our perception in many cases; while I was already aware of some of my biases, I’ve become aware of a couple of new ones. In the BoF days I’ve helped with the Newcomers Workshop and participated in the Inclusion & Diversity one.

Besides attending talks and BoFs, I have also been involved as a volunteer. Unfortunately, on the first day I arrived too late for the volunteers’ meeting. Despite that, I was warmly welcomed by the organizers and other volunteers, and I was able to help with gathering the lunch tickets and assisting speakers in talks. It was my first time volunteering in a conference, so I’ve learnt a lot.

At the venue I also was able to meet fellow nautilus team members and other people I used to talk with online, watch Carlos Soriano and Cosimo Cecchi doing a live MR review for nautilus (even getting one of my own MR reviewed), and try a demo of GNOME in VR (courtesy of Lubosz Sarnecki). At first I didn’t know anyone, but soon Felipe Borges found me and introduced me to other people. The Bingo was a great way for new faces like me to approach and start a conversation with new people (I even won a souvenir!). The whole community was very welcoming to me, and people I admired were really down-to-earth human beings (which actually made me admire them more).

During my stay in Thessaloniki I got to eat delicious food (as expected of Greece!), taste greek wine and ouzo, do outdoor exercises, have a picnic in the mountain, see the sunset on a pirate boat, visit the Rotunda museum, and share special memories with great people.

For all of above, I’m thankful to the GNOME Foundation for sponsoring my attendance.


Good Morning World

This is a deviation from the default “Hello World” title, not the name of a breakfast TV show.

Hi. I’m António Fernandes and this is my newly-created GNOME blog.

This is a belated debut, as I’ve been a foundation member for two years already. I’m doing it now thanks to GUADEC (the topic of the next post) and Sam’s challenge (which inspired the name for this blog).

My long story short: Thanks to Ubuntu Lucid, I’ve started using GNOME. Thanks to JHBuild, I’ve started using gnome-shell 2.9x. Thanks to the Bug Squad, I found an easy way to contribute back. Thanks to nautilus being top 5 in number of bug reports, I found a niche to seasonally triage the following years. With Carlos, I became part of nautilus team. And with Builder, I’ve learnt C and started hacking on nautilus.

Nowadays I manage nautilus issue reports and merge requests in GNOME’s GitLab, but I’m also very interested in UX design and usability. These are topics you can expect me to write about in this blog.