SystemActions are almost done!

So for the past weeks I’ve been working on adding system actions to shell search.

The results so far can be seen in the picture below:


In total, there are 5 actions that have been added: Power off, Suspend, Lock screen, Switch user and Log out (only three of them are available in the picture, but trust me, all five of them are added).

The symbolic icons could be changed (the power off one, for example, doesn’t look like the one in the mockup that’s attached to the bug in bugzilla, but that’s trivial to change).

The final touches also include coming up with the list of matching terms for each action (for example, Power off might be matched by either of ‘power’ or ‘shutdown’, etc.).

So I can proudly say that Gnome-shell will soon have system actions present in the search results :).

GSOC on gnome-shell

So this year i’m a GSoC student again :), but this time not on Polari, but on gnome-shell.

Even though the projects are different, they still rely on the same technology (GJS) so it’s definitely easier for me to understand the code at first sight than it was last year.

The first thing i’m working on is this bug and i can happily say that it’s nearly done :). A few minor adjustments and it will look just like in the picture.

There are still some questions about adding transitions (but nothing sure so far) and that’s about it. I’m going to write another post soon, when the search results will look exactly like the mockup!

GNOME Days in Bucharest

From Wednesday up to Saturday we had the pleasure of hosting some very interesting events related to GNOME and open-source.

First of them was the GSoC presentation where previous GSoC students shared their experience with those eager to try it next summer. We had a lot of people interested, thus we nearly filled a whole amphitheater.

The next event (Thursday) was about why open-source is so important not only for individuals, but for the whole world. Here we had Carlos as a speaker and I must say that he did a really great job. He gave away some RedHat swag for those that asked/answered questions.

Carlos talking about open-source

Apart from the fact that it was 19:00 and everyone must have had a tiring day at the university, we still had students interested.


Compared to what was going to happen during the third event, the first two ones were a piece of cake :).

The third event, which was on Saturday, was a small hackfest (we thought that it was going to be small. We couldn’t have been more wrong). So we announced the event, tried to advertise it as well as we could (we got help from our teacher, Răzvan Deaconescu, he also helped us with the space needed for the event and a lot of other stuff, so we are very thankful to him 🙂 ).

Then Saturday came. And then the students came. And then we filled a whole room. Then two rooms. Then three rooms. Then we even needed a fourth one that was half full. Sooo… yeah. We were just amazed.

Here we can see Carlos swimming in a room full of open-source loving students.

The main goal of our event was to at least build a project. You might say that we didn’t ask for that much, right? I mean come on, how hard can it be to follow some instructions and build a project, right? Well, thanks to JHbuild, and it’s wonderful way of ruining our hope, we spent about 3 to 4 hours trying to just build something.

Needless to say that the majority of the students didn’t manage to build anything. But it wasn’t their fault. Since things weren’t that great, we decided that the most we could do was a live demo of how the normal workflow should have been.

The projector was actually working, really.

After Carlos filed a test bug (for Nautilus) on bugzilla, Răzvan went on and fixed it. Thus, we showed them how a bug is found, filed, fixed and pushed on bugzilla for review.

I don’t know what he was taling about, but i tried to troll him 🙂

Afterwards, Carlos asked the audience if at least some of them wanted to go back to the rooms and try to further build their projects OR (pay attention) go grab something to drink. They chose to go back and try to build even more 🙂 (it really happened, yeah). And believe it or not, some of them even fixed some newcomer bugs.

It was an amazing week, an amazing experience and I bet some of the students will still continue to build (a process that will surely take about two more weeks of their innocent lives, thanks to JHbuild, but their perseverance will prevail) and then even contribute to GNOME. We promised some more such events in the future, so get that FlatPak done, PLEASE!

Special thanks to Carlos Soriano and Răzvan Deaconescu, the ones that made this possible! Also, Alexandru Căciulescu helped us with promoting the events so we owe him one :).

GNOME at Linux Install Fest

On Saturday (a week ago, I know, I know, I had a full week 😦 ) there was this event called Linux Install Fest held at my university. It’s an event organized in order to help first year students install a Linux distro on their laptops (here at our uni, we work almost entirely on Linux, so we need to help those that have never used it and set up their distros 🙂 ).

Us, the 5 GNOMiEs (Iulian, Gabriel, Alex, Razvan and I), were just a few of the helpers that were running around (45 in total) trying to respond to the huge request of students wanting to hurry up and have a running (usually in dual boot mode) environment. There were around 220 students (new record actually 😀 ) that were present throughout the day, so it was pretty intense.



Of course, some of them were really desperate, as we weren’t enough helpers to accommodate the demand:


We used the L.I.F. as a first chance to promote GNOME in Bucharest. And we did. We handed fliers (that were designed by Bastian) and we talked about what GNOME is and what we do.

The two distros that we installed were Ubuntu GNOME and Ubuntu (the standard one with Unity). It’s worth mentioning that there were some laptops that wouldn’t boot the GNOME Live USB (for unknown reasons). Some of them wanted Ubuntu specifically, while others chose GNOME. There were also some unfortunate laptops that simply wouldn’t allow us to configure a dual boot environment (and we ended up either installing a virtual machine or giving up entirely 😦 ).

All in all, I’d say it was a pretty good event and it was also our first try at promoting GNOME here, which worked out pretty well. We are actually looking forward for the next events (we have some in mind, but we need to dive into the details of them).

So stay tuned for more!

My GUADEC experience

It’s been three days since I got back home and I have to say that I already miss being there with all the GNOME community :).

I actually didn’t know how this experience would be. I had never actually been to a GNOME meeting before and all my interaction with the community was purely online.

But man, the whole trip was great. I met really awesome, fun and amazing people that I would enjoy working with. And we actually did that, as some of the time was actually spent rebasing and rewriting the git history of my GSoC project :D.

I was amazed by how friendly everybody was and how quickly I integrated myself into the community. They made it so much easier. It didn’t take more than a few minutes until we started having beer together and cracking jokes. And this was just the first night when I had just arrived there.

The core days involved attending talks throughout the day (with a lunch break and several smaller ones in between the talks). I even volunteered to film two of the presentations and it was fun. I even had my own lightning talk, during which I presented my GSoC work.

The next three days had a schedule that was a bit more relaxed, the BOFs were quite interesting and I learnt quite e few interesting things during them.

I would really like to thank the GNOME foundation for sponsoring me on this trip and for giving me this awesome opportunity!



Rebasing on the way

As the title says, the User Tracker and the Contextual Popovers are merged and work fine :D, all that remains is to come up with a logical history of the commits so that they make sense chronologically.

Basically, we’ll use the magic that git provides in order to combine, modify, split (and so on…) patches so that they look nice (way better than they look now) when they are going to be landed :).

I admit, the way I committed things doesn’t quite make this task easy, as I would often begin working on something, then commit that, then fix some other thing in some other part, and then commit that, then come back to the first thing that was committed, maybe modify that or delete it completely, or whatnot.

The reason for that is the fact that you cannot always predict what the next step will bring, and that’s totally fine. You don’t even have to. You just make the necessary changes, you end up in a place where you realize that you need to rethink some bits, and then you go back and do that. As I said before, our magical friend Git is here to save the day (only if i were a guru in that, which I am not, but still it’s fun).

More on this soon 🙂

Some Rework on Tracker and Popovers

For the past three weeks there was a lot going on. First of all, the userTracking idea we initially had proved to provide a bit less than we actually needed, so we agreed that we needed to come up with something more complex, and that lead us to the creation of a new module, the UserTracker. Basically, the user tracker is a whole new module that does what its name says it does :). But the old userTracking stuff was integrated in the ChatView (hence the need to separate the logic into a stand-alone module). This was a bit difficult as not all the things were clear from the start: what signals to send, how to filter them so that we don’t end up with a ton of signals everywhere around the app that would need their own filtering process.

Very important thing: the UserTracker watches users both locally (in the room you are on) and globally (all the rooms you are on, rooms that are all on the same network). So, each network (or account, as they are called) has its own UserTracker that has the job of tracking the local status in all the rooms, and the global one on that network.

The global tracking part uses detailed signals, while the local one uses callbacks in order to kind of simulate the idea of signals. Both these measures were taken so that we minimize the number of filtered signals (basically there is minimum filtering done).

Whoa. A lot about the tracker so far. Now the visual part that will use it. Well, visually speaking there is not much of a change on the Popovers, sure, there were some minor bugs fixed, but in a nutshell the popovers are very much the same visually speaking. What happens in the back-end, well, that’s a different story :).

The Popovers had to be rebased on the tracker branch, and that had its own challenges as well. The current work that’s being done is in order to make use of all the things that tracker has to offer, but inside the popovers.

Stay tuned for more news on the popovers, as the work on them is advancing towards the finish line :).