WM: grouping applications (TAI)

Matthew Woehlke mw_triad at users.sourceforge.net
Mon Mar 16 22:39:07 CET 2009


Maciej Pilichowski wrote:
> [some stuff]

First off, my list of keys:
wm-switch-window-{up,down,left,right}
wm-switch-window-{previous,next}
wm-switch-window-{previous,next}-historic
wm-switch-window-{previous,next}-spatial
wm-switch-window-desktop-{previous,next}
wm-switch-window-global-{previous,next}

(The ones marked "global" switch *all* windows, marked "desktop" switch 
only on current desktop. Others are in-container only, what you call 
"local". wm-switch-window-{previous,next} is "smart" switching; the 
desktop/global scope is always historic, and in floating, spatial 
actually does historic.)

Note there is no 'parent, child, cancel' etc as these are switcher-only; 
I'm ignoring switcher-only for the moment (also I think we are mostly or 
wholly in agreement on those).

I still think holding mod (we've been assuming 'win') should start the 
switcher; doing otherwise I think is a pretty radical change from 
current behavior, which is you always get the switcher.

Once in the switcher, you should /always/ be able to go anywhere (I 
would say this includes any desktop, as "root" would be presented as 
having siblings for each desktop).

I would generally say directional switch should default to wrapping (I 
think you agreed later), okay being an option, and spatial previous/next 
(and all non-spatial switching) should /always/ wrap. (You can't leave a 
container with container-scope keys, though, except by going to the 
parent in switcher.)

Unfortunately, you /can/ get stuck in a sub-container, which I think is 
actually another reason why everything should use a switcher; you won't 
get "stuck" until you are done switching, at which point you'll stay in 
the sub-container until you use switcher to get out.

> When you call switcher you cannot edit files, copy files, launch new 
> programs, right? So extra mod in this mode is not needed, switcher 
> could behave just like normal program.

Right, switcher is X-modal until dismissed, like screensaver or certain 
current KWin effects. Only use of mod in the switcher is:
- you are holding it because you used mod+key to get to switcher*
- you are masochistic and set the in-switcher bindings that way ;-)

(* in which case, the switcher goes away (confirm, unless you use 
cancel) when you let go of mod)

> [stuff about spatial]
> Ok, if any problems occur -- I will try to help, ok? I think the only 
> tricky part is algorithm that picks up the target window.

Basically, yes. More specifically, making it both technically reasonable 
and something that doesn't confuse the user. (I'm more worried about the 
latter :-).)

> [can a container be directly active?]
> Actually, after rethinking this would be a bad idea, because after 
> making layout user would always have to remember what is what. And 
> besides, I found a "proof" of failing -- is Konqueror with TDI a 
> container or not in sense, should be activated in a way described 
> above or not?

If you assume a container cannot be empty, does it matter? At worst you 
forget something has a container and add a window inside a deeper 
container than expected. (And I think input focus would be confusing if 
you can give input focus to what is effectively a titlebar ;-). And 
besides, what would the mouse activate in that case?)

I should mention, one thing I want - actually, is needed, I think - is 
app tells WM to open new window in new {tabbed,tiled} container beside 
some existing window. So from empty desktop, you start konq, you now 
have one window in root. Then you say 'I want another tab', konq asks WM 
to make new window in tabbed container with existing window, now you 
have root containing tab container containing 2x konq. If konq was 
already in e.g. tiled container, you'd get the new konq in tiled 
instead. (This also means you can click links and have them open other 
apps in tabs w/o having to play 'embed the app' :-).)

> Wait, wait -- it cannot be alt-tab because this is too well know for 
> switching first-class windows.

What do you want alt-tab to do? I am assuming it is 
wm-switch-window-{desktop,global}-{previous,next}, depending on user 
option. (Yes I have a thought about having a checkbox to switch; 
basically, until you change the keys, it switches the defaults around. 
Once you change the keys, the checkbox is disabled with a note to change 
the keys directly.)

>> That reminds me... win-shift-left: exchange this window with window
>> to the left :-). And similar for other shortcuts. Doesn't wrap.
> 
> And this shortcut would be of global scope?

No, no, you can't use keyboard like this to push a window outside a 
container :-).

> [on 'should switcher always start']
> Btw. this is already happening today. I switch tabs in Konq. by 
> ctrl+tab and I don't see any switcher.

I think Firefox is already trying to change this :-). And I think it is 
a good thing; personally I'd prefer the preview of what I am switching 
to, especially with many tabs.

-- 
Matthew
Please do not quote my e-mail address unobfuscated in message bodies.
-- 
"I don't question your existence -- God" (seen on a church billboard)



More information about the Kde-usability-devel mailing list