Hi all,

On Mon, 07 Sep 2009 17:08:31 +0200 (CEST) Julien Danjou <jul...@danjou.info> 
wrote:
> There's probably a lead to follow in what you say about sublayouts.
> Making 2 clients tabbed is just arranging them with suit.max (or
> something else, why not?) were the area is not the full screen but
> probably the coordinates of ones of the 2 clients.

I think the similarity of suit.max layout to how the tabs behave might be a bit 
misleading here...I don't see why anyone would want to use different layouts on 
clients embedded in a wibox and change them dynamically. Sounds too complex to 
be useful to me.

> Another plan (let's call it Plan D) I forgot to mention is to remove
> titlebar from C code and let Lua handle it with wiboxes following
> clients. But that's also has drawbacks IMHO, like getting client
> width/height does not count the titlebar following it.

Yes, seems to me that since the titlebar wouldn't be part of the client's 
geometry, the titlebars would often end up offscreen or covering something they 
shouldn't (as it happens now sometimes too).

On Mon, 07 Sep 2009 15:31:49 +0200 (CEST) Julien Danjou <jul...@danjou.info> 
wrote:
> Plan A: client widget
> ---------------------
> The idea of this implementation is to have a "widget" that would draw a
> client. We already have a thing that looks like that: systray!
> Except that this time you'll have a widget that "draws" (move at its
> place) the client, so the client is inside the wibox.
> 
>  Implementation:
>   Each client has a widget_t * pointing to NULL or the wibox it is
>   attached to. Each client-widget has a client_t * pointing to NULL or
>   the wibox it is attached to. A client cannot be attached to more than
>   one widget_t * and a widget_t * cannot have more than one client.
> 
>  Problems:
>   Well, nothing disallow in awesome to have a widget on 3 wibox_t. In
>   that case, that's not possible, so we need to block that. It's the
>   same case with systray, but I'm not even sure systray uniqness is
>   correctly handled.
>   Resizing a client would resize the whole wibox? or not? don't know,
>   but that complicates the thing a little.

I really like this plan :) It is by far the most flexible one, it is also 
described in #FS542 and Cedric mentioned it in one of his emails dealing with 
tabbing. It has great flexibility in that you can use it for tabbing, draw 
fancy stuff around your windows and whatnot (not that you would want to, but it 
would be possible;). Another great thing you could do with it is embedding 
other windows, like xclock or gkrellm in your panel, the way fvwm does it.

Ok, so just to make sure we understand each other I'll use my own words to sum 
up my view on the idea:

Make a widget that will contain the contents of a client window. Then, to make 
use of it, there must be an option to make wiboxes act as normal (client) 
windows. That way, you can make a wibox, put a client widget, a titlebar or 
anything else inside and move the whole thing around, etc. Obviously, this 
needs the layouts to be working, in this case, the client widget would have the 
"flex" layout, while the titlebar would have "toptobottom" (I'm not sure I 
completely understand the layouts as I haven't found much info about them, but 
I think I got the idea, hopefully :).

Regarding the resizing, well the functionality is given by what you expect of 
it...of course you need to be able to resize the wibox :) I don't wanna go into 
details here cos I only have a faint idea of it now anyway, but I think it 
should be possible to work it out along the way so that it won't be too 
complicated, yet flexible :D

Looking forward to comments :) I'd like to give it a go and try to implement 
the client widget, as it is described in #FS542 or in any way that's agreed 
here... Although it will be quite a challenge for me, if anyone really feels 
like doing it fast, go ahead :D

Cheers!

lukash

-- 
To unsubscribe, send mail to awesome-devel-unsubscr...@naquadah.org.

Reply via email to