584 lines
26 KiB
Plaintext
584 lines
26 KiB
Plaintext
|
General problems:
|
||
|
o PAM get working on solaris
|
||
|
|
||
|
o fix up -h
|
||
|
|
||
|
o For security (Theo de Raadt <deraadt@cvs.openbsd.org> and
|
||
|
Yuri Bushmelev <jay-dev AT simcom.ru>)
|
||
|
- in initpasswd()
|
||
|
- create two pipes
|
||
|
- fork a child
|
||
|
- read a password from the pipe
|
||
|
- do a check
|
||
|
- write a 1 or a 0
|
||
|
loop
|
||
|
- have the parent revoke it's uid's completely.
|
||
|
- use one pipe to send passwords to the child
|
||
|
- read for 0 or 1
|
||
|
- use SIGCHLD to detect child exit
|
||
|
|
||
|
- look to checkpassword-pam (http://checkpasswd-pam.sourceforge.net/)
|
||
|
for an example.
|
||
|
o Switching consoles using XFree-4.0, the X server sends a fully-obscured
|
||
|
event to all its clients, and when I switch back to the graphical
|
||
|
terminal, it sends fully-visible or partially-obscured event to its
|
||
|
clients. xlock doesn't handle these event, it still can consume 99% of
|
||
|
CPU time in several lock-modes. It would be really good if xlock, when
|
||
|
receiving an obscure-event, stopped doing anything CPU-consuming stuff.
|
||
|
|
||
|
The three messages (fully visible, partially visible and fully obscured)
|
||
|
exist in X11 for a long time. Launch the utility 'xev' and move another
|
||
|
window over it, and see what it prints. This is useful so that
|
||
|
applications (such as fractal animators or Spectrum/C64 emulators or
|
||
|
really anything) know if its window is not visible and therefore can save
|
||
|
a lot of cpu time if it doesn't even want to draw (update) its contents.
|
||
|
For example there's a spectrum emulator at
|
||
|
http://www.inf.bme.hu/~mszeredi/spectemu/spectemu.html, if you launch this
|
||
|
and switch to full speed mode, you'll see that it runs much faster if its
|
||
|
window is obscured by another window or windows.
|
||
|
|
||
|
Using the XFree-3.3 servers if you switched back to the linux console, no
|
||
|
events were sent to the applications, so they couldn't realize that thier
|
||
|
contents is not visible to the user in this case. In XFree-4.0 the windows
|
||
|
get the fully-obscured event when you switch to linux console, so for
|
||
|
example a Spectrum emulator can save really a lot of cpu time, since it
|
||
|
doesn't need to redraw its screen 50 times per second.
|
||
|
|
||
|
o It would be nice to have an option -idletime time. Where xlock would
|
||
|
run after a certain idle time. (Here xautolock may help you, see
|
||
|
README).
|
||
|
|
||
|
o Currently for multiple users to unlock the account one has to have
|
||
|
UIDs to be the same. whoami, for example, always comes back with
|
||
|
the first one in the list regardless of which of the users it really
|
||
|
is. So they'll have to have special accounts for this app. That
|
||
|
is okay, but it would be nice if xlock had some sort of command line
|
||
|
or xlockrc option that allowed specifiying users who had unlocking
|
||
|
privileges.
|
||
|
|
||
|
o xscreensaver compatibility
|
||
|
writable modes: mandelbrot, tube, (lyupanov?)-> get them to RUN
|
||
|
(compile OK)
|
||
|
|
||
|
o Add a way to get xlock to switch to "blank" mode after X minutes
|
||
|
of (keyboard) inactivity, and to switch back to whatever mode list was
|
||
|
being used when activity is detected. This would be good for
|
||
|
users using DPMS to power down the monitor without using precious cpu
|
||
|
when the modes are not visible.
|
||
|
|
||
|
o Some xlock modes take a long time to start. In particular the 3d ones
|
||
|
can take up about ten seconds for the necessary libraries to load (on a
|
||
|
400MHz Intel Celeron system). If one of these modes is chosen as the
|
||
|
first one to run after xlock starts, then there will be a ten second
|
||
|
delay between running xlock and the display actually being locked. If
|
||
|
you start xlock from a window manager then it appears that nothing has
|
||
|
happened, which can cause the user to click on 'lock screen' again and
|
||
|
start a second xlock.
|
||
|
|
||
|
The delay itself is probably unavoidable, but xlock could overcome the
|
||
|
'nothing is happening' problem by always choosing the 'blank' mode
|
||
|
first. So if you say 'xlock -mode sproingies', first xlock starts and
|
||
|
goes into blank mode to make sure the screen is locked, then starts
|
||
|
loading and running the bouboules mode. This makes sure that the screen
|
||
|
gets locked almost instantly after running xlock and the user doesn't
|
||
|
have to wait.
|
||
|
|
||
|
Possible further step: always go to 'blank' before even looking at what
|
||
|
mode was chosen, in other words before doing command-line checking of
|
||
|
the mode name. Suppose I set the 'lock screen' command in my window
|
||
|
manager to 'xlock -mode sproingies'. This takes ten seconds or so to
|
||
|
load the OpenGL libraries, but it works eventually. Then I use somebody
|
||
|
else's machine, which doesn't have the sproingies mode included with
|
||
|
xlock. I click on 'lock screen' and xlock prints an error message which
|
||
|
goes to my .xsession-errors file. But to the user it looks like nothing
|
||
|
has happened. Knowing that sproingies takes a while to start up, I
|
||
|
leave the terminal, but in fact it was never locked. It would be better
|
||
|
for xlock to go to mode blank first of all, and then try to load
|
||
|
sproingies, and if that doesn't exist print an error message to stderr
|
||
|
and on the screen. At least that way the display is guaranteed to get
|
||
|
locked.
|
||
|
|
||
|
o Imagine a crowded lab of workstations. Some have people sat at them but
|
||
|
even those machines with nobody in front of them might be locked. If
|
||
|
you are a user entering the lab looking for a free machine you look
|
||
|
around for a login screen. The login screen is probably easy to spot
|
||
|
(at my site, it has a blue background). Or maybe xlock draws some border
|
||
|
around main xlock mode screen when logout button is available. Or use some
|
||
|
kind of pseudo-transparency to draw such button.
|
||
|
|
||
|
To avoid the problem of workstations being locked for too long, there is
|
||
|
the 'click here to logout' button which is enabled by default and comes
|
||
|
on after twenty minutes. The trouble is that while a with-button
|
||
|
xlocked machine is just as usable as a machine showing the login screen,
|
||
|
it doesn't _look_ any different to one which is ordinarily locked.
|
||
|
If you see five machines showing an xlock display, there's no way to
|
||
|
find out which of them you could use other than walking past and tapping
|
||
|
a key to see whether the logout button appears. In a lab of 100 PCs
|
||
|
this is awkward.
|
||
|
I suggest that when the public logout button appears the xlock display
|
||
|
should noticeably change. I don't know to what exactly, perhaps the
|
||
|
'type password to logout, select icon to lock' screen should be
|
||
|
permanently displayed, with a big logout button in a nice bright colour.
|
||
|
Then it would be obvious, even from a distance, whether a session is
|
||
|
kick-off-able or really locked.
|
||
|
|
||
|
o when a user runs "xlock -mode unknownmode", it should print a warning
|
||
|
and default to blank mode or the default mode (random) instead of exiting
|
||
|
with a usage error. This way, the screen is still locked as requested by
|
||
|
the user if they ask for a mode that is not available.
|
||
|
|
||
|
o some sort of command line or xlockrc option that allowed
|
||
|
specifiying users who had unlocking privileges.
|
||
|
|
||
|
o some sort of completion is used which may be confusing on UNIX
|
||
|
Say if a ../bitmaps directory exists and ../bitmap does not
|
||
|
xlock -mode random -modelist image -bitmap ../bitmap
|
||
|
will try to load ../bitmaps as a file...
|
||
|
|
||
|
o kill -HUP to change modes as well as middle mouse button. Needed when
|
||
|
using -inroot .
|
||
|
|
||
|
o -showfps option may give a Zero Page Read and SEGV error using Mesa
|
||
|
and Sun
|
||
|
|
||
|
o configure.in should be condensed. Its getting out of hand.
|
||
|
|
||
|
o Look into any way of not clearing the screen if can not get control of it
|
||
|
(2nd xlock running).
|
||
|
|
||
|
o gentlerandom mode option. Switching to next mode when mode completed
|
||
|
what it was working on.
|
||
|
|
||
|
o On a PsuedoColor display
|
||
|
xlock -mode life -install &
|
||
|
sleep 5 ; xlock -mode life -install
|
||
|
Colors will all be messed up after the second one tries to run.
|
||
|
This can easily happen if you are using xautolock and decide to lock
|
||
|
the display manually.
|
||
|
|
||
|
o -wireframe should be a mode option (i.e. you should be able to turn it
|
||
|
on and off for a particular mode). Also a linewidth mode option would be
|
||
|
nice
|
||
|
|
||
|
o I got an error with moebius running it on opengl on a 24 bit TrueColor like:
|
||
|
xlock -mode moebius -visual PseudoColor
|
||
|
(all the gl modes are messed up anyway... all mono)
|
||
|
|
||
|
o some configurations of linux: swarm and flow has noise when bees go
|
||
|
beyond screen (also may happen with forest).
|
||
|
Sun Ultra5 PCI Bus 24 bit display: flow has some noise (usually red)
|
||
|
This is especially true if you use -inwindow for swarm, flow, euler2d.
|
||
|
I think these errors are limited to the graphics card.
|
||
|
|
||
|
o A few uninitialized memory reads and memory leaks were detected in some
|
||
|
of the code. grep for "PURIFY" in the source files to see where the
|
||
|
remaining problems are. Also see docs/Purify for more details.
|
||
|
|
||
|
o superquadrics does not work on some Linux boxes (not mine).
|
||
|
|
||
|
o Text3d will dump core on some linux boxes (not mine) due to random font
|
||
|
routine. Temporary solution: use arial.ttf directly. See "#if 0" in
|
||
|
text3d.cc.
|
||
|
|
||
|
o glplanet does not display stars clearly on Sun with OpenGL except when
|
||
|
in password window (Sun with Mesa ok).
|
||
|
|
||
|
o molecule logs me out on Sun Ultra 5 with OpenGL 1.2.1 and 1.2.2
|
||
|
(using gcc or cc) when the return key is held down. This has not
|
||
|
been repeated on any other Sun. Tracing on this seems to indicate
|
||
|
the release code but when commented out would still die (done
|
||
|
with XSynchronize on).
|
||
|
|
||
|
o -mono does not work for XPM (they just use XBM when mono), also cage
|
||
|
and stairs.
|
||
|
|
||
|
o Not all resources are listed in "xlock -resources", e.g. nolock.
|
||
|
If xlock is renamed these resources are not picked up.
|
||
|
|
||
|
o Without any programs stealing your colors, like netscape
|
||
|
xlock -modelist all -sequential -install -verbose
|
||
|
Hit the middle button a hundred times (not to bad on an ultra actually)
|
||
|
or try -duration 1 and let it sit for a while.
|
||
|
The second time it runs the GL modes they have all lost some colors.
|
||
|
This was only noticed on Solaris with pseudocolor. Also noticed on an
|
||
|
ancient HP9000/380 HPUX9.0 with 6 bit depth (without netscape).
|
||
|
|
||
|
o On a German keyboard and Linux if the password contains special
|
||
|
characters (`|' vertical bar, `@' at-sign) while in debug mode
|
||
|
everything works fine. This probably has something to do with the
|
||
|
X11-keymapping, as these characters are composed with the right Alt-key
|
||
|
on a German keyboard.
|
||
|
|
||
|
o OpenGL and DT may be incompatible on PseudoColor. (MesaGL should be
|
||
|
OK.) OpenGL frequently causes xlock to error out on non-default visuals.
|
||
|
|
||
|
o Errors in modes, if any, should not break lock.
|
||
|
|
||
|
o Unstable mode "run" allows running of separate processes should be made
|
||
|
to run on VMS (now just blanks the screen). The problem is a totally
|
||
|
different concept of starting other programs from within a program.
|
||
|
Also get "run" to run with -debug.
|
||
|
|
||
|
o make -n install prefix=/foo/bar does not work.
|
||
|
|
||
|
o "xlock -mode random -modelist image -bitmap ./bitmaps/"
|
||
|
It should change images when middle mouse is pushed or when
|
||
|
-duration time runs out.
|
||
|
|
||
|
o jpeg/gif/animated gif support Fix ras for > 8 bit TrueColor
|
||
|
|
||
|
o "-visual" commandline argument should accept "best" as well as
|
||
|
PseudoColor, TrueColor, default, etc.
|
||
|
|
||
|
o Is there any chance the "visual" selection code could be made
|
||
|
mode-dependent? Most Xservers that support TrueColor, etc, visuals also
|
||
|
support PseudoColor visuals and it would be nice to have color-cycling
|
||
|
modes like "starfish" and "swirl" pick a PseudoColor visual if available,
|
||
|
while xpm modes could prevent colormap flashing by picking a TrueColor
|
||
|
visual.
|
||
|
I heard that VisualDepthMask taken out of vis.c it seems to work better
|
||
|
to get a PseudoColor visual one a root window of 24 bits.
|
||
|
|
||
|
o % make install
|
||
|
[...]
|
||
|
make[1]: Entering directory `/vol/bitbucket/epa98/xlockmore-5.03/modes'
|
||
|
../mkinstalldirs /vol/linux/apps/bin
|
||
|
/usr/bin/install -c -s -o root -m 4111 ../xlock/xlock /vol/linux/apps/bin
|
||
|
/usr/bin/install: cannot change ownership of `/vol/linux/apps/bin/xlock': Operat
|
||
|
ion not permitted
|
||
|
make[1]: *** [install-program] Error 1
|
||
|
|
||
|
Make is trying to install xlock owned by root and suid, but I am not
|
||
|
root. It might be more user-friendly to either:
|
||
|
|
||
|
- - If the user running 'make install' is not root, assume that xlock
|
||
|
should be installed non-suid, or
|
||
|
|
||
|
- - If the user is not root, complain and give up.
|
||
|
I looked for a configure option to tell the build process not to install
|
||
|
suid or owned by root, but I didn't find one (or anything obvious in the
|
||
|
README). But you can certainly use xlock if it's not root.
|
||
|
|
||
|
o From Duncan Simpson <dps@io.stargate.co.uk>
|
||
|
|
||
|
Due to the introduction of Xinerama, and a couple of monitor displays, I would
|
||
|
find a horizontal fivision option that runs two windows each half the width
|
||
|
of the display (which corresponds to one window one each monitor).
|
||
|
Let xlock detect Xinerama enabled and draws login display only on primary
|
||
|
screen.
|
||
|
|
||
|
I do not know the details of x2x, although I guess various sorts of multiple
|
||
|
monitor technology might benefit from this sort of support (one could think
|
||
|
of Xnest with re-direction to appropiate screens).
|
||
|
|
||
|
Information on x2x is almost certainly somewhere on the web, but I do not
|
||
|
have a URL on me (ask your favorite search engine, I guess). I think it
|
||
|
involves using multiple boxes for display driving purposes---I hear someone in
|
||
|
the lab has 4 screens across with x2x (the pointer moves off one screem onto
|
||
|
another). Xnest is an xserver that asks a parent X server to do the work, and
|
||
|
I think you can use it to present different display information and so forth.
|
||
|
|
||
|
Xinemera is much easier, it basically just glues mutliple bits of hardware
|
||
|
together into a single huge bit of virtual hardware. It does not appear in the
|
||
|
extensions list. xlock just sees a single display with 2304x900 pixels on my
|
||
|
system, which is actually 2 screens 1152x900 each. AFAIK there is no easy way
|
||
|
to detect Xinemera modulo strange aspect ratios and the like (e.g. my display
|
||
|
is suspicously wide, assuming I am using conventional display hardware).
|
||
|
Recycled 1990 SUN monitors are conventional, albeit rather pickier about the
|
||
|
video signal that one expects these days.
|
||
|
|
||
|
I was thinking I could add -hdiv 2 and would xlock use half the display width,
|
||
|
in my case 1152, as the width of an appropiate number of windows (2 for half
|
||
|
width). One could think of a maximum window width, with the code generating an
|
||
|
appropiate number of windows, for a similar effect. I image neither option
|
||
|
would involve vast amounts of code or internal changes.
|
||
|
|
||
|
Actually, on a more careful analysis Xinereama is listed in the extensions and
|
||
|
in extensions/Xinerama.h I see the following functions
|
||
|
|
||
|
Bool XineramaIsActive(Display *dpy);
|
||
|
XineramaScreenInfo *
|
||
|
XineramaQueryScreens(
|
||
|
Display *dpy,
|
||
|
int *number
|
||
|
);
|
||
|
|
||
|
XinermaScreenInfo is a structure that contains screen number, x and y origin,
|
||
|
width and height (one per head, judjing by the function prototype). The
|
||
|
extension is not supported everywhere but feature test macros or autoconf
|
||
|
should cope. Imake apparently includes
|
||
|
|
||
|
#define XineramaDefines -DPANORAMIX
|
||
|
|
||
|
if you have the support (and presumably this means you have the header too).
|
||
|
My proposal would be less elegant.
|
||
|
|
||
|
~$ gcc -o xintest.^H ci^H^Hxintest.c -:^HL/usr/X11R6/lib -lX11
|
||
|
=^H-lXext -lXinerama
|
||
|
~$ ./xintest
|
||
|
Xinerama supported: event base 0, error base 0
|
||
|
Xinerama active
|
||
|
There are 2 heads
|
||
|
Head 0: screen 0 size 1152x900 starting at 0,0
|
||
|
Head 1: screen 1 size 1152x900 starting at 1152,0
|
||
|
~$ exit
|
||
|
|
||
|
Script done on Sat Apr 15 19:25:46 2000
|
||
|
|
||
|
Which has interesting effects in ink blot mode (50% of the ink blot on each
|
||
|
screen, not indeal). Modes dewsned for about 4x3 suffer quite badly from
|
||
|
stretching pn 2304x900... hence my desire for a version aof xlockmore aware of
|
||
|
the screen boundaries.
|
||
|
#include <stdio.h>
|
||
|
#include <X11/Xlib.h>
|
||
|
#include <X11/extensions/Xinerama.h>
|
||
|
|
||
|
int main(void)
|
||
|
{
|
||
|
Display *dpy;
|
||
|
int xin, ev, err, i, nh;
|
||
|
XineramaScreenInfo *scr;
|
||
|
|
||
|
dpy=XOpenDisplay("");
|
||
|
xin=XineramaQueryExtension(dpy, &ev, &err);
|
||
|
|
||
|
if (!xin)
|
||
|
{
|
||
|
printf("Xinerama not avialable\n");
|
||
|
XCloseDisplay(dpy);
|
||
|
return 0;
|
||
|
}
|
||
|
printf ("Xinerama supported: event base %d, error base %d\n",
|
||
|
ev, err);
|
||
|
|
||
|
printf("Xinerama %sactive\n", XineramaIsActive(dpy) ? "" : "in");
|
||
|
|
||
|
if ((scr=XineramaQueryScreens(dpy, &nh))!=NULL)
|
||
|
{
|
||
|
printf("There are %d heads\n", nh);
|
||
|
for (i=0; i<nh; i++)
|
||
|
{
|
||
|
printf ("Head %d: screen %d size %dx%d starting at %d,%d\n",
|
||
|
i, (scr+i)->screen_number,
|
||
|
(scr+i)->width, (scr+i)->height,
|
||
|
(scr+i)->x_org, (scr+i)->y_org);
|
||
|
}
|
||
|
XFree(scr);
|
||
|
}
|
||
|
XCloseDisplay(dpy);
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
|
||
|
o modes from xscreensaver :) : bubbles, moire, LMorph, halo, ImsMap, BlitSpin
|
||
|
|
||
|
|
||
|
Mode specific problems:
|
||
|
----------------------
|
||
|
Various modes need better refresh capability.
|
||
|
Various modes need more mouse capability like worm.
|
||
|
|
||
|
ant:
|
||
|
round ants. This would involve masking and images to do efficiently.
|
||
|
3d version (up, down, left, right turns)? May be hard to see interior
|
||
|
though.
|
||
|
|
||
|
ball: can it be updated to use a pixmap instead of a slow circle fill?
|
||
|
|
||
|
braid: should be made so that it can be interrupted quicker.
|
||
|
|
||
|
bouboule: always starts at the bottom right
|
||
|
|
||
|
bounce:
|
||
|
sometimes a ball does not roll off another ball.
|
||
|
momentum seems to be created.
|
||
|
A -wall option, multiscreens should have balls bouncing between
|
||
|
screens.
|
||
|
-mode bounce -inroot may give BadWindow in X_GetWindowAttributes
|
||
|
if run for a while, but the screen is not locked :)
|
||
|
allow a background picture to be seen behind the bouncing football
|
||
|
(soccer ball) in "bounce" mode. Thus a picture of your favorite
|
||
|
team, etc. can be seen behind the bouncing balls.
|
||
|
football version of "bounce" using a pigskin instead of a soccer ball for
|
||
|
Americans/Canadians/etc.
|
||
|
Different balls with different mass and size.
|
||
|
|
||
|
bug:
|
||
|
3d version? Will triangular bugs evolve, if not, can they?
|
||
|
|
||
|
flag: add an option for amplitude.
|
||
|
|
||
|
ico:
|
||
|
should have all the features of the original.
|
||
|
triangular face objects do not look good when rotated.
|
||
|
|
||
|
image: middle button should do something when called like
|
||
|
"-bitmap ./bitmap/"
|
||
|
|
||
|
hop: center and size many of the hops.
|
||
|
|
||
|
life:
|
||
|
-find option to find new lifeforms. (mail the results out :) also life3d).
|
||
|
When the bitmap is big it is rejected. Probably could be handled
|
||
|
better but if accepted then the screen could be blank because there
|
||
|
are bitmaps that are off the screen.
|
||
|
|
||
|
life3d:
|
||
|
A densely packed spherical version on corners of a cuboctahedron (or
|
||
|
rhombic dodecahedrons).
|
||
|
|
||
|
lyapunov: needs to be speeded up
|
||
|
|
||
|
marquee:
|
||
|
"-messagefile filename" truncates a large file.
|
||
|
"-message string" does not handle Control-H correctly.
|
||
|
fallback font if screen is small... like bomb
|
||
|
|
||
|
|
||
|
mountain: -size # for mountain should do something.
|
||
|
|
||
|
noof: a cpu killer. Strip out OpenGL or increase the variablity
|
||
|
like having the "flowers" skew with respect to the viewer.
|
||
|
nose:
|
||
|
should handle Control-H better for underlining and accents.
|
||
|
fallback font if screen is small... like bomb
|
||
|
|
||
|
pyro: needs XDrawSegments code similar to swarm to give it depth.
|
||
|
|
||
|
slip:
|
||
|
should be less jarring
|
||
|
get rid of single color blotch.
|
||
|
should be made so that it can be interrupted quicker.
|
||
|
|
||
|
star:
|
||
|
fractal cracks when hit by rocks (with sound?)
|
||
|
user defined ships (user defined pixmaps like eyes and pacman).
|
||
|
stars should look more star-like "*"'s
|
||
|
combine space and star for a backwards and sideways motion
|
||
|
|
||
|
swirl:
|
||
|
needs to be refreshed quicker
|
||
|
does not refresh well when colormap changes
|
||
|
|
||
|
text3d:
|
||
|
time stuff in text3d
|
||
|
maybe dclock and marquee could be combined too?
|
||
|
a separate -message3d for text3d
|
||
|
|
||
|
voters and wator:
|
||
|
neighbors option bug ... sometimes circles are not
|
||
|
drawn in the correct spot.
|
||
|
A -/+ wrap option would be nice also.
|
||
|
|
||
|
wire: it needs a better circuit generator.
|
||
|
|
||
|
xglock: Needs a lot of work.
|
||
|
|
||
|
kscreensaver: port xlock to KDE.
|
||
|
|
||
|
|
||
|
New mode ideas... (some may be very hard :) ):
|
||
|
---------------------------------------------
|
||
|
o "bsdworm" BSD worm game with computer (and later mouse control), also
|
||
|
have more than one worm
|
||
|
o "dead" a Grateful Dead mode with dancing bears/skeletons/turtles.
|
||
|
(Or maybe "nose" in a tie die?)
|
||
|
o "floyd" a Pink Floyd mode from the cover of "Dark Side of the Moon"
|
||
|
with a turning prism and rainbow effect.
|
||
|
o "graph" a random planar graph drawn ... filled in by a 5 (or 4 :) )
|
||
|
coloring algorithm.
|
||
|
o "mail" show that one has mail (can also be an option on flag, image, etc.)
|
||
|
A spinning GL mailbox would be really cool. Note that the password
|
||
|
screen can be setup to show if one has mail.
|
||
|
o "minimal" a random minimal surface generator.
|
||
|
o "pangea" a mode showing the changes to the earth's surface over
|
||
|
millions of years.
|
||
|
o "snow" mode with a nice Winter scene picture background and snowflakes
|
||
|
falling
|
||
|
o "soap" mode showing soap films
|
||
|
o "squig" mode from squig/xsquig (xsquig is too slow)
|
||
|
o "venus" mode showing the transformation of a Etruscan Venus to a
|
||
|
Roman surface to a Boy surface to a Ida surface, back into a
|
||
|
Etruscan Venus using GL. This is a 3D shadow of a 4D Klein Bottle
|
||
|
(which in turn is a a 3D moebius strip).
|
||
|
(Science News October 24, 1987 Vol 132, No 17.)
|
||
|
o Simulations like sandpile avalanches or forest fires.
|
||
|
(Science News July 15, 1989 Vol 136, No 3.)
|
||
|
o A NT-like GL 3D Maze, where you are inside the maze
|
||
|
o NT-like GL FlowerBox spring and Flying Objects
|
||
|
o A GL 4D ico where the 6 4D "platonic" objects "roll" around in 3D space.
|
||
|
o GL modes based on demos: isosurf, reflect, bounce, stex3d
|
||
|
o KitCat (R) clock mode (based on X11 catclock, a version of xclock) where
|
||
|
the cat clock floats around the screen like "dclock" mode does. Colors
|
||
|
of cat clock could be picked like nose-guy in "nose" mode.
|
||
|
o Lottery with bouncing numbered balls like PowerBall.
|
||
|
o morph3d for rhombic dodecahedron and rhombic triacontahedron
|
||
|
o A simple set of 2D geometric shapes that morph into one another whilst
|
||
|
colour cycling. So say you start with a rectangle that morphs into a
|
||
|
circle (leaving a small trail like Qix) that morphs into a triangle
|
||
|
that morphs into a polygon that morphs into a rectangle, etc. All the
|
||
|
while you have movement and colour cycling like Qix. If the trail is to
|
||
|
large then things could become messy, but if too short then you loose the
|
||
|
history element.
|
||
|
o A simple bouncing ball on a chess board. The ball is a silver
|
||
|
ray-traced/rendered globe. The chess board is a series of black and
|
||
|
white squares. Each black square is gold veined marble with the gold
|
||
|
glinting. Each white square is a textured surface (like little bumps, or
|
||
|
ridges). The whole screen is lit from two light sources (either fixed or
|
||
|
moving). As the ball bounces it reflects like a mirror what is around it.
|
||
|
o A variant of the above would be to hold that ball still in the centre of
|
||
|
the screen and move a randomly chosen bitmap around the ball.
|
||
|
o The above could also have embossed on standout lettering added (say a
|
||
|
single word like Linux). The lettering could either be stationary or
|
||
|
float around the ball in orbit a bit like the the Universal studios logo
|
||
|
where the Universal name revolves around a picture of the earth.
|
||
|
o Take pipes and add the constantly moving view point that you get with
|
||
|
rock so the mass of pipes seems to revolve and rotate around a moving
|
||
|
point in space.
|
||
|
o Make the little man in Nose seem to carve the letters of the message into
|
||
|
rock, or paint them on the screen.
|
||
|
o Make marquee use 3D extruded text that can be texture mapped and seem to
|
||
|
zoom into and out of the screen with the zoom source point drifting
|
||
|
around the screen at random
|
||
|
o Make puzzle take the present desktop image, invert it and shuffle the
|
||
|
pieces then put the whole things back. Once it has reassembled the
|
||
|
desktop you could have the image flip top over bottom as it reseeds into
|
||
|
the screen, only to have a new randomly shuffled version of the desktop
|
||
|
flip back out.
|
||
|
o Use the spheres generated in sphere to draw molecules on the screen,
|
||
|
colour coding for the various types of atom present. A limit on the size
|
||
|
of each sphere would be needed. The spheres could be joined by simple
|
||
|
white lines. If you are feeling adventurous you could make it seem to
|
||
|
rotate in space so all parts of the molecule could be seen.
|
||
|
o In shape change things so that the shapes appear to be extruded from a
|
||
|
random point on the screen. You could also have a number of shapes be
|
||
|
extruded, each from its own origin, only to shrink back into the screen
|
||
|
again. Each time a shape shrinks back into the screen the origin would
|
||
|
move and a new shape would be chosen.
|
||
|
o When the screensaver is started have curtains drawn across the desktop
|
||
|
at a medium pace, a second or twos pause then the curtain a pulled open
|
||
|
quickly to reveal a bitmaped image in place of the desktop. This cycles
|
||
|
with a different image each time.
|
||
|
o In pyro have the fireworks appear to zoom from a randomly choose point on
|
||
|
the screen. This would give the effect of the display being seen from
|
||
|
above.
|
||
|
o In decay mode, have a Blue Screen of Death option.
|
||
|
|
||
|
PLEASE NOTE:
|
||
|
-----------
|
||
|
I _REALLY_ hate to turn down contributions... I will try to consider
|
||
|
all submissions. Some things on new modes that bother me are:
|
||
|
Did not black out the screen when they start. I do not like people
|
||
|
to see what I am doing. :^| (This could be a non-default option...
|
||
|
see decay mode).
|
||
|
Did not work in the little window or buggy. (I usually try to clean
|
||
|
it up).
|
||
|
Is too similar mode to a mode that already exists. (Maybe an option could
|
||
|
be added on an existing mode?).
|
||
|
Many people complained about the mode.
|
||
|
Just not enough randomness or is not interesting enough.
|
||
|
No multiscreen support (I usually try to clean this up too).
|
||
|
But I labor over them (in a haphazard fashion) and they usually are
|
||
|
released eventually. (If they are in assembler I would definitely need
|
||
|
a working example and all the binaries and libraries to get it to run.)
|