Category Archives: Maemo

Videos from Bossa 09 available!

For those who unfortunately were not able to come to Bossa Conference this year, we are uploading the talk’s videos to our “channel” on

Bossa 09 Logo

There are really interesting talks from Trolls (Qt), python, maemo, e17, kde and lot of other stuff. Check the abstract of the talks here.

Hope you can come next year πŸ˜‰

PS: photos by Sebastian:

Animated Layouts with Qt Kinetic

Last week we finally had the first demo of our current work. We are working on animated layouts with the Qt Software guys. It has been a great great time. We are really happy with this work and the results that will come in the near future.

When we talk about animated layouts, we mean that when you change the layout of your widget you want that to have that change in a fancy and animated way (at least when you talk about Qt Kinetic). So we just finished the basic work to allow that and the next step is to define the API of setting animations between the changes of layout.

Right now we use the concept of states (using QStateMachine), a new way of setting a layout without destroying the old one and also a little hack to use QAnimation (this hack will go away as soon as we define a nice API).

Basically all you have to do is to use our concept of “proxies” and instead of adding your widgets to the layout you add this proxies. Each proxy must be associated with a widget and each proxy is associated with a QAnimation. Each QAnimation makes use of a different QEasingCurve making each widget have a different animation.

What is really nice is the fact that when you put all the concepts together you get a lot of “job done” for free, for example when you insert/remove an item from a layout it does the resizing and moving of the other widgets in an animated way also.

If you want to know more about this solution of Qt Kinetic, join us at #qt-kinetic on Freenode and take a look at my co-worker’s blog also:

Layout Animations

New QEdje version

Today we released a new version of QEdje and QZion (0.4.0).

This release includes a lot of bug fixing and also the change from qmake to cmake :-). We did some code refactor, fixed a LOT of bugs, improved a little bit the python bindings, improved support for mouse events and even created a signal to help the use of QEdje on Plasma wallpapers…

We also changed our repository and now it’s located at We are moving all our open source projects to this host and hopefully we’ll have more projects there in the next weeks ;).

Tokamak II

Last week we went to Porto and had Tokamak II, the plasma’s developers meeting. It was just a wonderful time and it was great to meet some people again and to put faces in some nicks.

I mainly worked on Plasmate, the new “plasma IDE” for writing scripted plasmoids. Specially in the previewer and I used the time to also take a look at some bits of plasma that I didn’t have the chance (time) to look at yet. So now I can say that I can help with plasma even more and that I have a lot of ideas for the upcoming releases.

A lot of good stuff was also showed there like the status of Qt-Kinetic, ideas for the picture frame, improves on extenders, crystal, lion mail, community stuff, etc…

Thanks KDE for this wonderful oportunity and I hope we can keep improving plasma for everybody πŸ˜‰

Plasma devs

Bossa Conference 2009

It’s coming! Finally! Every year before the conference I have this feeling of happiness mixed with a lot of expectation. This is the third edition of this conference and the other two was just awesome….

It was after the first one that we started working on the base of Canola2, after the second one we started working on QEdje and….what will be this year ? hehe…To be honest I already have some idea of what we are going to do but, I’ll just wait πŸ˜‰

About this edition I can say that we’ll have people from even more open source communities, having the pleasure of receiving KDE people. Who comes to Bossa Conference will have the opportunity toΒ  watch talks about Qt Kinetic, declarative UI’s, Webkit, Plasma, Enlightenment (EFL), software security, HAL/PolicyKit, Python, wireless technologies, free software licenses, Openembedded, VoIP, Maemo…..ouch, a lot of topics πŸ˜‰

Besides that we have hacking times with code camps, discussions inside the pool, parties, beach and a lot of food =) hehe…

Being honest: It’s just great! It worth it =). I hope I can meet some of you guys there (some I already know I’ll meet).

So after a year of conferences: aKademy, Maemo summit,, Camp KDE, here comes Bossa Conference. Take a look in the video below to see what happened last year….

Bossa Conference 2008

If you want more information just visit the conference’s website or talk to me on IRC / email!

And just a month before this I’m going to Tokamak II (btw, thanks pinheiro πŸ˜‰ )….how wonderful is life =P

See you πŸ˜‰

Trolls, QEdje and Plasma

Last weeks I was at Qt Software’s (formely known as Trolltech) office in Oslo working a little bit with those amazing guys. I would like to thank everybody there for everything πŸ˜› . It was an awesome time!

Well, talking about Oslo it’s obvious to say that I had a lot of time during the flights to hack Plasma! It was very good because I could understand a little bit more about Plasma script engine’s API and could finally make the QEdje Script Engine work 100%. Hmm…ok, maybe it need some love during package install to avoid the install of invalid files, but I’m working on this right now, right Aaron ? πŸ˜‰ (just commited this fix: revision 866487)

It’s really nice to have a way to easily select an edje file and it automagically(tm) becomes an applet that can be used as a gadget. Of course QEdje needs some more love in order to support some more features from the original Edje as gradients and some other stuff, but the current version supports the most common use cases. Hey, and don’t be shiny…just git clone qedje (instructions at and contribute to the project too =D.

While finishing the script engine I found some problems with Qt’s proxy widget. After some discussions with Alexis (darktears), Aaron and Thiago I finally understood the problem and was able to fix the segmentation fault: first I applied Alexis’s patch on Qt (it’s inside qt-copy now) and then used valgrind to understand the next problem I had. With that I just followed Aaron’s tip about setting the proxy’s widget to 0 (zero) just before deleting it in the script’s destructor. Just worked \o/ =D.

So, after some test and review it just went to kdebase as our friend CIA-54 (aka bot) told us:

<CIA-54> asouza * r866456 workspace/trunk/KDE/kdebase/workspace/ (6 files in 4 dirs):
<CIA-54> QEdje Script Engine arrives to kdebase
<CIA-54> Working version. Still needs improvements on package install to avoid
<CIA-54> install of invalid files.

Screenshot showing a lot of the kde logo edje animation on my desktop as well as canola’s deepblue theme (the player group) with it’s settings window (it has a preview so you can see what it’ll look like if you select that group).

my desktop

my desktop

Next steps ? Wallpaper API !!!


Plasmoid with QEdje

Akademy was really great! It was awesome to give faces to nicknames and to chat, have dinner, learn and talk with a lot of people…just awesome!

My first plasmoid is done, right now. It took some time to take care about details and I had to wait before we could publish the last QEdje’s version. Unfortunately, our server is going down for maintenance this weekend but you can get the snapshots in this post. After the servers go online on Monday, we’ll also put our git repository online (actually it’s already there).

It’s a simple plasmoid and it took more time to create the animation frames (using blender…) than to code the plasmoid. Thanks to ervin and darktears who helped me with little doubts πŸ˜‰

Required downloads: QEdje 0.2 , QZion 0.2 , EET , KDE logo Edje File. I put the KDE logo here because it doesn’t fit well inside the svn. If you want to compile your own themes, you’ll need some tools from EFL. We are working on a solution for this but meanwhile you can use this hacked tarball: Edje Utils.

You can also find the release notes here and some QEdje examples here.

Just take a look at svn inside plasma’s playground and look for qedje inside applets folder. Now, some screenshots:

The first ones shows KDE logo animated in different positions and I wanted to show it working with a full transparent background in the third screenshot.

Next step: wallpaper plugins, here I come!

PS: you must take a look at the “dangeroo” joke. The best part of the joke is the listener’s faces (right ervin????) πŸ™‚

PS2: for those asking for Zack’s photos during Bossa Conference 2008, sorry but a llama ate all the photos πŸ˜›

Update: instructions to use Edje Utils:

QEdje – Init()

This is my first post that is aggregated by planet kde. My name is Artur (a.k.a. MoRpHeUz) and I work for Openbossa (open source stream of INdT– Brazil). We develop solutions for mobile platforms like the Nokia’s n8x0 devices and we are responsible for projects like Canola, Carman and Mamona. I would like to introduce the QEdje project, but to talk about QEdje I need first to explain Edje (from Enlightenment Foundation LibrariesΒ  – EFL).

From Edje’s wiki: “Edje is a graphical design and layout library based on Evas (the canvas used by EFL) that provides an abstraction layer between the application code and the interface, while allowing extremely flexible dynamic layouts and animations”. Let me detail a little bit more: with Edje you can create dynamic and animated user interfaces easily and can make designer’s dreams really true (without “hurting” developers), with much less code than other approaches.

This way programmers doesn’t need to become designers (what usually results in bad usability or even bad interfaces) and designers doesn’t need to become programmers (that results in not so good technical approaches or even bad code) πŸ˜‰ . The fact is that Edje puts the control of the usability and beauty in the hands of designers and artists, separating (until some level) the application and the UI logic. It’s important to say that it’s different from other styling systems since you can change even the behavior of the widgets on the screen, not just it’s look.

The image below show more about the Edje work flow. Where it says “designer” you can read developer too. If you work like this, you can have designers creating the interfaces and developers translating them to Edje Script Language or even an automatic tool (sometime ago we developed a python script for GIMP which takes a photoshop file and creates the edje file – without the animations, off course).

Edje Workflow

Edje Workflow

Using EFL we created animated and themed applications for mobile devices, bringing beauty to the end user. The end user just love fancy stuff on their mobile devices, we have iPhone phenomenon to show that for us.

Canola's Main Theme Crystal's Theme
Canola's Black Theme

You may be asking yourself: “but how does this affect the desktop and does this have anything to do with KDE/Qt world ?”. Let’s go to the answers…

We always wanted to use Qt and now we have the chance! Our first need was something like Edje, that just changed our lifes regarding rich ui applications development. The first move was to create a port of Edje, and then QEdje was born. So at this point QEdje is a port of Edje, leaving the EFL world and coming to Qt world. We still have some work to do (features, bugs, …) but it’s already working in a nice way. In the future we plan to create some new features that the original Edje doesn’t have right now, but may be included too.

If you take a look at e17 (enlightenment window manager) you’ll see that it has a lot of cool stuff. The first thought was that Plasma could benefit somehow from it (and it looks like that Aaron thought the same – let’s see if we have something in this area after Akademy πŸ˜‰ ). This way Plasma, for example, can easily use QEdje to have fancy plasmoids and other applications can have rich UI looks (anybody thinking about image viewers, multimedia players, educational games, etc .. ? πŸ™‚ ). We’ll also make this easier by providing support for embedding QWidgets inside you Edje interface, so you can benefit from the huge widget’s library provided by Qt.

So, if your are going to Akademy and is interested, please watch our presentation. We’ll give more details, explanations, future plans, etc..etc..etc.. . And if you are not going to Akademy, please contact us at and take a look at the project’s website: . If you wish, contact me by email also.

That’s all for now, hope to have more news and demos soon! πŸ™‚

Qt + Assistant + Emacs

Everytime I wanted to get a console I typed F12, willing to make Yakuake come down. But sometimes I pressed F11 and then Devhelp was loaded. It’s ok when you make this mistake one, two or even three times…but It was happening a lot.

I searched my entire KDE’s shortcuts trying to find where the hell was that key binding but I had no luck. After a while, I discovered that it only happened when I was inside Emacs…hmmm…of course it was an Emacs key binding and not KDE’s one!

Ok, now I was able to remove the F11 key binding, but the fun just started: how about binding Qt’s Assistant instead of Devhelp as I’m working much more with Qt than with GTK ??? πŸ˜‰

At first it looked pretty easy, just needing a few lines inside .emacs:

(defun assistant ()
"runs qt assistant"
(start-process-shell-command "assistant" nil "assistant")
(global-set-key [f11] 'assistant)

But now I really need Assistant to automatically search for a keyword when I open it. It would be much easier to just put the cursor in the keyword I want and make Assistant search for it. A few hours later I finished it and came along with the following patch on my “personal” Assistant:


And my final Emac’s function:

(defun assistant ()
"runs qt assistant"
(start-process-shell-command "assistant" nil "assistant" "-search" (current-word))
(global-set-key [f11] 'assistant)

Emacs + Assistant

So much fun with Qt =P

fisl 9: a good start

Amazing: that’s the best word to describe everything that happened during this last fisl. Everything was so great that it’s even hard to describe here using only words. So I’ll try to explain a little bit about each interesting topic that I want to talk about.


We had two levels for the programming challenge.

The first level was just like an arcade game: you had one task that was a “treasure hunt”, and while looking for the treasure (that was actually a number), the teams discovered more tasks. The teams that had more points at the end of the day could go to the next level (I can make another post telling the details about each level later). All the tasks were related to Python for S60.

During the second level they were asked to implement an ODF reader for the Maemo platform using Python. It was so great that at the end of this level (that lasted 24 hours) all the teams had an working ODF reader with different approaches. Some of them converted the document to HTML and used the embedded browser (microb) to open the file and other teams just parsed everything using an xml parser.

This second level was very special for everyone. The students could develop an application from scratch that was very useful and new and the community gained new developers and a new project as they want to keep working on their projects (possibly all of them will become just one project).

After all this hard time, the prizes for the teams: 1 n95 for the 3rd place, 3 n95 for the 2nd place (one for each member of the team) and 3 n95 + 3 n800 for each member of the 1st place!! Great prizes πŸ˜‰ !


A congress only can be great if there are great people at it. And that was exactly what happened. We were able to meet so many good people, let’s start talking about each one.

First, people from GUS-BR (Slackware User’s Group Brazil). It’s very good to meet old friends from IRC that use the same distribution that you use =) . Also very good to buy some stickers and other stuff.

People from brazilian universities: Unicamp and UFPE. I was able to meet some classmates from Unicamp and remember some funny stuff and also ask help for UFPE guys (we needed to flash an n95 and they could help us!!! Thanks guys!!!)

Trolltech & KDE guys: we were able to watch a presentation from Andreas (Qt) and make some new friends like Knut, Kevin and Thiago. Also good to chat (again) with Helio. From Andreas we could understand a little bit more about Qt and show some of our work, very interesting and productive chat. Maybe we can submit some paper to akademy and show some of our ideas to kde guys !

ODF and BrOffice: it was awesome to meet Gustavo from BrOffice and Jomar from ODF Alliance and receive their feedback. This feedback just made the Arena Challenge even better, for us, students and the community !

Also, I would like to thank FΓ³rum Nokia, Fernanda and Paulo from fisl organization as they helped us a lot. From the INdT side, thanks a lot to Silvia, Selma and also Carol for the “Jack Bauer” joke πŸ˜›

Special thanks to all the guys from Casa do Cinema de Porto Alegre that made an wonderful work and will make a video to show everything that I talked about in this post, so we can share with everybody.
openbossa logo