
3d-Desktop
----------

3d Desktop is a GNOME OpenGL program that allows you to switch
desktops (viewports) in a 3-dimensional way.  The default
"visualization" maps your screen onto an N-sided polygon which is
rotated to select the next screen.  The face is zoomed in and out to
make your desktop appear to be actually in a 3d environment.


Requirements
------------
  OpenGL (Hardware acceleration is strongly recommended)
  Image Magick is required for capturing your screen for the textures.
 
Installation
------------

To build, install and setup:

  ./configure
  make
  make install

Add a global keybinding ("shortcut") to the window manager to run
/usr/local/3ddesktop/3ddesk.  Something like C-M-s or something
that won't conflict with anything else.  When you press this key
combination 3ddesk starts up and shows you the "3d visualization" of
your desktop.  Then you select the screen you want to switch to.

In Gnome/Sawfish you can do this by going to the Gnome Control Center
(gnomecc) --> Sawfish --> Shortcuts --> Add --> "Run Shell Command"

This was developed using Redhat 7.1 and 7.2 on GNOME using sawfish.  I
have not tested in KDE or with other window managers yet, but I will.


Other random comments
---------------------

This is my first OpenGL program so I'm sure there are lots of things
that aren't perfect or need work.  I'm open to any kind of feedback
positive or otherwise.  Please let me know your thoughts at
bard@systemtoolbox.com

The viewport switching is done with code based off of STPH by Rob
Hodges.  See http://stph.sourceforge.net/ for more info.  Thanks Rob!

For some fun try a command line option like: 
   3ddesk --mode=linear --nozoom

Do 3ddesk --help for more command line options.

There are several things that I know need work.  See the TODO file.

The biggest issue right now is the load time.  The reason it takes so
long to startup is because it has to take a screenshot.  Right now I
call "import" (ImageMagic) to create a file in /var/tmp/3ddesktop and
then read the file into shared memory.  I would like to do the
screenshot directly into memory and optimize the screenshot stuff
possibly sacrificing quality for speed.  Maybe have like a daemon that
updates bits and portions of the screen in the background kinda like
the desktop guide.

Anyway because it takes a bit of time to activate (its not snappy -
like 1 or 2 seconds on my AMD 1ghz) its not really that usuable when
you want to switch between viewports a lot.  I am going to try to
speed it up.

Also at this time it only supports horizontal viewports only.  No
verticle or workspaces yet.

Also for the images/textures of the screens to be accurate you *must*
always use "3ddesktop" to switch views, otherwise if you use something
else like the GNOME deskguide then the images can become out of date
and don't match what you actually have on the screen.


Brad Wasson
bard@systemtoolbox.com





