PlexyDesk Mac OS X Lion enhancements

Posted: 23rd July 2012 by siraj in MacOS

Finally I found some time to improve support for PlexyDesk on Mac OS X Lion, there were few things which bothered me
when ever I tried to Plexydesk on Mac. For example when I start plexydesk on mac, it would steal all the focus and minimize all the windows.
which meant that I would have to restore each window manually, it didn’t stop here, if I click back on the desktop, I would lose the focus on the other windows again. Apart from this, Lions new Mission control was a big show stopper for plexydesk, since mission control would consider it as just another window on the exposed view , it made it difficult to use.

PlexyDesk is just a Frameless QWidget that stays below other windows on Mac, so it’s really hard to avoid the above symptoms, Without the help of some Native cocoa code to define the mac os x Desktop specific settings. Unfortunately Qt doesn’t really provide straight forward API to do this. But after few hours of struggling with the code and googling, I finally managed to interface Qt and NSWindow to solve my problem. Now plexydesk has following features on Mac.

Plexydesk Widgets co-exsiting with Native Mac Desktop Elements

Plexydesk Widgets co-exsiting with Native Mac Desktop Elements

  • Renders one level above the desktop icons, which means all plexyesk widgets will work along with the mac default desktop.
  • Users can interface with the native desktop rendered by Finder (copy/paste items, drag and drop, and also changing the wallpaper)
  • Uses less memory,  this is was completely unexpected, but with the new fixes plexydesk uses 1/2 the amount of RAM it use to take.
  • Faster start up.
  • Doesn’t steal the focus from currently running top level widows..

Overall I’m really pleased with the way Plexy works on Mac now, it’s usable, fast and makes my desktop look really pretty :) .

SVG image provider for QML

Posted: 11th September 2011 by siraj in PlexyDesk General
SVG Background rendering with QML

SVG QML item

I’m pleased to announce that Plexydesk now supports accessing  SVG elements from QML. So if you need to access an element with a SVG file, first you should define the size with “sourceSize.width” and  “sourceSize.height” , then provide the source URL as “image://plexydesk_svgprovider/background#center”.  “background” part of the URL is the file name, normally background.svg or background.svgz, and you don’t need to specify the file extension, and “centre” is the element name of which you would like as the source image. When you use this in your QML application, you should write it as “source: “image://plexydesk_svgprovider/background#center”. The final note is that, you should always set the sourceSize.width and sourceSize.height properties of the image item. Plexydesk widget backgrounds now support this feature, as you can see in the screenshot above.

Image {
id: background
sourceSize.width: parent.width - 20
sourceSize.height: parent.height - 20
source: "image://plexydesk_svgprovider/background#center"
x : 10
y : 10
z: -100
asynchronous : true
opacity: 0.35
smooth: true
}

Plexydesk Widget bling with GLSL

Posted: 22nd July 2011 by siraj in PlexyDesk General

For the last three years PLexyDesk was using CPU based animations for widgets, which is fine for most desktop use cases, but it doesn’t scale that great on netbooks and handsets.

So we decided to use OpenGL, to do the animations and graphical effects, when it’s possible (when the hardware supports it).

I have not merged this branch to PlexyDesk upstream master yet so if you would like to try this new experimental feature compile plexydesk from the “shaders” branch.