Page MenuHomePhabricator

Development Ideas and TODOs
Updated 3,372 Days AgoPublic

Existing Applications

Although EFL is meant to be base for applications, we barely have them! Most developers just care about hacking libraries and the applications are forgotten :-( The very few applications we have are super-basic, yet they have users!

Most applications have easy-tasks, some are listed below. But if you like that kind of application, install it and have a look, you may have more ideas.


Enjoy is a Music Player that exists in SVN, works and looks fine.

  • more preferences plugin:
    • implement album art search (there is a stub) EASY
    • add amazon cover album art search EASY
    • remember library folders (gui + eet)
    • monitor library folders for new media (ecore_inotify, etc)
  • convert from elm_pager + elm_layout to elm_naviframe EASY
  • remember (eet) shuffle/repeat settings EASY
  • remember state (eet), like a path, every folder and the song being played, with the playback state
  • root folder plugin: allows adding more items to root folder (needs convert to elm_naviframe, based on preferences plugins)
    • implement playlists plugin (pls format, super-simple)
    • implement filesystem plugin (lists ~/Music, ~/ and /, then list folder contents filtering music files)
    • implement MPD plugin
  • now playing plugin: allows extending the nowplaying view, like showing lyrics or wikipedia entries


Excessive is a local viewer of pictures and videos that exists in SVN, works fine, looks badly.

It started as a way to test eio (async file listing) and benchmark emotion, now is an application.

  • rewrite the UI as
  • integrate with eeze for media mounting
  • save recent foldes (eet) EASY
  • individual photo view mode, allows zoom, panning, rotating...
  • integrate with libgphoto to access cameras that do not expose "usb storage" access


Shotgun is a XMPP (Jabber/Gtalk/Facebook) chat client that exists in SVN. Works fine, looks okay but could be improved



Envision is a document reader using epdf that exists in SVN. Barely works, needs UI rewrite.

It was initially written as a test, so not much code -- easy to improve!

  • rewrite UI similar to proposed for excessive or shotgun, or what exists in enjoy
  • rewrite from epdf to PROTO/eyesight (maybe improve eyesight to help the task -- Vincent (vtorri) is open to it)
  • fix continuous scrolling mode (change from gengrid to genlist?)
  • implement single-page mode
  • implement presentation/fullscreen mode
  • implement search
  • save recent documents (eet)
  • save position in document (eet)


Eve is a webkit browser that exists in SVN. Works fine, needs UI changes.

Eve was create with a very specific UI when Elementary missed some features. Its requirements went to Elementary, but Eve were never converted to use them.

  • Convert from bare ewk to elm_web
  • Use regular elm_toolbar
  • Preferences should be changed to elm_naviframe
  • Tabs should be another page in elm_pager, promoted when clicked.
  • Navigation controls (top bar with url entry, back/forward/reload/favorite) should be rethought -- ask Marina


Ecrire is a plain text editor that exists in SVN. Barebones.

  • implement basic features (check svn, it is changing)
  • implement search
  • implement find and replace
  • implement multiple document support (tabs?)
  • add common settings (tab width, indent tabs mode: spaces x tabs, end-of-line mode: DOS x UNIX)
  • add syntax highlight options? (use lua? python? builtin/own format?)
  • option to highlight trailing whitespaces
  • option to mark whitespaces (space, \t, \n, \r...)


Editje is an Edje Editor using WYSIWYG that exists in SVN. Works fine, but needs features. Written in Python.

  • add key modifiers (ctrl/alt/shift and drag would alter relative/offset/relative+offset)
  • wizards to define more elements
  • embryo editor

Window Manager

  • Handle window decorations and internal windows as composite manager (e/src/modules/comp) native elements, not going to X and then back to WM (LOTS OF WORK);
  • Replace internal dialogs with Elementary (LOTS OF WORK);
  • Status Notifier Specification to replace the naughty systray, includes !DBusMenu to exchange menus using DBus (SIMPLE, but long task);
  • Sound effects using libcanberra, quite simple to do, just need to use proper hooks (maybe add more hook points) and call the right sound effect. Needs a dialog to control it (VERY SIMPLE);
  • PulseAudio mixer, with per-application control;
  • More flexible power management using UPower, there is basic support in E_Dbus, but WM needs to use it to control locking the desktop before sleeping, knowing the system will sleep or just resumed.
  • Implement a cache library that would directly map structure (in a non portable way) on disk. This could later be used by efreet cache for exemple. This library will be different from eet as it will be designed to store large set of data that could be directly read from a mapped memory area without the need to load them as Eet data require.


Games & Demos

  • Demos and Games are always good to demo our potential to users, while being super-fun to code. See: KISS-DemosAndGames

E Systray Spec

GTK-QT-Edje Theme Engine

  • Theme Engine describes the implementation of two theme engines, one for GTK and one for QT. Both draw their widgets based on the contents of a given Edje file, easing integration with an EFL based desktop.

Overhead Files For Edje Theme Correctness

  • Theme Correctness describes a method to control the structure of groups, parts and programs of Edje object for compliance with a given application's requirements.

Edje plugin for web browsers (like Flash)

  • With Edje we could do all what Flash is able to do. Maybe except the sound and video integration. Refer to Edje Browser Plugin

Model View Controller List

  • EFL could provide a Model-View-Controller ( MVC) list in order to have high-performance lists for huge amount of data. See MVC List.

Other Ideas and Projects

Imported from
1 mcalamelli 2009-01-09 15:57:20 Work in progress
2 mcalamelli 2009-01-09 16:24:46 Work in progress
3 mcalamelli 2009-01-12 02:44:40
4 mcalamelli 2009-01-12 02:52:07
5 mcalamelli 2009-01-12 04:32:03
6 mcalamelli 2009-01-25 16:53:33 Add H1 title on top
7 mcalamelli 2009-01-30 01:20:42 Split ideas to single subwiki page
8 mcalamelli 2009-01-30 01:28:25
9 mcalamelli 2009-01-30 01:37:34
10 mcalamelli 2009-01-30 01:45:29
11 andreasvolz 2009-04-19 11:43:54
12 andreasvolz 2009-04-19 11:46:02
13 andreasvolz 2009-04-19 11:46:19
14 cedric 2009-06-08 07:13:56
15 barbieri 2010-11-15 16:27:55 Add KISS Games and Demos
16 barbieri 2010-11-15 16:28:59 size hints were done long ago!
17 barbieri 2010-11-15 16:30:58 Mvc list = genlist
18 kim 2010-12-10 09:05:56
19 kim 2010-12-10 09:23:54
20 kim 2010-12-10 09:27:54
21 kim 2010-12-10 11:09:14
22 kim 2010-12-10 22:15:08
23 kim 2010-12-10 22:20:45
24 vtorri 2011-01-14 00:35:10
25 vtorri 2011-01-14 00:41:16
26 raster 2011-01-14 00:43:37
27 raster 2011-01-14 00:51:52
28 barbieri 2012-01-31 07:08:34
29 zmike 2012-09-19 04:42:52

Last Author
Last Edited
Sep 5 2013, 2:11 PM