3d(6)

NAME
3d - 3D cube console

SYNOPSIS
3d [-xxx,yyy] [program1-6]

DESCRIPTION
3d is a LibGGI "middleend", that allows to run up to 6 LibGGI applications on one screen, mapped to the six sides of a cube.

The programs program1 to program6 are invoked and mapped to the cube sides after the 3d program itself has started. You can interleave the program names with size parameters of the form -xxx,yyy that will ask the programs that come later on the commandline to start up in that size. The default size is half that of the visual 3d is running on.

You can add more programs while 3d is running by setting some environment variables and starting them :

GGI_DISPLAY=display-memory:-input:keyfile:1048576:[0-5]:/dev/null

The [0-5] selects on which face of the cube you want the application to run.

You should as well set GGI_DEFMODE to a mode with the same color organization like the one 3d itself is running on, and the mode, 3d believes it should run in, as specified with a size parameter.

Once 3d is invoked, the program will display the cube with the six other applications mapped to it. But you will probably only see application number 1 (and maybe 3 from behind), as this is the way the cube is oriented. The keyboard is redirected to the application that has the blinking border.

FUNCTION KEYS

#   is the "escape" key. After pressing it, the blinking border should turn red. All further input now goes to the 3d program and is used to manipulate the appearance and behaviour of the cube:

#   A double-escape is used to send the escape-char '#' itself.

<Enter>
    or any unknown keypress will end the escape mode. The border will turn white again and input will go to the bordered application.

<Left>/<Right>/<Up>/<Down>/<Home>/<End>
    will make the cube turn along the respective axis.

<PgUp>/<PgDn>
    will make the cube enlarge/shrink.

s/S will stop any cube motion.

c/C will center the currently active face (the one with the border) in a smooth motion and when this is finished, it will stop all motion. This is a toggle, that gets turned off automatically when the final position is reached. That is, you can disable it on its way, which will leave the cube spinning in the current direction.

b/B will toggle backface culling. In that case, the three "back" sides of the cube are not drawn. Looks much less nice, but is faster. Use on slow systems.

a/A will toggle autoactivation. If this is on, the blinking frame will automatically move to the face, that is facing the viewer most directly, i.e. the "front" face. This can be quite irritating, especially, if the cube is moving fast. But it's cool at times ...

t/T will toggle transparency. The pixelvalue of 0x00000000 is treated as "transparent" usually. This not only looks better, but often even improves performance, as there is less to draw. However things like shells (nixterm) might be hard to read on a colorful background, so you might want to turn it off at times.

0-5 select the active console that will get input, when you leave the escaped mode. The blinking rectangle will move there. Together with 'c', this is used to get a particular console to the front.

q/Q quit 3d. This also tries to kill the apps started from it. Externally started apps are _not_ killed. They will continue to run and might interfere with future runs of 3d, as they still hog the shared memory used to communicate between 3d and the apps.

f/F (undocumented, may disappear)
    display framerate.

d/D (undocumented, may disappear)
    display debugging info. Not very useful.

BUGS

Too numerous to count.

SEE ALSO
libggi(2)