Haptork is one of my favorite DXers, so I'm always excited to see what he does next. And he's come out with this amazing widget.

It works just like a real dock. Drag and drop your shortcuts, delete, add a separator, configure the target, image, tooltip, and display properties.

I love the display effects, the 3D elliptical zoom & scrolling (how the heck did he do that?!) It has a boatload of controls for how the dock moves and displays, so you can tweak it to just the way you like it.

I know a ton of work must've gone into this thing and it definitely shows. My hats off to the author!

This gadget goes way beyond sticky notes. I'm not much of a desktop notes user, but this is the one I'd go with if I did.

Let's talk about the weather note; it's powered by WeatherBug.com so you get access to an amazing amount of information: video, maps, hundreds of more precise locations, and much more.

How about the stock note? You can watch stocks at a glance or open up the stock graph. It also quickly retrieves Yahoo! Finance feeds.

The RSS note works for the 5 majror news sites and it has quick access to different news categories.

It's also got a calednar note, clock note, and search note. Of course, you've got your note note, which is really more of a super note. There are so many useful options on that alone (hyperlink, alarm, pin on top, etc.,) you just have to try it for yourself.

Buy the pro version and you get tons more features and options.

Did I mention it comes with a user's manual? This is a profesional gadget made by a long-time DX expert. It is definitely worth downloading.

This theme matches the WB of the same name by madcat21. I love the color combination. It has a dark and menacing feel to it with the black semi-transparent elements. And it just looks good on the desktop.

It's fully loaded with the usual goodies: drag and drop menus, media, weather. This is Jim (in case you've not been around lately, PuterDudeJim is now RedneckDude,) so expect nothing less than the real goods.

Which is why I do have to make one teeny, teeny-tiny request form the DXtheme Extraordinaire: could we have some new images for the media buttons? We've seen a plethora of amazing styles from this artist over the years and I'd like to see him continue being unique and different.

Other than that, it's pure awesomeness! You must give it a spin.

Global Hue Changer (or brightness or size or...anything!)

DesktopX.Objects is another one of those features in DX that can be a very powerful function. It wasn't until _Martin_ offered a tip in the "What would you like to see in DX 4.x" thread (you think I've thread-dropped enough times?) that I realized how little known it was.

Expanding on Martin's tip, I thought I'd show a few other ways you can use the DesktopX.Objects namespace. Since the point is to control several objects, you'll want to create three or four objects to see how these scripts work.

This first script will shift the hue of ALL objects in your project on l-click. Create an object; create a new script; copy and paste; apply.

'Called when L-click is releasedFunction Object_OnLButtonUp(x, y, dragged) If dragged Then Exit Function For Each obj In DesktopX.Objects If obj.states("").hue => 255 Then obj.states("").hue = 0 Else obj.states("").hue = obj.states("").hue + 10 End If NextEnd Function

You could just as easily make obj.hue, obj.width, obj.left, or any other object property.

This one will toggle ALL objects in your project on l-click, except the toggle button. Create an object; name it "toggle"; create a new script; copy and paste; apply.

Dim ToggleButton

ToggleButton = "toggle"

'Called when L-click is releasedFunction Object_OnLButtonUp(x, y, dragged) If dragged Then Exit Function For Each obj In DesktopX.Objects If obj.name <> ToggleButton Then If obj.visible = False Then obj.visible = True Else obj.visible = False End If End If NextEnd Function

As you can see, with the .name property you can easily target specific objects to exclude from the action.

And for the heck of it, here's a script I use a lot to get the total number of objects in a collection that are NOT grouped. (To get the total number of grouped objects use: DesktopX.GroupObjects("groupname").count)

So I've got a bunch of objects I don't want grouped, for one reason or another, but I give them similar names--"point_1", "point_2", "point_3", etc. I can have this function search for and tally all the objects with "point_" in their names.

Again, DesktopX.Objects is the key. Using the same "toggle" object you created above, replace the entire script with the one below.

'--Count how many similar objects not grouped--Function countObj(strg) total = 0 For Each elem In DesktopX.Objects 'If string found in object name, add to total If Instr(elem.name,strg) > 0 Then total = total + 1 Next countObj = totalEnd Function

The message box should say it found one object with "toggle" in its name.

So you can see there's a lot you can do with DesktopX.Objects. It's all explained HERE in the user's guide under Namespaces and Enumerators.

How to Get to the Market

People love stuff. What's more, they love stuff that does stuff. DesktopX is a program that makes stuff that does stuff.

There's lots of stuff people would love to have and use--you know, the "hey, I wish I had an XYZ that did ABC" type stuff.

You probably have an XYZ idea. There's probably tens of thousands of XYZ's out there, floating around in the minds of the masses. If only there were some program that could harness that creative energy and bring those ideas to fruition.

The ideas are there. So, I ask myself, why isn't there a mob of people using DesktopX? Where's the market?

If we get right down to it, many people love stuff that does stuff without them ever having to do stuff to make it do stuff. And if they have to do something, it better be as quick and painless as possible. Pick it up, turn it on, use it. Download, execute, done. Learning curve? Preferably not steep.

And that's where DesktopX stumbles; that's where widget-making in general stumbles, be it Yahoo, Apple, or whatever. The two major stumbling blocks, IMO, are scripting and configuring, otherwise known as painful & time-consuming.

As far as configuring, I've given my thoughts on an intuitive interface and one-click object creation in the aforementioned DX 4.x thread (one more mention wouldn't hurt,) so I won't become a broken record here.

But learning to script is like learning a second language. Having to script in order to create the really amazing widgets is akin to saying 'batteries not included.' How do we get around this stumbling block?

I imagine a truly easy-to-use widget engine would never have the user encounter coding. Ever. Unless they wanted to. That means creating a proxy by which they could add functions without knowing they're scripting.

Supposing you had a list of actions--something quite like the Filters in Photoshop: "Shift hue on l-click," "Shrink on mouse away," "Grow on mouse over," etc. All the user would have to do is select the action, enter a few settings, and DesktopX could build the script and put it into the object for you. Add to that the repository idea RomanDA has mentioned before and DesktopX could come with a whole library of scripts, ready to use.

I've said it before, I think accessiblity is the key to opening up DesktopX for the general market. The biggest obstacle is getting all these ideas implemented. There's not much we can do on the user end of the DesktopX community besides offer suggestions. In the end, it's all up to how much time, money, and resources Stardock is able to invest in upgrading and mainstreaming DesktopX. I understand they'd have to weigh whether that investment would be profitable, whether it's got a viable market, but I believe the market is there and it's broader than just the die-hards and coders; we just have to make DesktopX more accessible to them.

Of course, this is just my take. How do you think DesktopX can get to the mass market? Is it even possible or will DesktopX be another one of those much-loved but little-known softwares? Share your thoughts below.

The very best idea is the one about scripting and not knowing it. Imagine being able to create gadgets, objects ,widgets and such by just clicking away. Having the scripts generated as a result can prompt a user to curiosity and see the 'how' of scripting...i.e....what text the clicking generates. How about a window that shows the scripts at the same time the object or what have you is in another window. I'd most definitely welcome that. My 2cents too.

Well, Eve, I don't really think I'm all that, but you can feel free to keep on spreading those nasty little rumors if you want...lol. Thanx for the Theme of the Month pick. I appreciate it, and I will do my best not to reuse media player buttons in the future. I promise to keep trying to be different and unique...lol.
And you keep putting out those awesome scripts and templates I will use them...lol. Thanx! And I must say this is a very nice article! Keep on DXing!!!!

Personally, while others run away from scripting, I make DX themes for the flexibility of it. In a WindowBlinds, you are stuck with window borders & standard graphics. In RightClick, you have a background, arrows & mouse over states. With DesktopX, you do everything - location, behaviour, graphics!
I would love a more complex suggestion system while typing (i.e. currently the list that opens when you type 'DesktopX.' seems slightly outdated), and also some more build-in functions (I would like to be able to do certain stuff like "Format(Now,"hh:mm")" for time & also allowing the 'Dim' function to host something like "Dim ObjA as Boolean = True".)
Maybe a simple explanation to certain parts of the script as featured in basic VB programs like VB.NET Express 2008. eg. While typing up a section including a message box, it will give an explanation of what can be done. MsgBox("Text Body","Title Name","SelectType") as an example (it's not correct BTW).