Monday, February 25, 2008

Simple launcher and other news

Been feeling kind of crappy recently but I've got a few things done.

  • Most notably is simple launcher which is basically just standalone-launcher with all the interesting bits ripped out of it. All it does is act as a launcher for a single item. So those of you who don't want a taskmanager and just want launchers you can removed the taskmanager and add these. Note it will probably cost you around 2 M of memory per launcher. Personally I would prefer using standalone-launcher in mult-launcher mode...
  • Added a config key /apps/avant-window-navigator/applets/shared/dialog_focus_loss_behaviour. The idea is that certain behaviors should be shared by applets. This one is to be checked by applets that use dialogs and it will control whether they should close the dialog on loss of focus. This is expected behavior in general but it messes up those who use focus follows mouse. I expect a noet about this should get pushed into the applet guidelines. Of course none of the applets have been taught about it yet.
  • Did some cleanup of the notification daemon and finally tracked down a somewhat long-standing bug.

Other news:
  • Bug fix releases of awn and awn-extras arrived on the heels of 0.2.4. So we now have 0.2.6 releases
  • There's also a new comics applet courtesy of Moses.
  • And some fixes went in for awn terminal.
  • Pavpanchekha also has been continuing work on his mail applet, AWNlib and a bunch of small cleanups all over the awn-extras.
  • More detailed summaries of what has been going on (including things I missed mentioning) can be found here and here.

Wednesday, February 20, 2008

Invisible icons

What is the best way to create an invisible applet/icon on the awn bar?

I've been playing around with a couple of approaches to see what gives the best results. There are three basic approaches I've been trying.

  1. Set the icon to a 1x1 transparent pixbuf. It works but you still have the awn-effects related padding around it taking up several more horizontal pixels.
  2. Use awn_draw_set_window_size() and set the dimensions to 0x0. If you do this you also need to combine with method 1. This seems to convince awn-effects to remove the buffer pixels... so the overall results are better. It seems to end up using 1 pixel.
  3. Just calling gtk_widget_hide() on the applet object itself seems to have similar results to 2. There is still a visible movement in the bar when the applet is completely removed, even when it is hidden.
Which method to use? I'm using all 3 when hiding the standalone-launcher applets. Though either 2 or 3 alone seems to give very similar results, using the two methods together appears to reduce the chance of a visual artifact appearing if it is removed (a brief appearance of the infamous white line). Please note this is extremely hard to confirm as it tends to be somewhat difficult to test.

If you don't feel like messing around with the awn-effects stuff my suggestion is that method 3 appears to work relatively well by itself.

I would still like to have the ability to hide an applet icon in such a way as to have no visible movement in the bar when the applet is removed. If anyone has thoughts on how to do this please leave a comment. thanks.

Tuesday, February 19, 2008

Things to do

Now that 0.2.4 has made it way out into the world I thought I'd give a woefully incomplete list of things I'd like to spend some time working on.

Awn Core
  • I'd really like core to build on freebsd without needing a patch. The existence of xutils.* in the awn source is, for me at least, troubling. Besides now that we're desktop agnostic (congratulations malept) it would be nice to have a bit of platform agnostic goodness.
  • Addition of a hide applet function in libawn. Currently when devs are hiding an awn applet we are resorting to a hackish approach, creating a 1 pixel wide transparent icon. In itself that's kind of ugly but there is also a several pixel buffer space around this pixbuf... so our invisible applet takes several pixels on the bar. Not good, and definitely something that needs to be done right.
  • Review some of libawn-extras and possible move some of that functionality into libawn. I'm thinking there are several good candidates.
  • Maybe spend some time on converting some existing source files to the new coding style when I'm feeling bored.
Awn Extras
  • Continue to work on my experimental, out of core, launcher/taskmanager implementation.
  • Notification Daemon needs some work. I'd like to put an option to have an icon displayed in the bar that would allow the display of notifications to be switched on and off. And maybe n mode where they're displayed but with a high level of transparency. Also, some general cleanups of the code need to take place including implementing Awn Config Client support, and trying to track down the odd bug.
  • Shinyswitcher calls out for an xrender option. 'nuff said. And a standalone mode... I think I'd like to try it parked in the bottom left unused real estate on my screen.
  • Cairo-menu and awn system monitor have a bunch of little bugs. And at some point system monitor really needs a rewrite. And I also have promised someone that there would be an xfce version of cairo-menu.
  • New Applet under consideration: a configuration applet that encapsulates the features of awn-manager that I use most often :-). Awn-manager is nice but I don't like leaving it open and it takes a while to load... and I do use it quite often (mostly for starting and stopping applets).
  • New Applet under consideration: I did say at one point in time that I'd sit down and write a SUSE style menu, however, with the appearance of a gimmie applet I think I may continue to delay this.
  • New Applet under consideration: a libjana based clock applet periodically calls, and maybe I shall write one unless someone or other beats me to it.
Far to many things... umm... so how about... patches are welcome?

Sunday, February 17, 2008

Hello world

After many years of resisting a blog I've decided to join web 2.0. Woohoo!

Anyway, my intent is to mostly post here regarding my work with avant window navigator and its associated applets. Ah... the ruminations of another open source developer.