Page MenuHomePhabricator

Google Summer of Code 2010 Project Ideas
Updated 3,386 Days AgoPublic

The Enlightenment Project is dedicated to providing advanced graphical libraries, tools, and environments. Currently, the project is made up of three different components: Enlightenment DR16, Enlightenment DR17, and the Enlightenment Foundation Libraries. While we are best known for the Enlightenment Window Manager itself there is a long history of providing advanced libraries and tools to support the window manager and other applications, such as Imlib, Imlib2, and FNLib which extend far beyond the window manager itself in scope.

While no organizations have yet been formally accepted by Google to participate in the Summer of Code 2010, we plan on applying and are very hopeful that we will be accepted. Below are some project ideas for the Google Summer of Code 2010.

If you are interested in a project below and have questions or comments, please feel free to join us in #e on FreeNode. You can also send email to our Development mailing list:

It was our intention to provide some sample applications so that students new to the GSoC could have an idea of what a well put together application might look like. However, our friends at Wesnoth have beat us to the punch. So, with their permission, here is a link to some of the applications submitted to their project for GSoC 2008. Note that such elaborate applications are not required. But there are certainly elements to many of them that are quite beneficial. For example, a list of deliverables, a timeline, mockup images if applicable, etc. All these types of things might go into a well thought out application.

NOTE: Student applicants are not limited to the ideas on this page. If you think you have a suitable idea, by all means, please propose it.

You can consult ideas from previous years.


  • XRandR 1.3 support
    • Support new X-Rotate-and-Resize (-and-lots-more) extension in window manager

      Mentor(s): Gustavo Sverzut Barbieri

      The XRandR was born as simple way to allow dynamic rotation, reflection and resizing of displays, but was extended to support much more than that, with free positioning of displays, including overlays, on-the-fly signaling of new monitors & outputs and so on, even encompassing the role of xinerama for multiple screens. Current Enlightenment support is basic, with support to change resolution and rotation of current monitor. However, much more could be done, particularly the on-the-fly detection of new displays and subsequent configuration dialog or automatic rules, as well as avoiding the possibility that users will end without any display after unplugging laptops from projectors ;-)

      Skills Required:
      1. Strong C background.
      2. Know how to read a protocol and implement it.
      3. Basic knowledge of Ecore main loop and its events.
  • Netbook UI
    • Use Enlightenment extensibility to provide awesome netbook UI

      Mentor(s): Gustavo Sverzut Barbieri, Christopher Michael (devilhorns)

      Enlightenment is highly extensible with the use of modules which allow for a wide range of things, from single shelf gadgets to custom window management policies (as done by the illume2 and tiling modules). One could use these to provide the ultimate netbook UI with special shelves that may require small height contents, a maximized window policy, and a special case for multiple window applications such as pidgin/skype/amsn.

      Skills Required:
    • Strong C background.
    • Basic knowledge of Ecore main loop and its events.
  • Virtual File System
    • Revive evfs project and integrate it into Enlightenment

      Mentor(s): Gustavo Sverzut Barbieri

      Bring evfs back into shape again and integrate it into Enlightenment's file manager, allowing it to handle dynamic folders such as "removable volume devices" nicely and being able to extend with networked file systems such as !UPnP/DLNA.

      Skills Required:
    • Strong C background.
    • Basic knowledge of Ecore main loop and its events.
    • Knowledge about file systems.
  • General Modules Update
    • Bring Enlightenment to state-of-art technologies for its modules

      Mentor(s): Gustavo Sverzut Barbieri

      Enlightenment is not the only thing that changes in the world, so some technologies changed and we are still lagging behind. PulseAudio provides enhanced capabilities for sound mixing as opposed to Alsa, HAL is now deprecated and DeviceKit should be used instead. Some technologies are well established but still not largely supported, such as BlueZ, while others such as ConnMan and oFono are becoming quite popular. This is not actually a final project, the student would have to do a proposal based on some modules and technologies to be handled.

      Skills Required:
    • Strong C background.
    • Basic knowledge of technologies to be integrated.
  • Redo all enlightenment websites
    • Bring enlightenment and all it's beauty back to the web.

      Mentor(s): Nick Hughart (Mekius), Ian Caldwell (Inc)

      Lets face it currently our site has fallen by the wayside, we have a halfway redone website (which looks great in my opinion), however we have a lot of "halfway redone stuff" also the backend is still the same old system. I think everything pretty much needs a rewrite, done by someone who is just concentrated on the Web aspect and documentation aspect, they can merge different pages and different things to make it easier for us to have users that may not develop, but that follow the project and can post news of what's going on so people know it is not a stagnant product. Also we need to be able to provide support to companies who in the end want to contribute to enlightenment because they've been using it for their product. It would be a lot better to redo and merge things and organize them as well as update old documentation and write new documentation for the project. Also it would be nice to fix up exchange and finish the todo list for exchange as well...

      Skills Required:
    • Prior web developing skills
    • Strong PHP / CSS background.
    • Experience with different web software such as trac, and docs etc.
    • good writing skills


  • Revive Entrance Display Manager
    • Rewrite Entrance based on modern standards and correctness of standards

      Mentor(s): Gustavo Sverzut Barbieri, Nick Hughart (mekius)

      Entrance was quite nice looking, but full of problems. It should be rewritten to be simpler, but work well. It should be very light and handle basic authentication, possibly auto-login features. Its user interface should be nice, but keeping it simple to make the project feasible in summer of code time. If time allows, the manager of displays/X should be isolated from user interface and it should be able to communicate over DBus or IPC, allowing Enlightenment or any other WM to request new X instances to be created, allowing fast-user switching.

      Skills Required:
    • Strong C background.
    • Basic knowledge of EFL technologies (Ecore, Evas, Elementary).


  • Evas text grid object
    • Implement a text grid object

      Mentor(s): Cedric BAIL, Gustavo Sverzut Barbieri

      This object is needed for a terminal application to not have the overhead of one text object per grid element of the terminal. But it can be also used for an IRC chat client, or a text editor. See some comments about that object here.

      Skills Required:
    • Strong C background.
    • Good understanding of Evas internal.
  • Improve Evas Textblock object
    • Determine and implement object inclusion/exclusion

      Mentor(s): Cedric BAIL, Gustavo Sverzut Barbieri, Mikhail Gusarov

      Currently we can't easily put image, like smiley for example, inside a stream of text in a textblock object. It is also not possible to have a textblock rendered around an image. So adding both mechanisms to the textblock object will give it all the power needed for an IM client or any big text editor.

      Skills Required:
    • Strong C background.
    • Good understanding of Evas internal.


  • Edje benchmark
    • Write an Expedite like tools but using Edje

      Mentor(s): Cedric BAIL, Gustavo Sverzut Barbieri

      The idea of this project is to write many small and individual benchmarks, that will test as much as possible part of Edje and will report score. This tool will be integrated in our test infrastructure. It could also become a good test coverage for regression in Edje.

      Skills Required:
    • Strong C background.
    • Good understanding of Evas/Edje internal.


  • Elementary keyboard support
    • Improve Elementary use of keyboard

      Mentor(s): Gustavo Sverzut Barbieri

      There is a need in elementary to handle keyboard in all widget and to provide generic function for spatial navigation. Something that should work with TAB/Shift-TAB and Navigation Arrow depending on the configuration of your target. Of course it should not interfere with current keyboard use, like arrow with spinner.

      Skills Required:
    • Strong C background.
    • Good understanding of Elementary internal.


  • GPS
    • Display the current position in the map

      Enki display photos and geocaches (http://geocaching,com) in a map but currently we can't display the current position by using a GPS. Stuff related to the GPS can be added : path, altitude, average, associate a GPX file to an album ...

      Skills Required:
    • C background.
    • Having a device with a GPS.
  • Videos
    • Add a video panel to Enki

      Currently Enki use an external application to display a video (VLC ...). We can add a video panel to display a video and more ( cut a video, effects ...).

      Skills Required:
    • C background.
    • Easy project.
  • Images transformation
    • Add new transformation

      Currently Enki integrates only a few number of transformations. We can add more transformations like the red eyes correction and a panel to configure a transformation.

      Skills Required:
    • Medium C background.


  • E_Phys back to life
    • Cleanup E_Phys or use another physic library to provide state of the art physic engine

      Mentor(s): Cedric BAIL

      The idea of this project is to update/write a physic library that will directly integrate with Evas. Now that Evas provides map, it's quite easy to take physics into account (Look at what Raoul Hecky did with eskiss). This is only the first step of the story, the second step would be to integrate this library with Edje, so that object could be animated automatically according to physic law.

      Skills Required:
    • Strong C background.
    • Use to Evas API.
    • Good understanding of physic/mathematic.
    • Good knowledge of Edje internal.

Imported from
1 vtorri 2010-01-28 10:34:37
2 vtorri 2010-01-28 10:36:24
3 cedric 2010-02-02 06:42:31
4 Watchwolf 2010-02-02 07:20:01
5 Watchwolf 2010-02-02 07:21:28
6 cedric 2010-02-17 07:27:38
7 barbieri 2010-02-25 17:27:41 add myself as mentor
8 barbieri 2010-02-25 17:57:56 my own ideas
9 cedric 2010-02-26 02:10:01
10 dottedmag 2010-03-04 07:14:45
11 inc 2010-03-05 10:14:12
12 vtorri 2010-03-05 20:56:07
13 inc 2010-03-05 22:19:57
14 mekius 2010-03-05 22:31:36
15 devilhorns 2010-03-07 21:18:44
16 jt_a 2011-08-29 03:32:24 fixing links

Last Author
Last Edited
Aug 26 2013, 4:05 PM