Beginning Outreachy journey with Gnome
Tags: outreachy, gnome, internship, soc
Published: 2022-05-25 16:08:44

> This blog post introduces myself , how I got started as a contributor to  gnome as contributor and what my project is about .

---

## About me and my first encounter with gnome
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.
![linux vs windows](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dtogl9cc16xguhqqm8rq.png)

---  

## From gnome user to gnome contributor
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. 
![Satisfied](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lozpp1uybakorab5pg98.png)
 
---

## How I get started
I looked at this [repo](https://github.com/ToshioCP/Gtk4-tutorial). But still going through official Gtk documentation was difficult for me, I went through this [book](https://www.oreilly.com/library/view/foundations-of-gtk/9781590597934/). 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](https://youtube.com/playlist?list=PLriKzYyLb28mn2lS3c5yqMHgLREi7kR9-) 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](https://github.com/redoC-A2k/vtodo) 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](https://gitlab.gnome.org/GNOME/gnome-clocks/-/merge_requests/194) .
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](https://developer-old.gnome.org/gobject/stable/pt01.html) documentation. 

> Besides, I also asked many of my doubts on [newcomers](https://app.element.io/?updated=1.10.13#/room/#newcomers:gnome.org) channel .

--- 

## How I got outreachy internship ?
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.
![mail of acceptance](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/65f7orwkm0fbf8xr0qu7.png)
---

## About my project
My task in this internship is to port the [gtranslator](https://gitlab.gnome.org/GNOME/gtranslator/) from gtk3 to gtk4 under mentorship of [Daniel Garcia Moreno](https://gitlab.gnome.org/danigm) . 
![Gtranslator screenshot](https://imgur.com/aGr7hLM.png)
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 - 
1. Updating Gtk version from gtk3 to gtk4.
2. Replacing libhandy with libadwaita.
3. Update custom styles to make app work with dark theme.
4. Adapt the app's ui to gnome HIG.

--


<sup> 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. </sup>