Satisfying Enlightenment’s Launcher Appetite with Luncher

Ibar has been Enlightenment’s primary launcher for at least a decade. What it lacked in features it gained in simplicity. However, as Enlightenment has grown, ibar has seemingly stayed stagnant. I wasn’t surprised when Mike Blumenkrantz informed me this would be one of the focuses of my internship. From the depths of Enlightenment’s growling, starving stomach, Luncher was born.

Satisfying Enlightenments Launcher Appetite with Luncher - luncher
The Outdated ibar Widget

In my previous post, I gave an introduction to developing gadgets for Enlightenment using the new gadget API; I did so by converting an existing module to the API, and this preparation was one of the first steps in creating Luncher. Mike and I spent weeks on end discussing ideas for Luncher including both necessary and wishlist features. We kicked around ideas and shared visuals of what we would like Luncher to be, and we identified weakness in ibar that must be improved for Luncher. In the end, we determined a simple launcher bar with elegant window previews and more aware code for complete taskbar management would be the focus of Luncher. Add in a catchy interface and smooth effects for iconifying applications, and the recipe was complete. All of this was happening while I was learning the new gadget API with pager, which was a measured approach to hit the ground running with Luncher, and hit the the ground running I did.

Being well prepared with the gadget API, I got the basics of luncher created in no time: create a gadget site, create a box to hold icons, and display icons. The next step was executing applications when icons were clicked, and this too was very easy. You can see in the following video how the gadget was coming together early on.

Everything past this point became more challenging. The most difficult task was writing the window previews popup. This involves keeping a list of open windows and matching them with their icon in the Luncher. As you can see, it always takes trial and error, and I was certainly not having fun.

Satisfying Enlightenments Launcher Appetite with Luncher - previewHowever, persistence is key when developing software, especially when visual appeal is important. After much trial and error, I managed to get the window previews into a state that Mike and I both liked (A Hallelujiah! might have been heard from my office).

Satisfying Enlightenments Launcher Appetite with Luncher - preview_final
The Finished Launcher Gadget

Once the previews were finished, the rest of development focused on stability and usability. Mike and I used the gadget extensively to make tweaks where we thought it would improve the user experience. When working on this stage, little things happen that might never seem apparent to the user. We move an image one pixel to the left or to the right, shift a box to align a different way, determine the best size for certain objects, etc. While this stage of the development may seem easy, it’s one of the most time consuming and involves constant rebuilding and testing only to rebuild and test again, over and over until things are just right. It involves a lot of tiny changes such as a single number or word, so the rebuild takes longer than the changes take to make. Then, the testing takes all of 5 seconds before the next tiny change is found. This is the cycle of the final stage of development, I recommend a lot of coffee.

Completing a project like this is always rewarding and is also the gift that keeps on giving as you get to use it in your own work. Luncher is now available in Enlightenment git repo. Stay tuned for further developments as I work on a grid version of Luncher as well as system info gadgets!

Author: Ben Lloyd Pearson

Ben is an open source technologist experienced in a wide array of modern IT tools. He's done a bit of everything, from web development, to systems administration, web publishing, and beyond.

2 thoughts on “Satisfying Enlightenment’s Launcher Appetite with Luncher”

  1. That looks fantastic :) Thanks for the hard work… And a little bit question :) will we be able to use it in enlightenment or when will it be available in enlightenment?

Comments are closed.