Friday, 9 February 2007

Awn Updates

I've been working hard to make the general usage of Awn a bit better, so here's the newest stuff:

1. Awn itself now has a popup menu, access able from the left or right edge. It has two options for now, Preferences (which I totally missed for some reason, until it was pointed out to me!), and Close, which will close Awn properly, and not kill your tasks that you have launched with the launchers ;).

2. You can D&D to the bar as well now, so basically the two edges are D&D hot spots for launchers.

3. Due to popular demand, the launchers and tasks are now separate. Therefore even if you D&D a application, it will popup on the launchers side, rather than at the end of the bar.

4. Continuing from 3, you can have a visible separator between the two. avant-preferences has been updated to reflect this. You can also choose the colour of the separator. Its only a 1px line for now, but I will make it look better soon. *UPDATE* Not any more, now its much sexier, take a look at the second screenshot!





Also, Awn now has a wiki, which was kindly put together by MikeJones3. So it should be easier for you to discuss ideas and such.

I would also like to say a big thanks to everyone who has commented on my ideas over the past two days! I got Dugg again, I've been twice on Planet GNOME (Jeff Waugh linked to my blog, and just now, Ross Burton has linked to Awn!). Its really cool to be able to read everyones thoughts and see everyones reaction! I promise to make this stuff a reality as soon as I can!

P.S: Maybe its time to put some resize code into Awn:

Wednesday, 7 February 2007

While I have your attention

I've been promising this for a while, below is an account of ideas regarding Awn, the GNOME Desktop, and also some information on future projects.

Awn and the desktop
I have been thinking about Awn for a very long time. Although it is young in terms of releases, its been rattling inside my head for ages, questions like What more can it do with task icons? How else can it fit into the desktop? What else does it need to complete the effect?

Now, below I have included some mock-ups of my ideas. You will notice a little search window in there, well that my friends, is the continuation of Awn, Affinity.



The best way to describe affinity is to say that it will be a front-end to all the information on your desktop, imagine it as 'Planet' to different feeds on your desktop, such as beagle/tracker, recent documents, bookmarks, tags, contacts, etc. It can be called from either a key-stroke or from the gnome-panel. Some features :
* It has search-as-you-type.
* Actions (like typing "www.google.com" will present you with an option to open it).
* Written in C, its extremely fast, even on a old system.

I haven't released any code yet, but expect some in the next few weeks, once I have cleaned it up. It, like Awn, is in early stages of development, and just like Awn, everyone's views count!

Speaking of Awn, you may have noticed the bar on those mock ups...looks familiar doesn't it? Those are the mock ups I used to make Awn. As you can see, the bar has a mock up for startup notification (the spinner), yes it looks a bit simple now...just wait till I'm done ;).

Below is also a mockup of whats coming in 0.3 for the 'I have a wide screen, cater for me!' guys!



Appearance
As you can see from the previous mock ups, there are some funky themes in there! That leads me to my next point, which is this: I love having a composited desktop, Awn doing its thing, Beryl throwing windows all around the screen, cairo-clok ticking away, however, in my day-to-day tasks, I am left a bit disenchanted, therefore, as a side project for me to show my cairo/gtk prowess(:p), I am also going to start work on a gtk theme that takes advantage of the composited environment. Now, please bear in mind that a theme has to be used all around your desktop, and I am guessing that any theme that uses extensive cairo drawing + transparency is going to have an effect on your cpu, but I still think its worth it as a proof-of-concept.



Regarding the actual theme, I will have a separate post on that later, but until then, click here to see some of my mock ups (going from pretty standard to extreme). If anyone has ideas, please let me know in the usual ways.

That's enough for now! I have SO many other ideas for desktop linux its not even funny, but I will document them as/and when I have time to implement them. Some are desktop-orientated, but don't worry, most revolve around eye-candy like this:



Anyway, I better get back to Awn...still a lot of features/fixes to write ;).

Please Ignore

Pressing 'Ctrl+S' will publish the post, after 4 years, I still have the windows habit :(.

Tuesday, 6 February 2007

Some updates

People who have been having problems with Awn regarding artifacts appearing on the icons, this has been fixed in SVN. Its an wonder what properly clearing the cairo_context_t will make ;).

Also, I have been working on improving the D&D code, and you can now drop URI's to a launcher and it will start the program with that file. It works quite well around the desktop, i.e. dragging a movie file to the Totem launcher starts Totem!

Also, this works for multiple selections aswell, i.e. high-lighting more than one picture in Nautilus, and dragging it to the GThumb launcher will start GThumb with all the selected files displayed!

You can continue to D&D to a launcher even after it has become associated with another window!

Please bear in mind that not all of the desktop works the same ie. dragging the URL from Firefox to the Epiphany launcher does nothing, however it works if you drag a URL from Epiphany to Firefox! Its up to the application as to how well-behaved it is in a D&D situation. However, I am working to support more targets if I can.

Also, please remember that the launched application is still under the control of Awn, therefore if Awn dies, the application goes with it! If anyone can shed some light how I can launch an application in a way that it survives if Awn closes, I would be most grateful!

I have changed the gconf code , so you should not be getting anymore segfaults after the make install. Some people have commented that it is hard to keep track of SVN changes, so whenever there is a new feature implemented, I am going to add it into the README file, so its easier everyone to know whats new. (I also update the Changelog file, but I can be more descriptive in the README).

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!

Friday, 2 February 2007

New code

Since changing to GObject based code for the task-manager (what keeps track of open windows) & task (a representation of on window on the bar), I can say that Awn feels much more resilient! Especially when opening and closing lots of windows. I am experimenting with the idea of the bar knowing when you have opened lots of windows, and therefore skipping the effects, to make it feel slightly faster.

Each 'Task' is actually a GtkDrawingArea, which is then made transparent, and the Task's icon is drawn onto it, using with necessary padding for the effects. Speaking of effects, moving to Cairo for the rendering is allowing much more freedom regarding what effects you can do. I will be demoing some ideas later on, but for now:

This is the current open and close effects, the idea being that the icon 'pops' in at the bottom of the screen, and then 'evaporates' away when you close the window.

P.S. Excuse the jerkiness and the redrawing you can see of Gtk, lets just say I am not developing on the fastest of machines, just be sure that it is not as jerky in real life!

Thursday, 1 February 2007

Sweet mother of all that is holy!

756 Diggs and counting for Awn!
I now feel I should have tried harder with the website ;)

Anyway, I feel this is a good a time as any to clear some things up:

1) I don't work for Google (I wish I did :), but do use their excellent project-hosting services.

2) This differs from previous docks in that it is firstly a task switcher, just like the task list in GNOME, and therefore it will keep track of all open windows on the desktop.

3) Although this look like the MAC OS X dock, it does not try to imitate it. Awn is fully configurable, it has planned features not available elsewhere, such as the ability for applications to control their icons through dbus, and allow progress indicators on the icon.

4) Launching applications from Awn and tracking the application windows (like 'The Dock') is planned, and is being implemented as we speak.

5) The dependency on a patched libwnck is not required in svn.

6) I you are getting a segfault, this is a problem with schema installation, and can be overcome by entering the 'data' directory (after make install), and executing:
$  gconftool-2 --install-schema-file=avant-window-navigator.schemas
Also, if you are using svn, be sure to try the new task-manger launching Awn like this:
$ avant-window-navigator -x