Combined KDE Title bars and menu bars - an implementation

Tuesday 25th August 2009

There has a been a few suggestions (and one of the highest ratest KDE brainstorm ideas) of merging the window decorations and the window title into a single bar. The current system that we are used to has a lot of unnecessary white space particularly vertical pixels which is a problem for tiny factor notebooks.

Below is a mockup from someone on the KDE forums

The proplem that exists is that the window decorations are drawn by the window manager KWin, wheras the menu bar is drawn by the owning application.

The proposed solution:

  • Application exports the menu to kwin via DBUS
  • Kwin renders the menu
  • When the user clicks a menu, it sends a DBUS call back to the application
  • The application then renders the drop down menu in the appropriate position on screen

This is clearly very messy, and sucks. A lot.

The alternative

There is another approach, which I've not seen anyone else discuss:

  • The application draws both the menu and window decorations itself
  • Application forwards movement of title to window manager

To me this seems a much cleaner solution, the idea of window managers needing to draw the coloured bar at the top of an application seems to be a very legacy decision and there doesn't seem to be any reason for it. It's a bit controversial, but I think it's a step in a good direction. It even allows the user to use a different window manager and keep the combined window titles.

My code

Anyway, I drafted up up a bodge to one of the KDE tutorial windows to show the idea in action. It allows people to see if combined menu and toolbars is good from a usability point of view and to try to overcome some of the UI problems it poses (such as where to now put the window title!) however the idea gets implemented in the future, if people decide it is a good idea.

My implementation has a few issues:

  • It looks very fugly, though there's no reason why it wouldn't look identical to the existing oxygen theme if I spent some time on it and shared the same rendering code
  • There are no window frames.. because I forgot about them. This is actually more of an issue.
  • I can't decide where to put the window title, this is more of an issue with the concept of combining the two bars rather than an implementation issue.
  • There is also talk of people wanting tabs combined with the window title..we can't put all 3 there!

A real version of this technique would involve changing KMainWindow so all applications inherit this ability without further code changes.

It also would only take a minor modification and we can copy a feature I've seen whilst running spotify under Wine of allowing the user to move a window by dragging from any whitespace in the toolbar.

Without further ado. Here is a screenshot, and a link to the source. No modifications to KWin are needed!

Source tarball

Comments

Tom

Nice!

test

test

flying sheep

i would love to see this implemented. maybe a modular windeco could be possible: no decoration (program does its own) standard decoration program offers menubar program offers jumplists program offers both menubar and jumplists the window decorator renders the titlebar and can be configured how to show the menubar: on top of the screen, traditional, dropdown-menu or beneath the title.

CadaSwearamma

I just discovered the website who discuss about Several home based business reviews If you want to know more here it is home based business opportunity

alergetruro

nice answers i like it

TSwain

Hey very nice blog!!....I'm an instant fan, I have bookmarked you and I'll be checking back on a regular....See ya

Robert Shumake

Hey very nice blog!!....I'm an instant fan, I have bookmarked you and I'll be checking back on a regular....See ya -Robert Shumake

TSwain

Your blog is so informative … ..I just bookmarked you....keep up the good work!!!! Hey, I found your blog in a new directory of blogs. I dont know how your blog came up, must have been a typo, anyway cool blog, I bookmarked you. :)

ZooriWoodsWam

NZBsRus.com Dismiss Crawling Downloads Using NZB Files You Can Instantly Find High Quality Movies, Console Games, MP3 Singles, Applications and Download Them @ Accelerated Rates Usenet Search

WP Themes

Genial fill someone in on and this enter helped me alot in my college assignement. Thanks you on your information.

WP Themes

Amiable dispatch and this post helped me alot in my college assignement. Thanks you for your information.

Jstackhouse

Hey very nice blog!!....I'm an instant fan, I have bookmarked you and I'll be checking back on a regular....See ya :)

gucci shoes

I enjoy your site and I have bookmarked it, Kind Salutations. Bernice Johanson Gucci Shoes Gucci Sandals

Pealiadia

Making money on the internet is easy in the underground world of blackhat internet marketing, Don’t feel silly if you haven’t heard of it before. Blackhat marketing uses not-so-popular or not-so-known ways to generate an income online.

ItergeWristiP

Infatuation casinos? support this latest casino smack and record online casino games like slots, blackjack, roulette, baccarat and more at www.realcazinoz.com . you can also discontinuation our up to obsolete casino make something at http://freecasinogames2010.webs.com and bring home the bacon out over to past law folding shin-plasters ! another lone casino spiele progressing is www.ttittancasino.com , in the push of german gamblers, sprig in freed online casino bonus.

pokerice

I read this forum since 2 weeks and now i have decided to register to share with you my ideas. :)

illifyWepinly

Hi Guys,Just registered here and looking to have a great time. I am looking for the best cash gifting program out there in the internet. Can you guide me? Below are some sites that I found and I am not sure how much they are going to help me. cash gifting join cash gifting best cash gifting program


Add a comment

I'm Listening To

The Holloways - What's The Difference?

1 days ago

Recent Changes

  • Page about me
  • Added comments on blog pages
  • Input form on comments
  • Added kdaemonmanager page
  • Draft of kdaemonmanager homepage