GSoC 2022: First update – Planning

Introduction

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.

Timeline

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.

Conclusion

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 🙂

GSoC 2022: Introduction

Hello there!

My name is Ignacy Kuchciński and I’m studying computer science at UMCS in Lublin, Poland. I’ve been making minor contributions to GNOME over the past few years, and among the projects I was looking into was GNOME Files, a.k.a Nautilus. I learned about GSoC in #nautilus irc chat room as I observed the effort to port nautilus properties dialog to use GtkBuilder, and I really liked the idea of it – have a chance to make a more significant contribution and be a part of an awesome community on a deeper level. Fast-forward two years, I’ve applied to Nautilus for GSoC’22 and got accepted to help revamp the “New Document” submenu – an adventure I’m very excited to undertake.

The project

GNOME Files, also known as Nautilus, as many of you already know, is a file manager for GNOME. Its goal is to provide the user with a simple way to navigate and manage files.

One of its abilities, the New Document creation feature, is considered to be a part of core user experience, but its design implementation has room for improvement, especially in discoverability and usability. There are also further regressions to be addressed caused by the GTK 4 port.

For this project the idea is to design and implement a new UI for this feature, the main goals are following:

1. Exposing an entire tree of possible templates in a single view, instead of nested submenus.

2. Making use of visual representations of each template, such as icons, to help users find what they’re looking for.

3. Always showing the New Documents menu, even if the Templates directory is empty – in that case, offer the user the ability to add new templates, both pre-defined as well as custom.

4. Add the ability to search the list of templates.

5. Add the ability to quickly rename the newly created files.

I’ll be working in close cooperation with the Nautilus maintainer Antonio Fernandes who will be my mentor, GNOME design team, and with various user studies in mind. Initially, the project was supposed to have only one student working on it. However, in quite an unexpected turn of events, two interns were selected. As a result I’ll be working on this project together with Utkarsh Gandhi whom I congratulate for getting selected as well!

Nevertheless, the fact remains that the initial project was meant for a single person. Fortunately, there is a room for expansion: resolving the “no default templates” situation, which has a very big impact on the discoverability and ease of use of this feature. We’re still figuring our strategy, but one of the possible scenarios is one of us focusing on revamping the “New Document” submenu, and the other figuring out how to deal with the lack of initial templates.

Conclusion

I will keep track of my progress on this blog, and you can contact me on the GNOME IRC/Matrix on the #nautilus channel. I’m very excited to take part in this journey among the welcoming community and I look forward to contributing towards it. 🙂