Fwd: Adding "group/split" button to the decoration

Matthew Woehlke mw_triad at users.sourceforge.net
Wed Jul 8 21:22:07 CEST 2009


Diego Moya wrote:
> 2009/7/8 Matthew Woehlke wrote:
>> What about (in addition to above) a button to wrap a window in a new
>> container? It could be a dropdown for container type and also include
>> option to interactively create container.
> 
> Two questions to assess quality:
> 
> - How many clicks to use?

- One or two to select container type (just like any menu, you can 
click+drag, or click twice)
- If using interactive group, one per window, plus one (or a keystroke) 
to indicate you are done

> - Does the user have to remember the current "state"? I.e. after
> pressing the first button, if I do anything else than press the second
> button, operation is canceled. AND there's no visual clue of this.

No. You'd be in a "pick windows" mode that would be obviously different 
from 'normal working' mode. (With composite, probably something like 
expose mode.) If you cancel, you cancel and have to start over, there 
wouldn't be any "unexpected behavior".

>> I'm not sure about this, it makes sense, but how do you know when to
>> 'forget' the virtual group? Otherwise I think there is a very large risk
>> for confusion if time passes between ungroup and regroup.
> 
> Just color-code windows pertaining to the same group, or add some
> other visual reminder (same icon).

Hmm... maybe. Though color coding is difficult (a11y problems at 
minimum, possibly u7y problems as well). When do you forget a "virtual 
group"?

> I was thinking a "Grid" icon:
> 
> ------------
> |       |  |
> |       |  |
> |       |--|
> |       |  |
> ------------
> 
> More visual, less abstract

...much harder to fit in ~8x8 pixels? ;-)

> But your Wrap/unwrap icon has the advantage to work for all kind of
> containers.

True.

> Other advantages & disadvantages?

Well it's deco-specific anyway, so not worth too much discussion :-). 
Not at this point, anyway.

> 2009/7/8 Maciej Pilichowski:
>> On Wednesday 08 July 2009 00:26:03 Matthew Woehlke wrote:
>>> Or would this be a button on a
>>> container to absorb a window (with second click)?
>> Exactly.
> 
> - Does the user have to remember the current "state"?  (Clicking
> anywhere than on the second window cancels the operation, and there's
> not a visual clue of this mode)

There should be some obvious visual indicator of what is happening.

> - How many clicks to use?

Two: click button, click window to absorb. (Hmm, but now I wonder how 
this is better than just drag-and-drop?)

> Ok, forget about virtual desktops. Let's refine current approach:
> 
> -1st window. Press "groupize" icon. It creates a grid container about
> 1st window, with a "hollow application" as a remainder of grid
> creation an instructions on how to add a second one.
> - 2nd window. Press "groupize" icon, app gets added to the hollow
> application hole.

How does the WM know I didn't want to start creating a second group?

The previous proposal was one action to say "I am going to make a 
container", one click per window, one action to say "okay, I am done for 
now". I don't see a problem doing this in a way you have an initial 
window. That's only one more action than your suggestion, without the 
ambiguity. Would that be satisfactory?

> - 3rd, 4th, 8th windows... added to the container with one click each.

You know you can also do this with drag-and-drop... :-)

> Their decorations all get the same color.
> - To split one window from the container, press its

Hmm, "tear off" button... don't think that came up yet, think I like it...

> - To split all windows in the container, press the container's "split"
> button. Windows get free, but remain color-coded.
> - To group all 8 windows again, press any of their "group" icons.
> - To destroy the container in a permanent way, press its "close"
> button. Windows get free and lose their color coding.

Hmm, so you are thinking something like... hmm, how to describe it, a 
container type where the children float above it. Actually... I think 
this would work best as an actual container type. Sort of FAI but not 
keeping the windows inside it. Still not sure it's a good idea :-), but...

(That would have the advantage that everything still shows up e.g. in 
task switchers as grouped, still behaves as grouped, etc., which seems 
to be what you want. But can be moved around as if not grouped.)

...which makes me realize, I guess 'move to desktop' removes windows 
from containers. (Well... which it would, because you're moving the 
window to a different parent, since a desktop is just a parent. The 
alternative is to disallow it for windows in containers.)

>> What about "virtual groups", do you think that is a good idea or not? I
>> lean toward "not", seems like it has potential to be confusing. (Well,
>> unless implemented as 'undo WM action' ;-).)
> 
> I think it's a good idea because it allows you to split-regroup all
> windows with a single click, just like a maximize-restore operation.
> This is useful to switch focus between just one app and all apps in
> the group.

Hmm. Okay, don't know if we thought about maximize/minimize before. Not 
sure how to manage it for minimize in GAI, but for maximize I think it 
makes sense to make it sort of ZUI; maximize child makes it fill the 
containers (maybe with option that it should maximize container also, if 
not), restore obviously undoes that.

So... my question is, what do I get from splitting that I don't get from 
just maximize? (Or maybe full-screen?) If I want to focus on one app, I 
can just maximize/full-screen. If I want to rearrange, why do I need to 
break container to do that? (Let's assume it isn't because rearranging 
container is "too hard" in-place; doing it for that reason would be 
treating symptom without addressing problem.) Especially what benefit is 
there vs. making container FAI?

-- 
Matthew
Please do not quote my e-mail address unobfuscated in message bodies.
-- 
.sig omitted due to budget cuts.



More information about the Kde-usability-devel mailing list