June 9, 2011

zester zester
Lab Rat
89 posts

QML Based Linux Desktop Enviroment

 

Intitaly I was skeptical about what QML could do, so I figured “what the hell” I prototype a desktop environment using QML.

Animated Wallpaper, Translucent Panels and Desktop Icons (I used Magick++ to create a forward and reverse swirl effect and saved the effect as a mng animation”

You will find a download of the video below this image.
I always wanted animated wallpapers
Video of Animated Wallpaper [zester.googlecode.com]

Here is a screenshot of a more complete desktop it features Sliding Drawer like Panels, Desktop Icons,
Rubberband Selection, Animated Wallpaper and Integrated Window Manager and Window Drop Shadows.
Fianl Result

I only used the raster engine in my test’s and everything was done on a Intel Atom 330 CPU.
I didn’t notice any difference in the performance compared to the all c++ example that I did.

Adding Animated Desktop Icons with Particle Effect (House Icon with Smoke coming out of chimney), and 2D Physics
using the QML Box2D plugin is extremely easy to do.

I now find QML to be very very impressive.

12 replies

June 9, 2011

mario mario
Lab Rat
240 posts

Cool and welcome to the world of QML :)

I can’t find the link to the screenshot of a more complete desktop?!

June 9, 2011

zester zester
Lab Rat
89 posts

I haven’t made a video for that yet. I wanted to upload my videos to youtube or vimeo but the
videos get all messed up when they convert them from ogv to flash.

June 9, 2011

ZapB ZapB
Ant Farmer
1426 posts

Looks very nice!

 Signature 

Nokia Certified Qt Specialist
Interested in hearing about Qt related work

June 9, 2011

zester zester
Lab Rat
89 posts

Rubberband Selection
One thing that I did notice, “didn’t realize it at first” but when you set your view to have rubberband selection
it ends up being on the top most level of your application.

On normal desktop environments rubberband selection is reserved to just the desktop.

Although I didn’t find away to restrict rubberband selection to the desktop, I discovered that this could actually be a feature. You could rubberband select a group of window and move or resize them as a group.

You could rubberband select everything on the desktop if you wanted or you
could place restrictions on certain objects.

Now rubberband selection could be done for just the desktop but not by setting it with the view. You would have the rubberband as an object its self. So when you clicked and dragged on the desktop “icons are separate objects” you would place/show/resize the rubberband object starting at the point that your mouse clicked and ending at the point when you released your mouse button.

All icons who’s position is with in the bounds of the x,y,w,h of the rubberband object become selected.

Animated Widgets
I started thinking about animated widget, after giving it some thought I came to the conclusion that there isn’t a
Qt widget that you couldn’t re-create in a short amount of time except possible the Color Picker and the Text Edit/Entry widgets. Then my creative mind started working. Hmmmmm how about having a button sprout a rocket
engine, have a flame & smoke particle effect. And then have the button rocket off the application. Hit the side of the desktop bounce a round a couple of times and explode. lol ;)

August 27, 2011

raja26 raja26
Lab Rat
77 posts

The new Ubuntu Unity interface is going to have a QML 2D based interface and a high Qt integration. But, man this is awesome when an individual like you can do something that a big community like Canonical is doing.

By the way, QML is the best innovation for creating UIs and it just made Qt like God to all developers out there. But still C++ should not be left out.

September 11, 2011

markc markc
Lab Rat
35 posts

This looks like a wonderful start. Is the source code available?

I had a look around zester.googlecode.com but all I could see was a Desktop.zip done in HTML, not QML.

September 11, 2011

zester zester
Lab Rat
89 posts

That was the start of a Hybrid C++/HTML concept. That never really took off do to poor performance. I do
have the QML source somewhere’s for they above application. It fairly basic. But Me and a few other Qt developers have started working on a Qt Desktop Enviroment. If you can program your more than welcome to join us hack, share ideas and what not.

You can find me here https://github.com/zester/Quantum

Desktop

File Associations Editor

Gwenview Clone

Package Manager Front End

markc wrote:
This looks like a wonderful start. Is the source code available?

I had a look around zester.googlecode.com but all I could see was a Desktop.zip done in HTML, not QML.

September 12, 2011

markc markc
Lab Rat
35 posts

Excellent. About time someone(s) started on a QDE project. The folks that still use KDE3 will be very pleased. My Qt-fu is limited but hopefully I can make some trivial contributions although I am wary of the license. I normally only contribute to GPL licensed projects.

The above examples look far more advanced than the 2 sub-project folders currently in the repo. Do you intend to add the above program code to the Chipara repo anytime soon?

September 12, 2011

zester zester
Lab Rat
89 posts

Licensing has been a problem, one half of the team wants GPL and the other half MIT/BSD. I have no preference as-long as its an opensource GPL compatible licenses. So you can say I am working on that :)

The last two applications are not in the repo yet but they will be eventually. When I start a project I try to get it to the point that its fully commented and the basics are working with the addition to a couple of advance features, before it hits the repo.

There are others with there own repos working on different things. Manjaro Linux <— there working on
a Hardware Detection System and a Login Manager using Qt4.

Unlike traditional open source projects ours are made to be forked. For instance I might fork Manjaro Linux
Login Manager put my own spin on it. They will then go threw my fork and pull what code that I wrote that they want and integrate it into there version. Someone else might come along and fork me and put there spin on it. Then both me and Manjaro Linux might cherry pick threw that persons version and integrate what code we want. In the end there will always be a maintained version of the code by someone familiar with the code base, and the quality of the code will be very good.

You don’t have to be an expert at Qt to contribute. Say most of your experience is with the QtXml module. If that was the case then you could help with the FreeDesktop Classes/Libs

It all depends on where your experience is and what you like to do. We are starting from scratch so even a calculator or text editor is useful.
We are saving the easier stuff for the less experience programmers to work on, and working on the hard stuff our selfs. :)

September 12, 2011

markc markc
Lab Rat
35 posts

I actually prefer and use AGPLv3 myself. Thanks for the tip about http://manjarolinux.org/ as I use Archlinux and hadn’t heard about them.

My initial thought was to at least go through the code and convert any tabs to 4-spaces and cosmetically normalize some other trivial }else{ cases as I review the source to better understand how it works. And convert the README files to Githubs README.md markup… but, no point if your local codebase is more advanced and will overwrite my simple changes.

If I may be so bold I have 2 suggestions…

a) to create a parent project folder (say QDE/whatever) with a QDE.pro file adding subdirs for any related sub-projects so that one can point qtcreator at single project file can build everything in one go.

b) use the master branch as a stable rolling release target and always develop next/staging experiments in branches. This way there is a single canonical and persistent URL for the latest source that should always build and run.

October 15, 2011

operativo85 operativo85
Lab Rat
1 posts

Beatiful! It’s opensource?

November 12, 2011

markc markc
Lab Rat
35 posts

So after cloning https://github.com/zester/Quantum.git what is the correct build order (what depends on what)?

Or the build procedure for that matter?

Update: I managed to get QTermWidget and QTerminal to compile and run but the menus do not work. Is this app and Quantum still under active development? Should I fork the repo and provide any pull requests if I find something I can fix or add?

 
  ‹‹ Lokking for an open source Qt VirtualKeyboard widget?      QtQuick - From bling bling to blink blink ››

You must log in to post a reply. Not a member yet? Register here!