This blog post introduces myself , how I got started as a contributor to gnome as contributor and what my project is about .
I am currently in the third year of my integrated Master's Program at a tier-3 college in Indore, India. I am a technophile since childhood and in those days , I once installed kali-linux in vm (as google searches always show it was easy to hack neighbour's wifi with kali-linux 🤣 and cellular internet was expensive back then) but to my surprise the kali-linux looked very complex, then I again google searched and one advice got fix in my mind and that was "Kali linux is complex , start with a simple linux distro (ubuntu) and use it instead of windows" (A simple way to learn a tech thing is to use it). So When I entered college, one thing I was determined at ... and that was using Linux. I installed ubuntu Linux and loved the way it was beautiful and responsive, just one click and the application gets open immediately. Later I come to know that GUI which I am looking at and experiencing is actually gnome desktop.
I then tried other DEs (desktop environments) . But sometimes they offered less functionality to get the work done and other times provided more features than needed, making them complex and crashing occasionally. Gnome is a proper match of the two. The applications in gnome were simple to use, stable and provided all needed functionality.
In one subject of our college, we need to submit a study report on an open-source application. So at that time, I decided to get to the development side of gnome. Although, studying big thing as gnome application, is itself a very big thing and I was a newcomer back then . Fortunately, that was an online semester and most of us submitted copied report from the internet.
I looked at this repo. But still going through official Gtk documentation was difficult for me, I went through this book. But some things still were not clear to me. It turns out I needed to learn about GObject and then it became more difficult. Hopefully, there was vala which works with objects similar to java,c++.This playlist is must watch, after watching this and coding alongside, I developed some confidence and then following my principle (use tech to learn it) I tried to write this gtk app (although it is still work in progress), while working on this application I realized that a lot of code has to be written . So to get some idea what are good practices for coding and proper way to structure the project I started to understand gnome-clocks codebase and then one fine day I made my first MR .
But everything isn't in vala and how does gobject works that I still wanted to know , then finally, I found these two gems 💎 one is chapter 2 of "The Official GNOME 2 Developer's Guide" and this documentation.
Besides, I also asked many of my doubts on newcomers channel .
When I made my first contribution to gnome (!194 to clocks) ,
that was the time around february and in that month, I also filled my initial application of outreachy, then around 25 march I received mail that my initial application has been accepted. So when project list got finalized , I started contributing to Gtranslator . Then I filled my final application with contributions and submitted it. On 20 May I was on cloud nine , when I saw this mail in Inbox.
My task in this internship is to port the gtranslator from gtk3 to gtk4 under mentorship of Daniel Garcia Moreno .
Gtranslator is a gui program which helps the translators to translate a application , under the hood this internationalization happens with the use of gettext library .
In this porting we plan to achieve these tasks -
- Updating Gtk version from gtk3 to gtk4.
- Replacing libhandy with libadwaita.
- Update custom styles to make app work with dark theme.
- Adapt the app's ui to gnome HIG.
NOTE: All the books I mentioned can be found online for free with google searches . And second thing is I didn't use gnome-builder while writing vtodo app, I just followed youtube playlist way. Third I didn't read all the books completely , but rather just some specific chapters.