GSoC/GCI Archive
Google Summer of Code 2009


Web Page:

Mailing List:

GNOME offers an easy to understand desktop for your GNU/Linux or UNIX computer.


  • Add Geolocalized tasks (geoclue, libchamplain) in Getting Things Gnome Know a days mobility is very important and it's part of our lives as well as being organized and knowing what our agenda is. One is always forgetting to do something or not prioritizing the tasks that have to be done. To have a component/module for Getting Things Gnome to make it possible to have geolocalized tasks would be fantastic in order to let people organize or view the tasks that are specific to their current location in order to be more focused on what needs to be done there.
  • add multisession capabilities to Brasero Nautilus extension At work with the computer an integral part is work with files so and with the file manager. To user work with files and the information is important, for it has no value where this information is placed. Therefore it is important to provide uniform interaction of the user with the information located anywhere. The purpose of my project is granting to the user of such transparent work with the files which are on optical disks just as if work passed with a hard disk.
  • Allow Tracker to search online resources (Flickr, Facebook, Google docs...) The goal is to make the dekstop and the cloud work together. Tracker is the cornerstone of this new desktop : it's the database where all the metadata about documents will be stored. If it can accesss online data, users will be able to search local data as well as data on Facebook or Google Docs. Moreover, the semantic information on the web is often more rich than locally : on Facebook people are tagged on pictures, pictures are linked to events and groups...
  • Anjuta Python Integration Through this project, I wish to implement all the features necessary to make Anjuta into a Python IDE. Features like autocompletion, autoindentation, building, syntax highlighting. All changes will be in the form of a plugin to Anjuta.
  • Anjuta: Add Language support for JavaScript I want to add JavaScript support in Anjuta. The main missing parts are autocompletion and auto-indentation. I want to implement them using an GObject-based JavaScript engine.
  • Application-aware Window Management I will make GNOME application-aware by defining and implementing a programming interface that that will allow applications to populate a menu for each window, modify certain applications to support the new interface, and develop an application-aware window-switcher for the GNOME Shell project. To accomplish these goals I will work with GNOME developers, designers, and users as well as developers of applications that would benefit from this interface. (full abstract below)
  • Banshee & Miro Guide: BFF OR Podcasting as a Service OR Cloudcasting OR [BUZZWORD]-asting. Banshee should take advantage of web services (preferably AGPL'd) wherever it makes sense to do so. Given the web oriented nature of podcasting, podcasting as a service, and deep client integration make sense.
  • Convert Nibble to the Clutter OpenGL canvas and add some animations Nibble currently uses a GdkDrawable object onto which it draws a huge quantity of SVG images. This implementation work great but begin to show its age. Rich and useful canvas library such as Clutter have made its apparition and provide an optimal solution for this kind of game. The Clutter library provide an OpenGL canvas which combined with texture and drawing capacity of Cairo make the perfect set of tools to re-implement a game like Nibbles to a rich 3D environment. This proposal aim to explain how I would re-implement Nibble with using Clutter library.
  • Create a new API for libsoup to download files and use the new GNIO library. Add a simple API in libsoup to download file from ftp and http's URIs and modify libsoup to use the GResolver from the GNIO library.
  • F-Spot: RAW Integration & Processing This Summer of Code proposal is all about finally getting the value out of that DSLR which you paid so much for. It's about finally bringing RAW support to F-Spot.
  • GConf/GTK+ integration project I propose a project which would make life easier for GNOME application developers by simplifying the work involved in creating Gtk+ settings dialogs and coupling them to GConf keys. This will include a new GConf key to GObject property binding API, GtkBuildable objects representing the bindings and GLADE support for creating them, and full documentation and a tutorial for new developers.
  • GNOME Shell: Zeitgeist Integration The idea is to add a screen to GNOME Shell's overlay displaying a journal of all used files, organized chronologically, and with filtering possibilities like searching by name, file type and perhaps even tags. This will make it much easier for users to find files they've worked on recently and will boost their productivity. This would be done using Zeitgeist's engine to get the required information about the files and then presenting it in GNOME Shell with a clutter interface.
  • GNOME-Games + Telepathy: Play GNOME-Sudoku with your IM contacts This project will add multiply to GNOME-Sudoku, using the Telepathy communication framework, so you can play sudoku with your IM contacts. The current single-player mode will remain and two new multiplay mode are to be added: competitive and collaborative. This project will combine game and instant messaging on the GNOME desktop. Hopefully, it will serve as an example for further adoption of Telepathy, either for the other GNOME-Games or other modules in or outside GNOME.
  • Implement local map rendering of OpenStreetMap data in libchamplain Libchamplain is a C library providing a ClutterActor to display maps. It is my goal to add support for local map rendering of OpenStreetMap XML data. This is going to allow the client to use custom map themes, to choose different projections and to do the selection or exclusion of map elements. Libchamplain will become useful for a wider range of applications. A local renderer also provides the foundation to support accessibility features for maps.
  • Implement Music Sharing in Banshee using the Telepathy API In Banshee, music is rated, tagged with metadata, categorized, and organized in playlists. Sharing the actual music is only the beginning of what online music sharing can and should be. It would be great if all the hard work of rating songs, adding metadata, and organizing playlists could be shared with our online instant messaging friends. I propose to use Telepathy's excellent D-bus based API to bring some exciting new sharing features to Banshee users.
  • Improving the DVB experience with GNOME DVB Daemon The goal is to provide an easy way, well integrated into the desktop, to setup DVB devices, record and watch TV shows. The foundation was established during last year's GSoC where I implemented basic features like recording shows and scanning for channels. However, there is still a lot of work to be done so that a non-technical user can make use of my work without problems, too. The first step is to fix outstanding major bugs. Scanning for channels does currently not yield the same results on every scan. The bug might be somewhere in GStreamer's mpegtsparse element. In addition, it's currently not possible to record or watch two or more channels that are part of the same transport stream simultaneously. Only the stream of the channel that is selected first works properly, all other streams are disrupted. Although, there's basic support for watching live TV (based on gst-rtsp-server) it is a relatively new feature that hasn't seen much testing, yet. First of all, the work should be based on the latest version of gst-rtsp-server. Currently, the biggest downside is that live TV and recordings are two separate parts of the program. Because of that conflicts between live TV and recordings are not resolved. If you are watching live TV and a recording is about to start on a different channel the daemon should automatically switch to the channel of the recording. Another major goal is to better integrate GNOME DVB Daemon into Totem. Only experienced users can make use of Totem's DVB features, because you have to generate the channel list with a command line tool and place the generated file in a special place. Additionally, it's only possible to use multiple DVB adapters if they are all of the same type. DVB Daemon already addresses all of the above issues, but it is not well integrated into Totem, yet. You should be able to access all features (scanning for channels, recording/watching channels, browsing EPG and recordings) of the daemon directly within Totem. Ideally, the user just plugs in his DVB adapter and the assistant to scan for channels is started automatically if the device is not configured, yet. Furthermore, Totem should use a ring buffer when watching live TV. This allows the user to pause live TV, rewind it and fast forward later. This feature will involve work on GStreamer's queue2 element. A simple channel list editor is currently missing, too. That's especially annoying with DVB-S where you have thousands of channels but you are only interested in a small fraction of them. It should be possible to select the favorite channels after the scan is completed. In addition, I want to provide a way to aggregate EPG data from different sources with additional metadata via a plugin system. Some channels don't provide EPG data in their transport stream or the data is incomplete. Retrieving the EPG informations from an online service would obviously fix this problem and may even provide additional metadata. Last but not least, I want to add a way to schedule reoccurring recordings so you can easily record you favorite TV show.
  • Integrate bugzilla into pulse Pulse collects data and presents them in a useful manner. It was written with the needs of the documentation team in mind but I belief it could be useful to all GNOME's contributes. IMHO integrating bug trackers with pulse would help this goal most. So this project's goal is to integrate and work together with contributers how to do this best and what to do beyond it.
  • Mail as a desktop service I propose to develop the start of a simple e-mail framework for the GNOME desktop in a similar spirit to what the Telepathy project has done for instant messaging. It is meant to be a lightweight process, likely to be written in Vala, that would be activated upon start up and require no further user interaction. It would provide access to folders and messages using a simple RPC interface over DBus.
  • Make Conduit work as a daemon This proposal is to Conduit, a synchronization application, to work as a daemon, availiable to applications when required. For this, a core would be made separate from the GUI.
  • Make Python bindings taking advantage of GObject-Introspection This project will improve the PyGObject binding and the PyGObject code generator to take advantage of the GObject-Introspection metadata and typelib. PyGObject should be able to load typelibs and create bindings automatically in runtime. It will also extend the code generator to use GIR metadata in additon to defs files, which will make it easier for current bindings to migrate to introspection.
  • Nautilus: Add support to Google docs Permit gnome desktop users to handle their Google Documents without using the on-line Google applications. Basically it means that gnome users will be able to handle their google docuent directly in nautilus file manager after connecting via its 'connect to server' feature.
  • Rhythmbox Contextual Information Pane Implementation of a context sensitive informational pane in Rhythmbox. This context pane will allow users to view information related to the currently playing song such as artist information, artist's top tracks, discography listing, related artists, etc.
  • Rhythmbox: Media Player Synchronization Goal - Revamp the Rhythmbox iPod/MTP interface, so that it is easier and more intuitive to use. - It should be able to recognize "identical" songs, and track new/removed songs. - It should be able to 'sync' your device, automatically (or on command). - Sync-ing backend should be as unified as possible between MTP and iPod players.
  • The Continued Blingification of GNOME Games This project will involve the porting of "Mines", a current GNOME game, to Seed, utilizing Clutter bindings in order to make a beautiful, 2.5D rendition of the classic game. It will also include the completion of the final layer of polish on the two Seed GNOME Games: Lights Off and Same Gnome. Work will first be done in order to make the GNOME Games support library work with GObject-Introspection, which will be required in order to write complete games in Seed.