Blame mode for gitg

So these days I was a bit tired of documenting my final degree project and I started to work a little on gitg. For those who don’t know what is gitg, gitg is a git repository viewer for GNOME. I really love this project and I contributed some time before too.

This time I decided to provide the blame mode which in ready in my github. Here is the screenshot, I hope you will like it:

Posted in Uncategorized | 5 Comments

[Announce] pygobject 2.28.6 released

I am pleased to announce version 2.28.6 of the Python bindings for GObject.

The new release is available from

What’s new since PyGObject 2.28.4?

  • closure: avoid double free crash (Ignacio Casal Quinteiro)
  • [gi] backport of “GVariant has a GType” fe386a (John (J5) Palmieri)
  • [gi] fixes to backport commit 6b5a65 – in older glib GVariants are still structs (John (J5) Palmieri)
  • GVariantType is a boxed struct (Tomeu Vizoso)
  • Use _gi.Struct to wrap fundamentals (Tomeu Vizoso)
  • Added __eq__ method for Gdk.Color and Gdk.RGBA (Jason Siefken)
  • Remove useless import (Ignacio Casal Quinteiro)
  • Revert “[gi] Removed hack to avoid using GLib.Variant.new_variant.” (Ignacio Casal Quinteiro)
  • closure: Check the out arg is not null. Fixes bug #651812 (Ignacio Casal Quinteiro)
  • Fix GC-related crash during PyGObject deallocation (Daniel Drake)
  • Fix symbol names to be locale independent (Martin Pitt)
  • Updated DOAP file (Sebastian Pölsterl)


GObject is a object system library used by GTK+ and GStreamer.

PyGObject provides a convenient wrapper for the GObject library for use in Python programs, and takes care of many of the boring details such as managing memory and type casting. When combined with PyGTK, PyORBit and gnome-python, it can be used to write full featured Gnome 2 applications.

Like the GObject library itself PyGObject is licensed under the GNU LGPL, so is suitable for use in both free software and proprietary applications. It is already in use in many applications ranging from small single purpose scripts up to large full featured applications.

PyGObject requires glib >= 2.22.4 and Python >= 2.5.1 to build.
GIO bindings require glib >= 2.22.4.

The Introspection module is the next generation Python GObject library bindings. Instead of statically wrapping every GObject based library we can now dynamically accesses any of those libraries using GObject Introspection. It replaces the need for separate modules such as PyGTK, GIO and python-gnome to build a full GNOME 3.0 application. Once new functionality is added to gobject library it is instantly available as a Python API without the need for an intermediate Python module.

Introspection/Python 2 bindings requires gobject-introspection >= 0.9.5 and pycairo >=1.0.2 or py2cairo >=1.8.10
Introspection/Python 3 bindings requires gobject-introspection >= 0.9.5, pycairo >=1.8.10 and Python >= 3.1

Posted in Uncategorized | Comments Off


I just wanted to say that after so much work is really good to see GNOME 3.0 something real, I am really proud for all the work made and I would like to thank everybody for this release.

Also I wanted to say that:

Posted in Uncategorized | Comments Off

Introducing GeditOverlay/GeditAnimatedOverlay

GeditOverlay is a new GtkContainer similar to GtkFixed but that only allows you to put the childs in specific positions, north-west/east, south-west/east etc. Apart from this, this container is based on the main-widget idea. Where all the requesitions and allocations are proxied from the main widget or relative widget attached.

The idea of this was in my summer of code when I decided to port the monodevelop’s animated popup to C. With the new solitudes that I had in the last weeks to make it animation-less we decided to improve it a little and create a GeditOverlay (without any animation) and GeditAnimatedOverlay that inherits from GeditOverlay and helps to provide animation specifics to the widgets implementing the GeditAnimatable interface.

To use this new widgets you can check it out from the gedit repository. The main classes are:

  • GeditOverlay: main container
  • GeditOverlayChild: this is the widget added to GeditOverlay. You will only want to create this widget if you want to animate it or make it themeable in some way. Usually you don’t have to care about it as GeditOverlay creates it for you if you are not passing one widget of this type.
  • GeditAnimatedOverlay: container inheriting from GeditOverlay where you can add widget implementing GeditAnimatable
  • GeditFloatingSlider: widget inheriting from GeditOverlayChild and implementing GeditAnimatable that provides a slide/in/out animation
  • NautilusFloatingBar: (this one in the nautilus repository) which inherits from GeditOverlayChild and provides a themed floating widget and loading visualizations

Also say that currently there are already a few applications using this: gedit, epiphany and nautilus and we hope to get it included in gtk+ 3.2

I would also like to thank Xan and Cosimo for all the help provided on making this code more polished and fixing a lot of bugs.

Posted in Uncategorized | 7 Comments

In the Python hackfest 2011

Hey everybody, I wanted to say in this post that this week I will be in Prague working on trying to get gedit ported to python introspection. So far we are having quite some progress on fixing the problems that I am finding making this work, so hopefully we will have our well known beloved gedit ;) ready for GNOME 3.0.
Even if the travel until here was quite long, I am having good moments with my mates. It is quite amazing that I finally get to know people like Steve, as we were working together for years but we did not meet in person until now.
I would like to thank the GNOME Foundation for sponsoring my travel and the hotel and I would like to thank also Collabora for all the beers that we are having. Because as you should know, nothing like a couple of beers in the night after a hard work day to get relaxed and be ready for the next hacking day :)
I also would like to encourage people to come to some hackfest as it is really good experience.

Posted in Uncategorized | 1 Comment

gtranslator meets gtk+ 3 and beer meeting in prague

Just inform that I invested the past two weeks porting gtranslator to the last new cool things around. So far is using GtkApplication, GSettings (already in the last release), libpeas, which means that you will able to have python plugins now, and all the new gtk+ 3 porting stuff needed to make it build. There are still some plugins that need to be ported to libpeas but it is not a blocking thing.

With this I want to call the translators to try either the git version or the last release using gtk+ 2 that already uses GSettings, and tell the impressions that they can have about it and of course fill some bugs. I know that the profile creation already sucks but it is something that you will do just once, so that’s why I didn’t get into do it more automagically.

Apart from this I have also been in Prague this past weekend and I managed to meet this great guys, probably you already know them, tomeu in the center and andre in the right. So as you can see in the photo we were working hardly that day :P Thank you guys for the chatting and the beers by the way :)

Posted in Uncategorized | 4 Comments

In Poland and some hacking

Hey folks, as a new experience in my life I’ll be in Poland doing the Erasmus the whole year, so if anybody from there wants to have a beer, coffee or something please let me know. I’ll be mainly in Bielsko-biala but probably I’ll visit quite frecuently Krakow.

In relation to the hack I’ve been doing this week before arriving to Poland, just tell that gtranslator is now ported to GSettings and that gedit has now the new search dialog in master. So please test it and report bugs :)

Posted in Uncategorized | 16 Comments

SyncTex support for gedit

With this post I’d like to point to you the nice work the evince guys and Jose Aliste made to provide support for evince and gedit SyncTex support. Have a look at Jose Aliste’s blog post where you can see a screencast that he made. Keep doing such a great job!!

Posted in Uncategorized | Comments Off

GSoC weekly report 11

A bit late report but well, I’ve been quite busy. Here it is what I have done this week:

  • I released gedit
  • I made some bug fixing.
  • And I continued with the animation thingie. In relation to this it is better seeing the screencast

What did I have to achieve this week?

  • Bug fixing. Done
  • Work in the animation stuff. Done.
Posted in Uncategorized | Comments Off

GSoC weekly report 10

Another week has passed and here it is what I have done:

  • There was an api break in libpeas that broke all the plugin in gedit, so I invested quite some time on porting them. I also ported the gedit-plugins ones.
  • I fixed some bugs in libpeas. Patches already in master.
  • Ported a rounded frame widget to C. This will be used for the new search dialog.

  • Fixed some bug in gedit.
  • As promised I managed to have something to show about the view abstraction.

What did I have to achieve this week?

  • Try to get the html viewer. Done
  • And some bug fixing done.

What am I going to do next week?

  • Keep fixing bugs.
  • Work in the animation stuff.
Posted in Uncategorized | Comments Off