Sunday, 4 February 2007

Oh, thats smooth

Well, its finally done! I just committed the smart launcher code to svn! After the rework of the internals (not entirely without its problems), the move to cairo for drawing, and much smoother operations, Awn now has launcher support!

The fine-tuning has yet to be done, but heres the jist of it:

* Drag and drop an Application file (a .desktop file) to any part of the bar (including another task/launcher).
* The launcher will now pop-up at the end of the bar. Ready for you to use it. To show that it is a launcher, it has a little upwards facing arrow at the bottom.
* Right clicking on the launcher gives you an option to remove it.
* Left clicking launches the program. The icon will bounce until the window opens, and suddenly the little arrow is gone, the launcher just like any other task on the bar.
* Right clicking now presents you with the normal window menu.
* Upon closing the application, the launcher will revert to its previous state, and the little arrow pops back to tell you its a launcher again!

A demo (click to go to download site):
Bear the usual in mind when watching the video (ie. jerkyness is not apparent in real-world use).

Now as this is new, here are a few facts/known issues:

* Your launchers data is automatically kept in a gconf uri list, but yuo cannot modify it outside the program (in the sense Awn will not read the modified code until it restarts, not that it will blow up your computer, I waiting for svn revision 88 to do that)
* ATM, the code that associates a launcher with a launched application works about 90% of the time, but some applications have a special way of spawning, which confuses Awn. A good example is Realplayer, which you will execute as 'realplayer' but will run as 'realplayer.bin'. If this occurs, you'll just get another task on the bar.
* ATM launched applications are connected to Awn, so if you exit Awn, say bye bye to the applications which you lauched using Awn (its a new idea I had to keep people using Awn).

Also, apart from lots of small fixes, I have added support for _NET_WM_ICON_GEOMETRY XProperty (thanks to Quinn of Beryl Project). This is basically what tells the window manager where the windows icon is on screen, so the WM can do its effects (such as Beryl's Magic Lamp effect). This should also allow some of the new Beryl plugins, like the live-thumbnailer, to work, although I need feedback on this.

A quick vid (click to go to download site):

Well, thats it for now, its 02:38, and i'm off to bed!


Rob2687 said...
This comment has been removed by the author.
Rob2687 said...

Hot stuff!

I was just going to ask you about the _NET_WM_ICON_GEOMETRY XProperty thing. Although I didn't know what it was called exactly. :P

Andres said...

hi, found a bug:

open firefox, right click a link and choose ¨Open in new window¨.

The created windows is not added in awd...

im using latest svn.

great project, keep up the good work. :D

ahoge said...

Woohooo! Man... considering the how fast launchers came out I'd say they are teh smart! Yea, there are some bugs(some relate rather to app authors or toolkits and not to Awn) but still...they work pretty well! And I realy <3 how they look (>'.')>

Big Thanks to Njpatel!

Here is how it look now :>

Neil J. Patel said...

Hi everyone,

Thanks for the compliements! They are very much appreciated!

@ Andres, thanks for pointing that out, its been fixed in SVN. Funny what a difference a if/else statement makes!

@ Rob, lol, I didn't know what it was either, just that I wanted those damn magic lamp effects to work!

@ al, thanks! glad you like it. I saw the screenshot on your blog...looks pretty sweet man!

If anyone is using the latest Beryl with the thumbnailer plugin, I'd love to see how that looks!

Rob2687 said...

There's not really too much to see.
It shows that little thumbnail when you mouse over the Window List. The thumbnail doesn't update/refresh when the window is minimized though.

Anonymous said...

Always testing for AWN on Ubuntu Feisty Herd 3.
This is the error I receive when I try to compile from SVN:

checking for AWN... configure: error: Package requirements ( glib-2.0 gobject-2.0 gtk+-2.0 gdk-2.0 libwnck-1.0 gnome-desktop-2.0 libgnome-2.0 gnome-vfs-2.0 gconf-2.0 x11 xproto) were not met:

No package 'gnome-desktop-2.0' found
No package 'libgnome-2.0' found
No package 'gnome-vfs-2.0' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables AWN_CFLAGS
and AWN_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

Any suggestion?

Anonymous said...

Still me...Probably I've found the problem:
new version of libwnck under ubuntu feisty has got problems with svn code.
The only version shouldwork is 2.16.1-0ubuntu1!!!

Anonymous said...

It seems libwnck, even previous version,doesn't work on ubuntu

Rob2687 said...

apt-get install libgnome-desktop-dev libgnome2-dev libgnome-vfs-dev

TreviƱo said...

Ubuntu deb packages from svn in my repo:

I plan to update them quite frequently ;)

Anonymous said...

hi Neil...i just wanted to thank you for your fast and wonderful work.

I hope your work will continue to get better and better.

It's just a fresh air breath in the linux desktop world.


Jack Kerouac said...


This rocks so hard it's amazing.

A couple of items on the wish-list:

1. Ability to order icons without fiddling with gconf.

2. Auto-hide.

3. Ability to place the dock anywhere on the page (top-centre, top-right, bottom-centre, bottom-right, etc.).

4. Icon mouseover 'growth' or 'expansion' ala Mac dock.

Keep up the good work. Truly the best dock out there so far!

Anonymous said...

This looks great... I'll have to compile SVN when I get a chance. Great work!

Anonymous said...

OK.. I got a chance to compile it and I really like it. The only issue that I am having is that sometimes apps will not unminimize from AWN unless I right click and choose unminimize. I'd be interested to know if anyone else is having the same problem. I'm using ubuntu edgy+XGL+Beryl 1.99.2 (Haven't upgraded to lastest Beryl because of problems they have yet to fix)

Neil J. Patel said...

Hi Jbus,

I'm glad you like it!

Regarding the problem, I'll have a look at the code when I get a chance, I haven't run into this problem before, so could you please let me know which apps do this (so I can try and reproduce the error).

Anonymous said...

Really sweet. Can't wait till this gets into the distros or even Gnome (3) itself :)

Rob2687 said...

That's if Apple doesn't unleash the apocalypse (lawyers) down on the project first.

Anonymous said...

Hi! very good work!
if possible can you add autohide option please

Neil J. Patel said...

Hi all,

@anon : Thanks! I don't know whether or not it would get into GNOME...Awn is not really everyones cup of tea, is it?

@Rob : Lets not mention them for now, at least until Awn has more orignal features than OS X, then we can argue back ;)

@netjack : Thanks! Autohide option is in the works!

Unknown said...

Same as Jbus.

I'm also having a problem with unminimizing. If i click on an icon to minimize, it will successfuly unminimize by clicking the same icon. however if i do anything within the window aside from minimizing it THEN minimize it, it will not unminimize. I must then right-click and select unminimize, or open something from the dock before unminimizing will work again. I've also noticed that this only occurs when all windows are minimized. if there is another window remaining on the desktop, then unminimizing doesn't seem to ever be a problem. the only significant changes that i can think could effect it that is that i changed the Nautilus preferences to not show the desktop so that the compiz utility can manage my wallpapers.