GSoC 2022: First update - Planning


This summer I'm contributing to Nautilus as part of GSoC, focusing on improving the discoverability of the new document feature. In this post I will describe how the project was split between me and Utkarsh, briefly go over the schedule established for my work, and briefly mention my current research in GNOME Boxes.

The split

The initial short project idea assumed that only one student was going to work on it, so when both me and Utkarsh Gandhi were accepted, we had quite an unexpected situation. Fortunately, the fact that the project had many stretch goals allowed us to split it so that both of us can work independently. The unexpected situation has taught us to share tasks in a meaningful way, which has made us all the more able to grow at our assignments, furthermore we have learned how to work without blocking each other's progress. Most of the initial tasks that aim to revamp the UI and the code of the New Document menu go to Utkarsh, while I'm going to focus on the discoverability side and the default experience of the user, meaning what happens when there are no templates in the Templates directory.

Make "New Documents" feature discoverable

Finally, the subject of my project turned out to be about resolving the accessibility issue of this feature - when there are no templates in the Templates directory, the new document menu is not shown, and many users don't know about its existence. They completely ignore the Templates directory, not knowing what it does and just assuming it's one of those "just there" directories and files. Another thing I'll take a look at is the ability to easily add templates, without the cumbersome process of creating and copying files. I'll also reconsider the pros and cons of default templates.


While it's not final, because we've lost our crystal balls, here's the current anticipated schedule I'll be following:
  1. Research the underlying problem and use cases by looking at other implementations (operating systems, file managers, web apps) (2 weeks) - 12.06-26.06 (current)
  2. Design a mockup based on above research, adhering to GNOME HIG and designers review (1 week) - 26.06-03.07
  3. Code prototype iteration in a development branch that provides a meaningful empty state, makes sure the "new documents" menu item is always shown, and the user can add more templates (2 weeks) - 03.07-17.07
  4. Test and review the prototype iteration, refine the prototype based on feedback and repeat if necessary (2 weeks) - 17.07-31.07
  5. Open a Merge Request to merge the development branch to the master branch (4 days) - 31.07-04.08

Beginning of research

As I have started the first point of my timeline/schedule, I found myself in need of many virtual machines. Equipped with powerful yet simple and elegant GNOME Boxes, I managed to run 2 different operating systems on it:
  • ChromeOS Flex - knowledge gained on how to work with libvirt xml files allowed me to figure out how to get this web centric system running in Boxes. I have documented the necessary steps in this guide, but it definitely deserves a separate blog post.
  • Windows 11 thanks to this excellent guide.
Next to try are file managers from other linuxes, and web apps; already tested macOS Finder. My next GSoC update definitely won't lack colorful pictures.


The project is coming along quite smoothly, with reasonable objectives and deliverables. We’ve managed to figure out how to split the project, establish a schedule for our work, and I’ve learnt how to use GNOME Boxes to test different implementations of the “New Document” feature. I found the community very helpful and welcoming, just like my mentor Antonio Fernandes who’s very understanding and patient :)


Popular posts from this blog

GSoC 2022: Introduction

GSoC 2022: Second update - Research