A GUI for Genode

Paul Dufresne dufresnep at ...9...
Sun Jan 27 14:35:46 CET 2013


I realize I am becoming a bit off topic with this window manager idea.
Complain if you think I am too much.

Just adding some late thoughts on this.

First, previous comment was making corners to accept just one
application, by the fact that once you added a program in a corner,
the opening icon was changed to a closing one. This is really a
mistake because one of my main usage pattern expected is to use just
center area plus many applications open in one corner, only one being
visible at a time. So my first change is to say that the opening icon
is always visible in a corner. I wish also to allow opening in the
same way many programs at the center (full-screen) area, only the last
being visible. That is why I wish to make the opening icon permanent
on the floating 'control center'. This allows the usage pattern of
just using the center slot, making it similar to one of my previous
'full-page' only one window open at a time.

One of the rational of the design is to make it easy to change how
programs are 'tiled' on screen with minimal keybord shortcuts:
Ctrl-PageUp to rotate programs counterclockwise (probably 2 to 8)
among the visual slots (corners).
Ctrl-PageDown to rotate in the other direction: clockwise.

I have seen realized that sometime, the corner will cover a usefull
spot of the center (full-screen) program.
For this, my first idea, that I am keeping is to have a button on the
control center to hide/show all corners.
This button would alsow hide/show opening/closing icons too.
If floating windows is kept in the design, on other button to
hide/show all floating windows (except control center) would be added
too.

A fancy design, could allow each corner to hide/show individually. I
came with the 5 on a dice toggle buttons for this:
O     O
   O
O     O

Each corner would hide/show the corresponding corner.
The center button would hide/show all the corner.
There could also be small buttons between the center button and
corners buttons, to allows flipping the program in the corner with the
one in the center.

Now, an other solution to a corner hiding important window on the
center app, is to allow to rotate not only the programs but the corner
themselves.
I guess I would not only rotate active corners, but all the corners.
So now we would add to buttons in the control center:
RCL: Rotate Corners Counterclockwise (Left)
RCR: Rotate Corners Clockwise (Right)

It has also come to my mind that maybe corners could not be the best
place to put my slots.
Maybe, Up, Right, Down, Left would have been less used on the center
app than it's corners.
So at first, I thought about changing the CornerWindowManager to a
CrossWindowManager.
Actually, I guess it is a question of taste.

So I suggest that:
Rotating Clockwise/CounterClockwise corners of a CornerWindow would
make it a CrossWindow.
Rotating Clockwise/CounterClockwise Up/Right/Down/Left slots of a
CrossWindow would make it a CornerWindow.

Basically, the slots would looks like
1 2 3
4 5 6
7 8 9
in the initial position.

Rotating Slots Right (Clockwise) on initial position leads to:
4 1 2
7 5 3
8 9 6

Rotating Slots Left (Counterclockwise) on *initial* position leads to:
2 3 6
1 5 9
4 7 8

It is important to note that each slots is not just one program, but a
stack of programs (latest open on the top, which is the visible one).
So that when rotating clockwise *Programs*, if you examine one of the slots:
-The program on the bottow of the stack goes to top of the 'next' slot
-All programs goes down one level in the stack
-The top (visible) level of the stack is filled with 'previous' slot

When rotating counterclockwise programs, one one slot:
-The top level program is moved to the bottom of an other slot
-All programs goes up one level in the stack
-The bottom program is filled with an other slot top program

Frankly, I am not too sure how this design would feel.
But sure I'd like to be able to test it!




More information about the users mailing list