trac

Gnome Dock

Introduction

Gnome dock is an evolution of cairo dock. MacSlow — the primary developer of cairo dock — created this project as a hack to test some cairo rendering stuff while researching his AMAZING desktop project lowfat. I urge anyone reading this to donate money to him for his work as he is an excellent developer with some revolutionary ideas I can’t even describe his brilliance.

The dock, while not a new idea, originating in CDE and evolving into many very different forms including the gnome panel has had new design ideas thrown at it from various directions. When Apple created the universal dock now well known from Mac OS X the evolution had reached a point of design excellence which has been replicated in many different places and in many different ways, with primitive recreations in gDesklets and even google creating homage to apple briefly, gnome has been asking for something like the universal dock from apple.

So what is the universal dock?

The universal dock is a place to store your most common application launchers, see what applications are running and minimize applications to. So basically becomming a replacement to launchers on your panel and your window list/task switcher. Apple has created something brilliant, but in some ways just hasn’t taken the idea as far as it can be, or addressed some concerns which may in some cases have a good point.

More importantly hows does this relate to gnome?

Well as open source developers the currency is ideas and the objectives are fluid. With a development model which isn’t constrained by corporate nonsense some great things appear as if from nowhere. Where can the gnome dock go? Well quite simply we have absolutely no idea just yet, or atleast we have ideas but they’re still brewing in the barrel and probably won’t be ready for some time.

It is called Gnome Dock, does this mean that this project is Gnome-only?

Awaiting answer

Goals

Primary goals

  • Application launchers
  • Running task identification
  • Auto hide
  • Launch animations
  • Legacy PNG support (scowl, grimace, hatred growing, its still around it maybe last year but we need to support these pesky files)
  • A notification area – this should be a primary goal, since without one gnome-dock can’t be a complete panel replacement. The notification area these days has things like network-manager, power-manager, GAIM and mail notification, etc. It’s a big deal.

Secondary goals

  • Gimmie, Gimmie is brilliant, but has some pretty horrid colours (sorry, I call a spade a spade) and doesn’t look as lovely as it could. Gimmie does some nice things, keeps your contacts handy, documents and applications and does other various coolness under the hood. This is a great piece of desktop innovation and needs some cairo love.
  • Drag and drop and re-ordering support from the panel/applications menu/gaim?/nautilus with interactive placement creating space for an icon to be dropped.
  • Dock themes & preferences, inherit gnome icon theme or override gnome icon theme + themable background and foreground, magification amount/initial icon size.

Various ideas

  • Animated background
  • Special effects (for instance a poof of NVidia fog when removing a launcher)
  • Minimize applications with compiz style live preview
  • top/bottom/left/right & corner gravity (auto-hide to corners)
  • An applet framework or even better panel applet support. For instance universal eject/disconnect/trash applet, or notification area.
  • Notification animations, like the flashing task button in the window list but more, erm. bling!
  • A Trash icon that swells as it fills with files.
  • background for icon labels so they can be read on ‘busy’ wallpapers. Should you default gtk panel colour as background color.

Getting Gnome Dock

Checking Out

The project lives in a subversion repository. You can check-out the latest version using:

svn co http://www.gnome-dock.org/svn/

You can also use the source browser to have a quick look around the repository.

Build and Run

Gnome Dock builds correctly on Ubuntu Dapper. To build simply execute make in the source directory.

To run Gnome Dock execute the following

./cairo-dock 

If performance is terrible or Gnome Dock crashes try experimenting by adding and removing the --no-glitz and --no-buffering command line arguments. You can also play around with --no-text and --no-background to improve redraw speed. Furthermore you can move the dock-window around with MMB-drag (that’s middle-mouse-button-drag), quit it with just pressing q (just hit the dock with MMB to ensure it has the focus) and there are even some apps added (hardcoded at the moment) so it actually can do something now.

To see how fast Gnome Dock can go without any throttleing (this will hammer your CPU of course) try running the applicaion with the --benchmark option.

Please feel free to edit this page, redesign it, post new ideas, or divide things up a bit… currently there is only one page. This page is _THE_ page, visitors are encouraged to deface it as they see fit 😉 well within reason…

== Only some ideas going by my brain. Hope you find some of them of interest. ==


Hi, my name is Daniel Alonso, live from Brazil. Tonight I was reading about Gnome 3.0 and Project Topaz. The last one, if I understand it well, is aimed to encompass the user experience inside the desktop for the next major release of Gnome. And then I thought to myself, why should we use Gnome-Dock only as a bling imitation of OS-X dock instead of evolve the idea along the rails of Topaz?

Then, I thought that Gnome-Dock should not be application launcher oriented, as in the present incarnation, but Document or Contact oriented. Not only that. Gnome-Dock should be data agnostic. I mean it should be a mere presentation layer between some icon feeders I would explain later and the user. The interaction between Gnome-Dock and these desktop helpers would be by using dbus. The interaction between Gnome-Dock and the user would be by using the pointer, but indeed by using the new paradigm that Mirco is proposing with his lowfat project. More of this later.

Let’s talk about these icon-feeders:

1. One icon-feeder would make available to the user the different kind of documents the user can work on. This way, it could ask Gnome-Dock to create a group of icons under the category of “Documents”. It could contact the beagle daemon and gather info about the last or more used types of documents that the user uses to work, and then ask Gnome-Dock to present the icons of the group ordered based on this info.

2. One another icon-feeder would make available to the user his/her personal contacts gathering info from eds. Then it could gather from beagle the last or most contacted contacts and the preferred way of comunicating with each one. The icon-feeder would then ask to Gnome-Dock to add a new group “Contacts” and present the contacts in an order based on the info from beagle.

3. Another icon-feeder would make available through Gnome-Dock a group of open documents, not applications.

4. Another icon-feeder, for example the distribution installer, would it be yast or synaptic, would make available through Gnome-Dock the last installed apps.

This is all about icon-feeder and Gnome-Dock interaction, I can think of tonight. More about this and about user and Gnome-Dock interaction ideas later, because it’s now very late here in Brazil and I’m so tired!!!

Hope you find these thoughts of some interest. Then I could even volunteer for working in the dbus bindings for Gnome-Dock, so I learn more about the Gnome platform, and perhaps even try to code a sample feeder using beagle, while you keep it working in the visual layer.

Feel free to comment, it’s your wiki anyway 😉

Sidebar