Google Summer of Code Proposal: File manager integration for Linux.

Germán Poó-Caamaño gpoo at
Mon Mar 31 21:09:25 CDT 2008

I sent the following proposal for GSoC.  Some personal information
was added in the detailed description.

I just read about another proposal about Shell integration (Nautilus
and Windows), but it was detailed just for Windows environment. I 
hope this does not mean any conflict in any place.


I will extend Mercurial and Nautilus to make Mercurial more
user-friendly.  These features includes aids for common tasks available
through menus in a file manager and offer a GUI for managing the project

I have two different goals:

  1. Provide a GUI to follow a project like Mercurial. 

  2. Provide integration with a File Manager, in the same way that
     TortoiseHG allow to Window's user.

The GUI should use the Mercurial's API and to provide the 
funcionality available by the shell.

The File Manager's integration should provide the same funcionality
(probably not all of them) as an quick access.  It also could 
call the main GUI if were needed.

Because in Linux we have several desktop and hence several File
Managers, I have choosen Nautilus (the Defaul File Manager for Gnome)
  a. It is the one I am most familiar with.
  b. It provides Python bindings, so it iss possible to program the
     extensions using both Nautilus and Mercurial Python API.

I have read the idea to provide an extension for the XFCE File 
Manager (Thunar) in Mercurial GSoC's wiki.  But I think the best way to
go in
this case is:
  a. Build Python bindings for plugins in Thunar.
  b. Reuse the code I am proposing for this Google Summer of Code.

My rationales is use the best of both worlds (API) joined by a common
language (Python).

I will consider extending Thunar as a future work.  If I can do any
advance in this respect, I will try to do it.   The most File 
Managers we can extend, the better.  If the code can be shared between
all of them, much better.

I have read Mercurial's API before, but certainly with the 
mentoring of a Mercurial's developer I could advance more and 
do not get lost in my way.

As a proof of concept, I programmed an incipient code for extending
Nautilus File Manager which is available at

It was made only for purposes to teach how to extend Nautilus using
Python. My missing knowledge is Mercurial's internals.

Both, Nautilus and Thunar uses GTK+ and I am comfortable with PyGtk,
which is also available on other plaftorms.

Germán Poó-Caamaño
Concepción - Chile

More information about the Mercurial mailing list