GSoC/GCI Archive
Google Summer of Code 2013


License: GNU General Public License (GPL)

Web Page:

Mailing List:

GNOME offers an easy to understand desktop for your GNU/Linux or UNIX computer. We also work as an umbrella project for many end-user-oriented applications that people use on their desktop.


  • A Web Application for Getting Things GNOME! GNOME has very powerful desktop applications which can do activities ranging from resizing disk-partitions to simulating planetariums. Getting Things Gnome! aka GTG is one such software for managing daily tasks. It has a lot of features like – infinite level of subtasks, tags, gnome-shell integration, collaboration support. This proposal aims at building a web application which fully supports all the features of GTG, synchronizes with it, and has a task-sharing functionality. The proposed app would allow users to use GTG on their GNOME desktops and the online interface on other desktop-environments, thereby making GTG usable on both GNOME as well as non-GNOME machines.
  • Add Bookshelf View & Tiling support to Evince The project aims at making 2 major improvements to Evince, the default document viewer in a large number of Linux distributions (including Ubuntu, Fedora and Linux Mint). First, a bookshelf view will be added (similar to gnome-documents) for recent documents. There is a bug/feature request for this - Next, tiling support will be added so that documents can be viewed at higher zoom levels. This is an important feature, as is evident from the long standing bug/feature request -
  • Add Lua support for Grilo plugins This proposal is about making possible to write plugins to Grilo in Lua as an alternative to C. This idea was discussed in Guadec 2012 as a good way to spread the adoption of Grilo.
  • Banshee: Integrate with more REST API Services (SongKick and FanArt.TV) I will integrate Banshee with more REST API Services - namely SongKick and FanArt.TV. Thanks to that user will be shown a concert suggestions and artists' graphics in the music library.
  • Break Timer application for GNOME 3 My goal is a successor to GNOME Typing Break, based on the existing mockups on the GNOME Wiki, as well as my previous work on a similar application called Brain Break. The application will help users to take regular breaks with a bit of friendly encouragement, a settings tool and a very reliable timer.
  • Complete redesign of GNOME Shell's app picker While the application view has evolved in 3.6 and 3.8, it still does not match the design mockup. Work to be done: -Applications should be paginated rather than scrolled -Make the transition gorgeous -Expose folder editing to users
  • Design implementation of Gnome Music GNOME Music is an application maintained by the community, it is written in javascript + gtk and it uses grilo+tracker. This project will add a lot value to GNOME because its is based on the new GNOME 3.0 design patterns, and introduces a nice element of simplicity that makes it attractive to users.
  • Dual screen capable presentation in gnome-documents The main idea is to have different view when an external screen is attached. On the presenter screen (e.g. laptop monitor) we have current and next slide, notes/annotations and elapsed time. Of course in the meanwhile on the projector we just have current slide (no annotations!)
  • General bug fixing in pitivi. The end-purpose of this proposal is to be able to make a release of the video editor by the end of the summer.
  • GNOME Archives Integration Upload and download folders without manually creating or extracting archives. Improve archive supports in Nautilus.
  • GNOME Sound Recorder This summer I intend to write a new sound recorder application for the desktop. The app will be Gstreamer based, and will be written in GJS. I intend to make use of some of the new widgets in LibGd as well as some of the new GNOME 3 style Gtk+ widgets such as EggListBox. I am going to be using Giovanni Campagna's new Gtk JS app base as the basis of my application. As I work on the project I also intend to file bugs and give feedback about the GNOME/GJS developer experience.
  • Gnome Tweak Tool UI Refresh The idea is refresh the UI of Gnome-tweak-tool, create a very specialised UI for certain tasks, take advantage of modern gnome technologies such as the application menu and add some new features, for example the feature "reset to default".
  • GObject Introspection for java-gnome Using GObject Introspection data to feed the java-gnome code generator.
  • Google Tasks support to libgdata and Evolution Project to implement Google Tasks API support to libgdata and Evolution.
  • GSoC 2013 - Porting GTG and Liblarch to Gtk3 and Python3 With the increasing popularity of Gtk3 and Python3, it doesn't leave too much time for applications still stick to PyGTK and Python2. For example,Desktop version of Ubuntu 13.04intend to ship only Python3, rather than Python2 ( It will be my honor to finish porting Getting Things GNOME!, a.k.a GTG, which is the best GTD application on Linux Platform, to Gtk3 and Python3 during this summer.
  • GtkSourceView: add regex search and modernize existing features The purpose is to improve the developer experience when editing source code. The proposal involves primarily GtkSourceView, but some changes in other places of the stack are planned too.
  • GXml: easy and ready-to-use The technical basis for GXml was established over the past two years, and now it's time to add some finishing touches for a 1.0 release. The main focus is porting an existing application from libxml2 to GXml to drive documentation and bug discovery and produce a series of articles to accompany existing documentation guiding. Time permitting, addition of a SAX parser or an XPath query interface will be prototyped.
  • Implement a new avatar picker dialog that will pull from online sources Implement a new avatar picker UI that will be used in gnome-control-center, gnome-initial-setup, and empathy that can automatically pull from online accounts sources and services like Gravatar.
  • Implement Caret and Focus Tracking for GNOME Shell To implement a caret and focus tracking device within GNOME Shell and allow the magnifier to use this device to display current keyboard focus. This work would contribute a focus and caret tracking "device" within GNOME Shell to the benefit of the GNOME community. The work also allows the magnifier to use this device in order to display current keyboard focus which enable users with low vision to use GNOME more easily.
  • Implement support for custom functions in GNOME Calculator GNOME calculator is the default desktop calculator application of GNOME. This project aims to add support for user-defined functions(with single as well as multiple variable support) to GNOME calculator. This will add reusability and customization to the application, making it more user friendly and saving time of the user. We also aim to support auto-completion of custom/built-in functions as user is typing in the expression for evaluation, which will make using functions a pleasant experience. We also aim to give user the capability to terminate current Expression Evaluation in case it is too expensive.
  • Implementation of Gnome Music The following is the project proposal for the implementation of gnome music. The proposal tries to implement gnome-music such that it becomes lauch ready at the end of the project.
  • Improve gnome-clocks world view (pictures, geolocation) The use of new GNOME 3 design pattern has already been proven to turn the user experience into a pleasure. Working in a close collaboration with the GNOME Design Team the main goal of this project is on one side to improve gnome-clocks world view by implementing the support for custom city images as well as the integration with geolocation and on the another side to use a framework of gnome-clocks App to test and to implement new design ideas.
  • Modular encryption support My project is to integrate modular encryption into the GNOME desktop. This is partly in response to the security and privacy fundraiser currently going on. I believe this would solve one part of the puzzle, by allowing users to securely store documents in a way that doesn't interfere with the user experience. In order to not interfere with the user experience, it should not require a login (ruling out disk/home encryption) and should not require doing anything different once encrypted (ruling out 3rd-party software with poor UX). To achieve this, I am using a Nautilus extension that allows the user to encrypt a folder from the context menu. To access the decrypted contents, the user only has to open the folder, and it will be decrypted on the fly. The only difference in user experience is asking to unlock the keyring (if it's still locked) when opening one of these folders. I am proposing for this project, to integrate this into GNOME directly, and in the process fix up some rough edges.
  • Overhaul the Date & Time panel in System Settings This project is about implementing a new Date & Time panel design for the GNOME System Settings. The streamlined user experience is going to cover manually setting date and time; using the NTP for automatic time syncronization; setting the time zone; and automatically updating the timezone based on geolocation data.
  • RAW developer integration for the f-spot photo manager RAW development is a central part of many photographer's workflow. There are several programs that offer photo mangement features and several developers, but none of them do both tasks in a user-friendly but powerful way. So, following UNIX tradition, I suggest a integration of the available RAW developer software into f-spot, a GTK photo manager.
  • Redesign and port Gtranslator to Vala Gtranslator is an very used application but it has lots of bugs and it has an important lack of maintenance. The idea is redesign the whole application and implement the resulting design in Vala. With this redesign we will fix the major bugs of the current version and the new program language will probably attract new developers to the project.
  • Support advanced operations (rebase, format-patch) in Gitg I will implement a user-friendly interface for important Git functionality in Gitg - the GNOME repository viewer. I will start with "Format Patch" and "Interactive Rebase" - two Git functions which are a part of the GNOME development workflow. This will make the process of contributing to GNOME simpler for new Git users, and productive for seasoned Git users.
  • Support for Wayland in WebKit2GTK+ The goal of the project is introducing support for the Wayland display protocol in WebKit2GTK+ , the GTK+ port of the popular WebKit web content engine that uses the multi-process architecture. The latter, while ideal when a crash occurs in the viewed web page, can be tricky when it comes to displaying the rendered web page under the Wayland display protocol
  • Trip planning in GNOME Maps My proposed project is to implement trip planning (both fastest route and public transportation) in GNOME Maps according to to the mockups at