My name is Marcel Hollerbach, and I’m the second intern to join the Samsung OSG as a part of their Enlightenment internship program. I wanted to take a moment to introduce myself and provide some background about how I got started in EFL development, and I’ll also explain what I’ll be doing as a part of this internship.
My Path Towards EFL Development
Currently, I’m studying Computer Science at the University of Karlsruhe, but I learned programming a while back by starting with Java. My interest eventually brought me to C and C++, and in 2011 I was first introduced to Enlightenment and EFL. A year later I discovered terminology: a great EFL-based terminal emulator; this led to me making the decision to learn to code with EFL.
I began by attempting to write the wallpaper settings for Terminology, which is essentially a screen that can be used to select background images for the terminal emulator. Carsten Haitzler (Rasterman) guided me through the process of writing the code for this project. After a few days of coding and learning EFL, the first version of the wallpaper settings was complete. The friendliness of the active EFL community on freenode convinced me to stay, and I began to do work on other areas, including entrance, the tiling module, and a few other minor things in Enlightenment and EFL.
Discovering a New Opportunity Through Open Source Contributions
Two years ago, I started to write an Elementary-based file manager. It was quite easy to build applications with elementary, and at some point I was happy with the functionality the file manager provided. I decided to make it more friendly to special use cases, such as exclusive keyboard or mouse users. Improving the file manager for mouse users worked quite well, but improving the experience for keyboard users didn’t go quite as well.
For starters, there was no way to revert an action; for example, when a user realizes they didn’t want to move the focus to another widget by using the right key, they might try to revert the action by pressing the left key. Currently, there is absolutely no assertion this will happen. Another problematic use case is when using a rather huge UI: there is a high chance of a certain set of widgets being inaccessible, but due to Elementary’s architecture, there is no way of checking if they can be used. No too long ago, Cedric Bail asked if I wanted to improve the current situation, and so I ended up here.
The primary function of my internship is to cleanup and fix widget focus management. So, considering the given problems, what do we need? First, we need a solution that is easy to debug to make it possible to more precisely understand the widgets and their relationships. Additionally, there should be one central data structure that carries all focusable widgets to make it possible to check if a specific widget is accessible or not. These are the two primary areas I will focus on for my initial work, and in my next blog posts I’ll go into detail about how I’m going to solve the problems described here.
Marcel Hollerbach lives in Germany where he is studying Computer Science at the Universtiy of Karlsruhe. He has been a user of EFL for more than 5 years and has authored a file manager application based on EFL. He also works with Wayland and the X window manager, and he is a participant in the Samsung OSG internship program.