[haiku-development] Deskbar Enhancements

  • From: John Scipione <jscipione@xxxxxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Mon, 27 Jun 2011 19:04:17 -0400

Well, alpha3 is out and not a lot is going on so... this is gonna be pretty
long but I wanted to post something on this topic. stippi recently posted on
his blog an article [1] which I find interesting because it has been the
focus of some of my work updating the Haiku Deskbar and I wanted to make
some comments about it here.

Let me first start off by saying that a Deskbar rewrite is NOT necessary or
even desirable; the current Deskbar works great and it should be tweaked to
add some nice features on top of what is already there. Now the comments:

> FTA: "I hate how I have to decide which window I want when switching to a
running application in Windows 7, in case that application has multiple
windows open... I just want the last active one, damn it!"

I agree with this point and have expressed it in comments in [2]. Make left
click bring up the last active window. Each subsequent click should switch
to the next window (including switching workspaces as necessary.)

> FTA: "I like how in Windows 7, the taskbar holds just big icons. That
leaves a lot of room."

I'd like to bring up [3] and [4] as solutions to this problem. [3] is
provides an example of what Deskbar might look like with bigger icons in
vertical expando mode. I like the idea of moving the Application name label
underneath the icon as the icon size increases. See [4] for what I mean
about increasing icon sizes. In horizontal mode I have experimented with the
idea of removing the icon labels altogether making Deskbar look a little bit
like the Windows 7 Taskbar. I'd further like to add tooltips of the app name
on mouse hover and a bunch of other tweaks but I haven't gotten around to
it.

> FTA: "I like the "Pin this task to the taskbar" feature that is also
present in the Mac OS X Dock. I've already commented in a ticket how I would
love to integrate LaunchBox into Deskbar via such a feature, resolving how
to easily make applications launch at boot time along the way."

No comment other than I love the idea. Deskbar could hold not just running
apps but also pinned apps integrating the best part of Launchbar right into
Deskbar.

> FTA: "The Deskbar's default location does not encourage full screen
application windows... I would extend the BScreen and BWindow class such
that it is easy to go into full screen mode programmatically, while not
covering up the deskbar. Obviously full screen video playback could still
take over the whole screen, but I want something intermediate that embraces
full screen windows more while still allowing the application and window
management features of the Deskbar to be readily accessible."

My take on how to solve this problem is to make full screen apps really full
screen, i.e. make full screen applications take 100% of the screen including
the area taken up by Deskbar. So how do you access Deskbar? That is where
[5] comes in. The patch on that ticket adds an autohide feature to Deskbar.
It basically works like autohide on other popular OSs. When an app goes full
screen the Deskbar gets hidden. You can flick your mouse to the edge (or
corner, depending on where Deskbar is) of the screen to access it. I would
extend BScreen and BWindow to allow the current zoom button to bring an app
full screen in the way that I describe here. This would be on an app-by-app
basis. So if you want zoom in your app continue to work like it does now,
you can have it, if you want "real" full screen, you can have that too. I
however would not introduce a new button for full screen. I think that would
be confusing for, well everybody, and would bely simplicity for little gain.

> FTA: "My first change would be to make Deskbar run along the top or bottom
of the screen, top probably being my preferred default location, as I find
it easier to flick the mouse upwards."

I really don't see this as necessary. You can run Deskbar any way you'd
like. If you like top of the screen you can have it. The functionality is
already there and doesn't need changing. A lot of people in the comments
also expressed that they like vertical mode. I like vertical mode. Vertical
mode is great, long live vertical mode, and horizontal mode too!

> FTA: "Then I would change the display of running apps to just their icons.
Clicking an application icon would always do the same thing, which is to
bring that application to front and switch to the workspace of its last
active window."

Again I have experimented with this idea in [4]. This only really works with
icons larger than 16x16 though or the target is too small to hit easily. I
would make this configurable though. Meaning, you can have Deskbar with
small icons+labels (like now) if you want or big icons w/o labels if you
want that too. Then again, once you get too many applications open/pinned at
once the labels have to disappear to make room, at least in horizontal mode.
Otherwise you get meaningless text surrounded by "..."s which isn't very
helpful.

> FTA: "Both these click targets would get a context menu. The application
icon could offer options to permanently install the icon into the Deskbar,
regardless of whether[sic] the application is running, or to launch the
application at boot time. There could be an interface for applications via
the BDeskBar class to install custom services into that menu (perhaps simply
named BMessage commands to be send to some BMessenger). The window list icon
would get a context menu with common window operations like "Hide all",
"Close all", "Bring all to this workspace" and so on."

No comment other than I like the idea of expanding the each applications
contextual menu in Deskbar with more choices.

FTA: "I would also like to integrate the Workspaces applet into the Deskbar,
optionally enlarging when the mouse is over it. That would further emphasise
the full integration of workspaces on Haiku."

+1

John Scipione


[1] http://haiku-os.org/blog/stippi/2011-04-07_deskbar_rewrite

[2] http://dev.haiku-os.org/ticket/6296 is about changing the functionality
of left click an application on Deskbar to bring up the most recent
application window instead of bringing up a contextual menu. I have already
expressed my opinion on this subject in the comments of the bug report.

[3] http://img134.imageshack.us/img134/6393/bedesktopdr8.gif is a screenshot
of BeOS DR8 with larger Deskbar icons that someone posted in the comments on
stippi's blog post [1]. I like the concept of big icons with the label
underneath in vertical mode.

[4] https://dev.haiku-os.org/ticket/7132 is my continuing quest to bring
larger configurable icons to Deskbar.

[5] https://dev.haiku-os.org/ticket/4880 is an enhancement to bring an
autohide feature to Deskbar. I had nothing to do with this code, I am just a
fan.

Other related posts: