Category Archives: KDE

Pastebin (Old) Update and Kinetic

It has been some time now since I updated the Pastebin applet and I didn’t have enough time to write this small post telling you the news: there is now a imagebin server implementation for the pastebin applet. This means that you can just drag your images there and it’ll post to imagebin server and you can share images with your friends easily =) I even heard today an use case of people taking snapshots with ksnapshot and draging the picture in the pastebin applet…that’s really nice!

Another very good news is that the Kinetic project is “on the streets”. Now you know what we were doing in Oslo by the time of this post. We gave a little help for those guys and soon we’ll keep working very close with those guys. We just have to finish another small project first…

Besides that I’m really happy that KDE 4.2 is almost on shape (at least for me hehe). Every day it becomes better and better. I also have to mention that applications like Marble and Digikam are getting even better also…

From the development side, hopefully I’ll be able to help closing some Plasma’s bugs until the release.

That’s it for now =P Cheers!

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 http://dev.openbossa.org/trac/qedje) 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 !!!

Cheers!

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: http://dev.openbossa.org/trac/qedje/wiki/EdjeUtils

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 #qedje@freenode.net and take a look at the project’s website: http://dev.openbossa.org/trac/qedje . 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"
(interactive)
(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:

0001-created-search-keyword-function.patch

And my final Emac’s function:

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

Emacs + Assistant

So much fun with Qt =P