Make theme authors’s life easier – Support margin property in CSS

The past week I tried to give the GTK+ popover design to popovers in gnome-shell.

That meant to add margin to the items. But, I noticed gnome-shell doesn’t allow that. So I had to do a lot of code refactoring just to provide some margin to those actors. Indeed it was not a good solution.

Yesterday, I read that some important theme authors ( ) felt like gnome-shell lack support of the necessary css for them, tough they kindly understand why. Some authors solved the margin issue in their extensions of gnome-shell. At the end we had some authors that apply a solution “downstream” while upstream is waiting for that functionality.

So I really encourage those people that, if you found something that could be added as a functionality, make a patch for upstream instead of creating their own solution that no one can benefit of. All of us will appreciate that! =)

Most of the times, if something is ugly, if some functionality is missing, etc. it’s because we need patches, not because we don’t want them. But I understand that feeling.

As always, I saw a challenge there. So I implemented CSS margin support for gnome-shell!

Now, all the code I did for matching GTK popovers design in the past week that was 180 lines of code, now is reduced to just:

.popup-menu-item {
spacing: 12px;
margin: 0px 10px;
border-radius: 4px;

I would say, it’s looks much better!

And the result:



I hope theme authors and designers are a little more happy now =)

Important to say that this work wouldn’t be possible without Florian Müllner helping me very close and Emanuelle Bassi that is always there for answering.



Gtk popovers item design for gnome-shell

Free time contributors to gnome contribute because they like the project and also to experiment things.

Sometimes I contribute to a patch that I see is difficult for me just because I like challenges, and gnome is a great place for that.

In the last two weeks I experienced both.

The first thing, as the tittle say, I tried to match gtk+ popover design for gnome-shell, and so far I achieved it! It was just a experiment, so I didn’t even ask designers if it is the wanted design before trying to do it. So it was risky, because maybe I was doing it wrong.

Here’s a comparison image:


and the bug report:

After some kind discussion, designers agree that this is not the wanted design, and that the first one is clearer, and probably is the desing that gtk+ popovers should have, and not backwards. And yeah, they are right! That is why I’m a programmer and they are designers =) (tough of course I guess they accept opinions from everybody, and even more if you provide code to test it in real).

But after all, I did it for experiment new things, so I hope designers don’t feel bad for “killing” the effort =).

In the good side, I fixed a somewhat related  bug in the meantime, which probably it wouldn’t get fixed if I didn’t try to do this.


On the other hand, last week I made a challenge. In fact three challenges:

1- Learn how shaders works

2- Modify C code from gnome

3- Learn how mutter works

So after all, and in very little measure, the next bug have all of this, so I tried to fix it:

After one day and a half, I finally achieved to make a set of patches to provide gnome-shell a real(real because it have inner and outer radius) vignnette effect! Also solving a bug that prevented to have gnome-shell and mutter vignnette effect to match.

So after all, I’m kinda happy I did two set of patches that were a challenge for me. Hope I can maintain this continuity along the weeks (probably I won’t be able)

Swarm animation for gnome-shell

There’s been long time I didn’t post. Normally I don’t like to spend time writing post, and instead I like to make things happens instead.

But today is not the day =)

This year I also applied to GSOC for gnome-shell (and in fact, to whatever gnome needs). The project will be to add a swarm animation to the gnome-shell. Here’s the link of the animation I have to achieve:

So far so good I tried to implement a prototype, and it kinda works. You can test it at:

BUT, I’m being a bad boy here and I’m tricking clutter, so don’t look at the code.

If I become elected for gsoc I’ll end this project and probably do other things on gnome-shell, polari, or whatever gnome needs to push the next release, since it seems that I can end the project before gsoc ends.

Hope you like!