The collected works of squeen - Page 1

Would TightVNC from the SGI freeware site help out? (I know it's slow.) I would also be interested in a solution if you find one. I have resisted upgrading from WinNT 4.0 as my IRIX-2-Wintel conversion platform, precisely because Teleffect works so well with it. I've wonder about the rdesktop stuff posted on this site as an alternate solution, but havn't tried it yet.
Works great from my Octane2 6.5.19 to a Windows NT laptop running the TightVNC server 1.2.8 (WinVNC from http://www.tridiavnc.com/ I think) for windows. Was easy to compile as well:

1) downloaded from http://www.hubbe.net/~hubbe/x2vnc.html

2) uncompressed and de-tar'd

3) %./configure

4) %gmake

5) %x2vnc -east servername:0

Thanks! Maybe I'll upgrade the laptop to Win2000 sometime this decade.
Socks5 is availible at http://freeware.sgi.com . It is both the server (which my sockscap on Windoze connects to) and the client. The client uses the syntax "runsocks <app-name>" which is alittle different than Sockcap's gui interface but seems to produce the same results for me. You can do a "man runsocks" or a "man socks5" for more info.
Here's an excerpt from the runsocks man page:
runsocks is a shell script that initializes environment
variables to ensure that the linker uses the SOCKS shared
library when you link at runtime. Use runsocks to socksify
an application without recompiling. runsocks only works if
you dynamically link and the operating system supports all
the runsocks features.


I may be missing the crutial difference...but to the best of my understanding
"runsocks" does for IRIX exactly what Sockscap does for Windoze.
1.4b was not noticeably faster for me. Also, it lacked (in its present state) the spell checker in Composer and the "File" icon button in the Mail browser.

Also, related to Mozilla...does anyone know how to get it to launch SoftwareManger when openning a tardist?. It launches for me, but does not accept the root authorization.
I had issues with MIPS 7.4 under 6.5.19 but haven't tried it with 6.5.20 yet.
I use and love sharity for connecting to MS filesystems.
I occassionally have trouble with the browser locking up the file alteration monitor (fm) when one of my mounted files systems disappears.

If the 3-level deep limit of the freeware version bugs you (as it does me) we could try petitioning the distributor to include IRIX on its lists of hobbist OS, then the cost of a single machine license would drop from $200 to $60.
I'm gotten two LCD (17") to work with Octanes with SE graphics one was a NEC and the other a Samsung (I think) I'll go look up the specs and get back to you. My experience was that the sync rates (vertical and horizontal) had to closely match the modes supported by the SGI graphics driver. For example, the NEC did work with the Octane SE, but not an Octane2 V6. Also both nedded two run at 1280x1024 60Hz.

I'll need to verify this on the machines and let you down model numbers.
I also feel like a major unachiever when I admit this, but I use Nedit. I like all the simple to use syntax highlighting, the search and replace is also fairly powerful, and the programmability of the macros and menus.
Cool! I can't wait to see it.
Wow! The savers (from your tardist) seem to be MUCH more stable. Great job!
Did you add the SGI logo to "Falls"? Nice.

At the risk of sounding ungrateful for all the work you've done I still have a few "issues" that perhaps you can lend some insight into;
    On an Octane2 (2x 600Mhz) with V6 graphics Cyclone (still) just gives me a blank screen. Is it just on my system?

    On an Octane (2x 400Mhz) with ESI graphics, the "advanced" savers (textured?), like the version of Solar Winds with "fat n' fuzzy" lines, the images still appear in a small box in the lower left corner of the screen and they page through the images rather than a smooth motion.


Thanks lisp! :D
What I do is start the client in the background:
%civclient&
Next start the server
%civserver
Create a few AI opponents:
Quote:
This is the server for Freeciv version 1.14.0
You can learn a lot about Freeciv at http://www.freeciv.org/
2: Now accepting new client connections.

For introductory help, type 'help'.
> create badguy1
2: stalin has been added as an AI-controlled player.
> create badguy2
2: hilter has been added as an AI-controlled player.
> create badguy3
2: mussolini has been added as an AI-controlled player.
>


Then I connect to the game from the civclient GUI which gives
Quote:
2: Connection request from squeen from localhost
2: squeen has client version 1.14.0
2: squeen has joined as player squeen.

and then type " start " in the civserver prompt.
Also note that the games are automatically saved incrementally in your current directory (or explictly by typing save in the server prompt), so it's a good idea to start in a freeciv subdirectory of some sort.
To exit just quit the client GUI and type " quit " in the server prompt.
Saved games can be recalled by issuing the command at start up
%civserver -f <saved file name>
Hope that helps.
I believe lisp nixed the TRAM requirement.

Textureless support for Flux and Solarwind screensavers (--notexture/-T)
For a few years now I have periodically attempted to compile GNU Octave on my SGI, alway with less than marginal success. I recently downloaded the source from http://www.octave.org/ which is version 2.1.50. This is the first version I've gotten to compile with errors!!! Unfortunately, it immediatly Bus error (core dump) when I run the executable. I used
./configure --with-local-prefix=/usr/freeware --with-g77 --enable-shared --enable-dl --disable-readline
and gmake with gcc version 3.2.2.
I read in the octave README.Linux file
If you can compile Octave, but it crashes with a segmentation fault
right away, you probably have incompatible versions of libc and
libstdc++ installed, or you have a version of the dynamic loader,
ld.so, that is incompatible with your versions of the libraries, or
both.

When I check ldd I get:
ldd ./octave
liboctinterp.so => /usr/local/lib/octave-2.1.50/liboctinterp.so
liboctave.so => /usr/local/lib/octave-2.1.50/liboctave.so
libcruft.so => /usr/local/lib/octave-2.1.50/libcruft.so
libscs.so => /usr/lib32/libscs.so
libcurses.so => /usr/lib32/libcurses.so
libdl.so => /usr/lib32/libdl.so
libmpi.so => /usr/lib32/libmpi.so
libm.so => /usr/lib32/libm.so
libc.so.1 => /usr/lib32/libc.so.1
libftn.so => /usr/lib32/libftn.so
libCsup.so => /usr/lib32/libCsup.so
libC.so.2 => /usr/lib32/libC.so.2
libCio.so.1 => /usr/lib32/libCio.so.1
libarray.so => /usr/lib32/libarray.so

Which doesn't look to me like it is picking up the /usr/freeware libraries. Another funny thing is if I issue the same configure command as above, but with the --disable-readline I get
...
checking for rl_set_keyboard_input_timeout in -lreadline... no
configure: WARNING: I need GNU Readline 4.2 or later
configure: error: this is fatal unless you specify --disable-readline

even though I have readline 4.3 from the freeware.sgi.com site installed and only versions 4.2 and up are required.
versions | grep readline
I fw_readline 05/23/2003 readline-4.3 GNU command line prompt libraries
I fw_readline.man 05/23/2003 readline-4.3 man pages
I fw_readline.man.examples 05/23/2003 readline-4.3 example programs
I fw_readline.man.info 05/23/2003 readline-4.3 info pages
I fw_readline.man.readline 05/23/2003 readline-4.3 man pages
I fw_readline.man.relnotes 05/23/2003 readline-4.3 release notes
I fw_readline.src 03/27/2003 readline-4.3 original source code
I fw_readline.src.readline 03/27/2003 readline-4.3 original source code
I fw_readline.sw 05/23/2003 readline-4.3 execution only env
I fw_readline.sw.dev 05/23/2003 readline-4.3 archive libraries
I fw_readline.sw.hdr 05/23/2003 readline-4.3 header files
I fw_readline.sw.lib 05/23/2003 readline-4.3 shared libraries
I fw_readline.sw.readline 05/23/2003 readline-4.3 prompt utility
I fw_readline.sw64 05/23/2003 readline-4.3 execution only env
I fw_readline.sw64.lib 05/23/2003 readline-4.3 64-bit shared libraries
I gnu.sw.lib_readline 03/27/2003 GNU readline library

This software (an analytical package very MATLAB compatible) is the holy grail of freeware builts to me. If some one out there could help me build it on my machine I would be eternally grafteful. (I even paid The Written Word once to compile it for me...without much luck.) :?
I would like to request a 1600x1024 version if you have the time.

Thanks.
Awesome! Many thanks RageX.
This is so unbelievably incredible...I was dumbstruck for 5 minutes before I could respond.
:shock: :arrow: :o :arrow: :D
I'll give it a try tomorrow evening (parallel processing!!).

Thank you kind stranger.
Does any one know of a library of routines (or just a code snippet) that I could use in a C application to:

1) open an SGI RBG file (iopen?)

2) convert it into a X pixmap?

Thanks.
Thanks Neko.
IFL seems to advertise that I can do the job...but I can't make heads or tails out of the @#%!& C++ API (. :x ).

The C API example program in the IFL manual is a mess. It is cualked full of C++ comments...includes a header that doesn't exist ( #include <il/ilCdefs.h> I think should be #include <ifl/iflCdefs.h> ), even if I did the first declared type is non-existant.

I seems to me that SGI should not be surprised that few developers have made use of this undocumented mess! [ I have a theory that C <=> Unix && C++ <=> Microsoft Windows. ]

\end{rant}
Thanks Neko. You really are the one who (by example) sets the helpful tone for this entire forum.
It took me a bit of research, but I did the conversion manually (at least as far as my needs go).
Here is a smal pasted-together excerpt from my (ANSI C !!) code that gives the general idea:
It uses the iopen function that is provided with all SGI systems (see man rgb ) and is linked in using -limage.
This I/O library seems to date back to when the RGB format was first created at SGI, and even the support techs have forgotten about it.

Code: Select all

#include <gl/image.h>

#define PIXMAP_WD   100
#define PIXMAP_HT   100
#define BUFSIZE   4*PIXMAP_WD*PIXMAP_HT

Pixmap *rgbToPixmap( Widget w, char *fname ) {
int                  cc, x, y, z, offset, bitmap_pad, bytes_per_line;
unsigned int         icon_w, icon_h, depth;
IMAGE                *sgi_image;
short                *rbuf, *gbuf, *bbuf;
char                 *zbuf;
XImage               *ximg;
Pixmap               icon_pixmap;
GC                   gc;
XGCValues            gcvalues;
Display              *dpy;
Window               root_win;

dpy = XtDisplay(w);
root_win = RootWindowOfScreen( XtScreen( w ) );

XtVaGetValues( w, XmNdepth, &depth, NULL );
icon_pixmap = XCreatePixmap( dpy, root_win, PIXMAP_WD, PIXMAP_HT, depth );
gc = XtGetGC( w, GCForeground | GCBackground, &gcvalues );


sgi_image = iopen(fname,"r");

printf("geticon: converting SGI RGB format file %s\n",fname);
printf("Image x and y size in pixels: %d,%d\n",sgi_image->xsize,sgi_image->ysize);
printf("Image zsize in channels: %d\n",sgi_image->zsize);
printf("Image pixel min and max: %d %d\n",sgi_image->min,sgi_image->max);

/* this assumes zsize is 3 (RGB) but it could be 1 (B&W) or 4 (RGBA) */
zbuf = (char *)malloc(BUFSIZE*sizeof(short));
bzero( zbuf, BUFSIZE*sizeof(short) );
rbuf = (short *)malloc(sgi_image->xsize*sizeof(short));
gbuf = (short *)malloc(sgi_image->xsize*sizeof(short));
bbuf = (short *)malloc(sgi_image->xsize*sizeof(short));
z = 0;
for (y=sgi_image->ysize-1;y>=0;y--) {
getrow(sgi_image,rbuf,y,0);
getrow(sgi_image,gbuf,y,1);
getrow(sgi_image,bbuf,y,2);
for (x=0;x<sgi_image->xsize;x++) {
zbuf[z++] = (char)rbuf[x]; /* red   (0-255)  */
zbuf[z++] = (char)gbuf[x]; /* green (0-255)  */
zbuf[z++] = (char)bbuf[x]; /* blue  (0-255)  */
zbuf[z++] = 255;           /* alpha (0-255)  */
}
}

/* create an XImage from the SGI RGB data */
offset = 0;
bitmap_pad = 32;
bytes_per_line = 0;
/* NOTE: this may not work if the default visual is not 24bit !! */
icon_w = sgi_image->xsize;
icon_h = sgi_image->ysize;
ximg = XCreateImage( dpy, DefaultVisual( dpy, DefaultScreen(dpy) ),
DefaultDepth( dpy, DefaultScreen(dpy) ), ZPixmap,
offset, zbuf, icon_w, icon_h, bitmap_pad, bytes_per_line );

ximg->byte_order = LSBFirst;

/* write the XImage to a Pixmap for displaying on a widget */
XPutImage( dpy, icon_pixmap, gc, ximg, 0, 0,
(unsigned int)x_off, (unsigned int)y_off, icon_w, icon_h );

/* to save it to an XPM file you need the Xpm library and would first */
/* set up XpmAtrributes and then call XpmWriteFileFromPixmap(... ) */

return( &icon_pixmap );
}


As a side note, my iconbar app is really coming along. I have worked out a method for getting the application pixmaps that even the X Windows gurus said couldn't be done! I hope to have an alpha test version out in less than a week.
I found it! -- I finally figured it out -- when I wasn't even looking anymore!

For YEARS I have had this issue with the gnome/gtk+ apps on my Octane2 with V6 graphics -- problems with applications such as gedit, gftp, gnumeric and abiword.

The little pixmap icons in the menus, tools bars and icon wondow have been missing ! (or worse blacked out).

The same executable , when run via remote login-in from another SGI such as my Octane with SE graphics or an O2 = no problems.

So it had to be the display. Right?

Well... I just figured out what gtk+ is doing (which, by the way, I know nothing about how to program - just X, Xt and Motif)! It calls a little function called get_best_visual (or something like that) and on lower end graphics machines that is a TrueColor visual with 24 bits in each plane.

But , on the Octane2 with Vpro graphics - that is a visual with 30 bits per plane! But the stupid gtk+ application has assumed no machine would ever have more than 24 bits per plane - so it doesn't convert the data.

The result: f**ked up pixmaps!


Now if only I could find a gtk+ savy programmer who could help me patch the libraries.....hmmm.
I've been seriously tied up this week -- but the minute I have some time....

Is the MIPS Pro C++ compiler a pre-requist for this method? I assumed it is and so have been making arrangments to obtain a temporary license.

Thanks again. I'll let you know how it goes next week.
My root window is 24 bit True Color (and so are the gtk apps when I xwininfo)!
It's just the gtk routines that are confusing the Xlib graphic handling routines...I think.

BTW - I'll be away til monday. Pick it up then...
I couldn't wait until moday - I just had to know and... It Works!

This is hugely helpful to me...professionally and personally. I can not thank everyone who helped out enough! (Especially syschuck who guided Neko to the solution with his only two posts to this forum -- now that's quality over quantity) I know I'm not the only one who has struggled with this in the past -- the net is littered with posts going back to IRIX 5.x of folks who have fought with this compile.


squeen: Nekochant.net is the place where all your IRIX dreams come true. I'm not sh*tting you, they really do!

[unpaid testamonial]

Please Neko - make this whopping (34M) package availible in your download section!

Yippee! (...dancing on furniture) :D
INTRODUCTION

I've been working on a small desktop application called iconbar which I hope could become a replacement for the 4dwm's (mwm's) iconbox application. This effort was mostly inspired by finding the Nekochan.net site and performing the Nekochan "transformation" on my desktop. By that I mean: installing a background image, adding aterm transparency, changing the desktop borders, nixieclock, etc. It seem to me a better icon management utility was also required to complete the make over. Another catalyst was a discussion here in the forum that stated that SGI has pretty much given up on it's desktop development. While initially a depressing thought, I also felt empowered by all the knowledgeable folks here who were compiling and writing their own freeware. I also wanted to contribute to this community and help keep IRIX alive.

BACKGROUND

I had some experience with Motif programming, but had no idea how to access the icons of other applications...in fact I didn't quite understand the distinction between the X server and the window manager. I went on a massive web search for info on how to do this and emailed all of the established X gurus, several of which were kind enough to reply, but the universal answer was the icon pixmap of one application cannot be retrieved by another. The one exception to that was Antony Fountain who provide me a sneaky way to intercept the data but I held it in reserve since I felt it was too system intrusive and might put some folks off. So I resorted to doing a cheesy screen capture of the 4dwm icon window in order to get something up and running. (I also tried re-parenting the icon window, but that too was messy). The main draw back to the screen capture approach was that a "quick" minimize of each application was necessary in order to copy the pixmap which induced a "flicker" in each application at startup. By the way, "flicker" and "quick" are relative measures since if depends on the speed of the display's X server and if done too fast resulted in a garbled copy of pixels. Anyway, I had that version running on my machine for a few weeks but felt it was too kludgey for release. What I did learn was that even is this intrusive and unstable state -- the iconbar was nice to have around. Even when it crashed a few times a day, I kept restarting it because I missed the convenience it provided. I hope you all agree.

Meanwhile I got some books on X from the library and concentrated on understanding how a window manager works under X. I learned a ton -- chiefly that a window manager is just like any other X client with one exception: it does substructure redirection on the root window in order to intercept the layout info for the other children of the root window (i.e. all top windows). Unfortunately for me, only ONE client at a time can ask for substructure redirection on a particular window and since I wanted to cooperate with 4dwm not replace it, I thought I was stuck.

Instead I turned to the other source for icon pixmaps that 4dwm uses, the RGB images in /usr/lib/images (actually it first looks in $HOME/.icons). I figure I could force users who cared about the screen capture "flicker" could duplicate the icons' pixmaps manually and place them in one of the search directories. The problem here was how to read SGI's RBG image format. You may have seen my post at http://www.nekochan.net/phpBB2/viewtopic.php?t=738 which details some of my frustration and eventual success -- in short I looked for a conversion library and out of disgust with the C interface of SGI's IFL manually wrote a routine (By the way, I do like the RGB format).

In parallel, my late night reading paid off. I found that the icon pixmap is sent to the window manager one of two ways: as an icon window hint or as a pixmap hint. The O'Reilly X books showed me how to read those hints and I was off! (Actually, so far I've only implemented the latter which seems to be a much more commonly used method -- a notable exception is SGI's mailbox application). I am very proud of have implemented this, precisely because it does what I was told from the beginning could not be done.

An unexpected payoff occurred with the gnome applications that have long given me trouble on my Octane2 with V6 graphics (see http://www.nekochan.net/phpBB2/viewtopic.php?t=761 ) -- the absent/garbled icons are caused by the gnome application telling the window manager that it's icon pixmap has a depth of 30 bits (i.e. the best visual for the system) instead of the correct 24 bits. I could plainly see the numeric difference in the WMHint property run on a system with Vpro graphics versus an older system with SE graphics. Mystery solved but problem not fixed!

One last piece to the story. Motif expert Antony Fountain of "Ask Antony" fame pointed out that the big SGI icons are probably a bit dated in appearance and that today's users would prefer something smaller. I was also thinking along these lines having seen (but not used) the Mac OS X solution. Antony show me how to scale XImages, so the magnification/demagnification of the icons is rightfully credited to him.

DOWNLOAD / INSTALL

I have made a tardist of the alpha test version for use with the IRIX Software Manager. By default it selects a mips4, Motif 2.1 version of the software (I built it under 6.5.20f using the MIPSPro 7.3 C compiler). Folks with machines that predate the R10000 and/or do not have the feature stream with Motif 2.1 loaded can optionally select a mips3, Motif 1.2 binary executable instead.

down load it from: http://www.nekochan.net/wiki/downloads/iconbar-alpha.tardist

After install, just type (with /usr/local/bin in the execute path) iconbar to run, or iconbar -help for a list of options. It's a good idea to turn off the 4dwm iconbox application first which can be done from the toolchest (Desktop->
Customize->Windows->Display Windows Overview[uncheck]).

To use iconbar, bring the pointer down to the 1-pixel thick line at the bottom center of the screen. It should like like this after it pops up:

http://www.nekochan.net/wiki/gallery/album36 ... crn?full=1

You get a pop-up menu by right clicking on an icon.

This is an alpha test version so don't expect too much. I'm hoping a few interested individuals will install this and help me to debug and improve it. I know for a fact that it crashes - I'm just interested in when . I also know that some icons get garbled (see CAVEATS below) just tell me which applications. I'm also VERY interest in how you would like the interface modified.

I'm thinking for now, this thread in the forum is good place to post bugs, issues and ideas and since it is public, might eliminate some duplication of effort.
ROAD MAP

I plan to issue the beta test release with source code, once I've had a chance to clean it up some. Also, the popping up and down of the magnified icon windows needs an overhaul since it clearly is generating too many expose events that slow the whole thing down. Finally, the main engine for finding/removing icons is a search of the root window's descendant tree. This search is triggered by a timer (right now set for 200 ms) but I feel that this is inefficient and CPU costly. It should be X event driven, but that means modifying the default Xt event loop. That is the next project I will probably tackle but it may take some time. I will probably will not have any significant free time to work on this project for at least another month. So don't expect a beta release before then.

Here's a few other idea that I'd like to explore some time in the future:
    - anti-aliasing of the demagnified icon images
    - a mailbox notifier
    - options for the location and size of the bar (not just bottom center)
    - a means of specifying which applications to exclude (e.g. your desktop clock)
    - a means of specifying a preferred sorting (i.e. I like the Mozilla icon in the first slot when it open)
    - variable icon widths
    - a hook into the toolchest
    - some transparency effects
    - multiple desktop (desks) handling (i.e. different bars on different desks)
    - stacking icons vertically that are of the same class (i.e. all the Nedit icons collected together with a pop-up sub-bar)

Let me know what else you all would like to see. After the source is available, perhaps a CVS server could be set up, although I have no idea where or how.

CAVEATS

Iconbar will crash . When it does, you may have to restart the window manger by System->Utilities->Restart Window Manager.
    Multiple windows opening an closing can cause a core dump : Because of the timer driven structure, I believe that window hierarchy data becomes obsolete while the program is trying to use it. It needs better error handling and/or an event driven model as discussed above.

    Icon image garbled : when the program does not find an icon first by searching the Window Manager Pixmap hint, next by searching $HOME/icons directory and last be searching the /usr/lib/images directory -- it defaults to the old screen capture method which only works some of the time. Incidentally, this sequence of searching for the icon image could be changed from the 4dwm default so that the existence of a user icon file over rides the one the application sends to the window manager. I would like some input regarding this design decision - the down side of switching order is the manual (user) maintenance of the icon image file (i.e. updating).

    Animated icons don't : For now, I have ignored the method by which an application supplies an icon window under it control for animation (e.g. SGI mailbox).

    Missing applications : I have explicitly told the program to ignore the following named applications for now: ToolChest, iconbox, iconbar, nixieclock, gr_osview, xeyes, Desks Overview, top, bottom and xbiff.

    Multiple desks : I haven't looked into it's performance with multiple desk at all, it on the to do list.




Sorry about the long message. Thanks and I hope you all find this little utility useful.

-squeen
How nice to get such a quick response. Richard Stallman (GNU) is correct in that the best part of software is sharing it.
Here's a few responses:

lisp:
Two mutually exclusive suggestions for this:
* Only show the icons from the current desktop
* Switch desktop on select


How about a color code for icons on other desks with a toggle on whether or not they are displayed? Also, I was kinda thinking (long term) about some buttons like the gnome bar that switches between the desktops.

I've not really looked at Motif - how hard is it? Are there any good UI designers for it. I've had an idea I've wanted to do for quite a while.


I think Motif is very easy to learn - X designer is a commerial GUI designer, but I've never used it. The best book I've found (almost universally respected) is Douglas Young's The X Window System, Programming and Applications With Xt . Young worked for SGI when he wrote it (and then went on to create Viewkit which I haven't used because of my distaste for C++). By borrowing from the code in the book you'll have working applications that you barely understand in no time (and understanding will also come with time). No other reference besides the man pages will ever be needed for most applications. Later, you might want to go to a lower level and learn Xt and X lib - something I'm just starting to do.

on quit it pulls all the windows running onto the current desktop


Good catch - I really need to spend a bit of time understanding multi-desks and 4dwm.

* There's no option for making popup nonanimated - it's a little juddery for me.
* The black outline round a selected icon impinges onto the desktop when the bar is hidden.
* It seems a little wide - there's a grey space for me on the right hand side.


1) I think the jitter is the same issue vegac is addressing (see below).
2) I'm not sure what you are describing here - can you provide more detail or an image?
3) Yes, the gray space has got to go.


vegac:
dynamic resizing!

When you mouse over an icon it zooms up, that I like...what gets me is that the bar resizes, pushing all the other icons out a bit...

The reasons I'm against this are:
1) Seems like unnecessary work...all those pixmaps have to be moved, redrawn etc
2) If you then try to go to the next icon over, a lot of times you'll go TWO icons over, because you leave your icon, it shrinks the bar back down, and now you're further over than you would have been...it's an issue of trying to hit a moving target so to speak
3) Biggest reason, is it causes slowdown


I agree and this, I suspect, will be the most common complaint (I run it on a top-end machine so it's a bit more tolerable). This is the area that needs the most work. I'm not really happy with the current result. In the short term, if you left-click on an icon to get the menu and turn off magnification, dynamic sizing will go away. However, I am hopeful that a smart resizing routine can be found that solves this problem. At least from what you say, this application is not the only one facing the dilemma.

Next question is, are you going to take this to a further level with integrated pager, clock,etc. or leave it strictly an icon bar and let other programs deal with that other stuff?


I wouldn't be against any of the things you mention. Once it is completely stable, adding features would be next. Once the source code is out there, perhaps others can aide here as well (plugins?). I don't really know how to proceed since this is my first publically released application.
A couple of replies:

lisp:
Not quite - I was reffering to the part where the bar scrolls on and off the screen.


Oh, I understand and that would be simple to do.

Right, pop the bar up, and sweep the mouse across. I get a black square outline around the icon the mouse is over. Now, with an icon outlined, move the mouse quicky up. The icon is still outlined. A few seconds later the bar retracts, but the black outline is high enough up to still be on the screen. Indeed, this time, I can see a thin line of grey appearing on the very bottom line of the screen. Perhaps an invisible window a bit like X2X and X2VNC use may be the way forward?


Yes, right now the app requires a 1-pixel wide windows at the bottom of the screen to monitor for Show/Hide -- this could be changed to a transparent window in the pop-up plane which would eliminate the gray/black line. Also, probably not too hard a change

If you start up the launch program, and then start iconbar, you get:
Code:
**geticon: unable to find Launch icon data...falling back to screen capture!


attributes = 97 x 99
X Error of failed request: BadMatch (invalid parameter attributes)
Major opcode of failed request: 73 (X_GetImage)
Serial number of failed request: 766
Current serial number in output stream: 766


This is a draw back associated with the screen capture mechanism. If the program crashes, leaving the icon window unmapped you can get errors like this. A restart of the window manager will overcome it for now, but an X error handler in the code (or a removel of this fallback method in favor of installing the default icon) should fix it in the beta release.

NauSeuM :
add xclock to the list of things not grabbed

The beta release could easily have a resource file (.iconbarrc?) in which a user can list ignorable apps and some other preferences and/or a command line option.

clicking an icon that is already focused and not minimised should brobably then minimise it ala winxx


I would still want the option of having that raise the window to the top of the stacking order. Maybe a click vs. double click thing.

transparent aterms focused usign the iconbar sometimes get back the odd 'transparent titlebar' behaviour (from having a custom set title) un till unfocused and refocuse


Hmm..It sure does. I don't know what, if anything, I could do about that.

Shtoink:

Would it be feasable to use a zoom feature somewhat like the one used in the Windows Character Map utility? This will let you click or drag the mouse across and enlarge only the selcted item and it overshadows the surounding items until you pass to the next item or click on it again.


Yes. I'd thought of this as a work around and haven't ruled it out, but I was also thinking of having the shrink ratio (currently 75%) customizable in the future. If it were too small, the full size icon could hide its neighbors. I'm hoping that there is a better solution.

My only concern iwth this app is that it has the potential to end up like the tray in Windows. I'm very happy not having a tray anymore and would like it to be more like the Dock in OSX.


I also have a reluctance to make it an application launcher -- if that is what you mean. Could you be more specific on what you think the differences are? I don't have access to a Mac.




This is really great feedback. Keep it coming! BTW a kill -HUP will cause the program to exit normally.
Unfortunately, launch does not misbehave on my devleopement system although I know the current method is prone to these types of errors. If this is a pressing problem for you lisp I could just eliminate the screen grab fallback and instead go directly to the default icon image from /usr/lib/images and post an updated binary.

Also, I have access to an O2 R5K, 195MHz machine. I'll try running it with launch on there. Which variant do you have installed the mips3 or mips4 binary?
I alway seem to be dense when it come to getting these games up and running.
I get:
:abuse.sdl
Added himem block (3072000 bytes)
Memory available : 3071864
Abuse-SDL 0.7.0
Abuse (Version 2.00)
Sound : Disabled (couldn't find the sfx directory)
Specs : main file set to abuse.spe
No network driver, or network driver returned failure
Lisp : 527 symbols defined, 99 system functions, 319 pre-compiled functions
Unable to open filename art/dev.spe for requested item c_mouse1


A little assistance would be much appreciated.
Nope. Appearently I have an aversion to reading instructions. Sorry.
It soubds funny to say this...but my jewels don't shatter into particles. :shock:

Great job. Sounds are fine IMHO.
Hello all and thanks for the great feedback. I just recently moved so have been out of touch for the past half dozen days.

I'll try to respond to a few of the comments:

RageX:

I'd like to see the default IRIX mailbox used, especially if it can be animated on the iconbar.

That was my hope as well - I'll need to reparent the icon window but I think that shouldn't be much trouble.
Options for iconbar location and scale would be great. One thing you may want to look into is Xinerama aware code, so that ppl using 2 screens don't have the iconbar split between them.

I'll need to get framiliar with Xinerama, but that an excellent suggestion.

Exclude icons by dragging them off the bar and onto the desktop &/or through a menu option saved to a .iconbar file.

That was my first thought - I'll have to see if I have time to get it into the beta release.
Lockable icons as well as a few basic sorting options.

What would be some good sorting options? Alphabetical?

I'd prefer that iconbar not be a program launcher. Toolchest does a great job of that.

I agree, my only thought was for an option to have iconbar keep Toolchest "always-on-top" as well as itself.

Consider Handling multiple desks just like iconbox:

This multidesk issue has me a bit puzzled right now - the only indicator can find that determines which desk and application is on is a window property called _XROOMS_APP_NAME, only it doesn't seem to update itself too often. The whole multidesk thing under 4dwn doesn't seem well documented.

Icons can be reordered by dragging.

Definitely.

Clicking on the icon of a open window minimizes it to the bar (for symmetry's sake)

I'd also like a minimize all button.

Iconbar minimum & maximum size constraints.

I was thinking a maximum width (in # of icons) before it switches to additional rows.

Scrollbar/arrow button for when there are more icons than screen space.

Have you tried the multi-row spill over to see if it is well behaved?

Use of a more standard window with a title bar and menu (like ov).
Options to turn off the title bar & menu (like ov).
Cascading menu for controlling options and performing actions (like ov).

What is ov?

Standard right click menu for icons (like iconbox).
Keyboard shortcuts.
Clearer divisions between icons.

Very good suggestions!


Option for auto-hide.
Option for always-on-top.

You can get a menu to toggle these on/off by right clicking on an icon, or am I misunderstanding?

More advanced window management (tile, cascade, fit, snap, etc.)

I not exactly sure what you mean here - management of the top level windows?


directedition

If possible, when animated icons are available, I'd like the option to disable them. Is there a place to get the latest version or source code?


Sounds like a good idea, the more configurable the better. Also, the source will be included with the beta release after some clean up. I think it would be a good idea to GPL it, but I've no experience with the process. (Is there any reason NOT to GPL?)

whiter

just tried it. But it won't work.
Tested both mips3 and mips4 versions. A small grey line appears at the bottom of the screen that appears to suck up all my icons.
But it won't pop-up when I do the mouse over thing.
When I use the -nohide option, it still stays hidden.


This is the most serious bug I think anyone has stumbled on yet. You can try kill -HUP the process and then restarting the window manager -- then running iconbar again. If it continues to misbehave let me know which apps you have open. The beta release will have a debug option for tracking down problems like these, and I'll fix the error with -nohide so that it starts popped-up .


Thanks again everyone for all the great feedback.
This is a seriously cool game. :twisted:
Smooth as butter. (2x R14K, 600MHz)

The stereo sound is also very enjoyable with headphones.
I found a very nice looking 3D light cycle game at http://www.gltron.org/index.php .
There is an IRIX binary for an older version there, and I also compiled it without issue (except no sound) from the latest sources.

Unfortunately, on my system the start menu screen and arena walls don't display. Anyone with a different video setup care to give it a try?

I do get the error when it loads:
loading art
loading artpack 'classic'
libpng warning: Incomplete compressed datastream in iCCP chunk
libpng warning: Profile size field missing from iCCP chunk
libpng warning: Incomplete compressed datastream in iCCP chunk
libpng warning: Profile size field missing from iCCP chunk
libpng warning: Incomplete compressed datastream in iCCP chunk
libpng warning: Profile size field missing from iCCP chunk
libpng warning: Incomplete compressed datastream in iCCP chunk
libpng warning: Profile size field missing from iCCP chunk
libpng warning: Incomplete compressed datastream in iCCP chunk
libpng warning: Profile size field missing from iCCP chunk


http://www.gltron.org/screenshots/4-metaltron.png
What the hell!?

I started it up again to follow your suggestions--and everthing with the video has corrected itself. The menus are back and the arena graphics are great - still no sound.

I get around 50 fps on a dual R14 600Mhz with everything turned on.

Thank you very much vegac for your assistance, I probably would have left it lay otherwise.

I'll try and put together a tardist of version 0.62 shortly.
What setting did you use to get it to work with MIPSPro?
when I use:
setenv CC cc
setenv CFLAGS '-mips4 -O3 -I/usr/freeware/include -L/usr/freeware/lib32'
setenv LDFLAGS '-L/usr/freeware/lib32'

./configure \
--prefix=/usr/local \
--with-local-prefix=/usr/freeware


I get:

checking build system type... mips-sgi-irix6.5
checking host system type... mips-sgi-irix6.5
checking target system type... mips-sgi-irix6.5
checking for a BSD compatible install... /usr/freeware/bin/install -c
checking whether build environment is sane... yes
checking for mawk... no
checking for gawk... gawk
checking whether make sets ${MAKE}... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking for gcc... cc
checking for C compiler default output... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for executable suffix...
checking for object suffix... o
checking whether we are using the GNU C compiler... no
checking whether cc accepts -g... yes
checking for style of include used by make... GNU
checking dependency style of cc... sgi
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking how to run the C preprocessor... cc -E
checking for ranlib... :
checking for sdl-config... /usr/freeware/bin/sdl-config
checking for SDL - version >= 1.1.0... no
*** Could not run SDL test program, checking why...
*** The test program failed to compile or link. See the file config.log for the
*** exact error that occured. This usually means SDL was incorrectly installed
*** or that you have moved SDL since it was installed. In the latter case, you
*** may want to edit the sdl-config script: /usr/freeware/bin/sdl-config
configure: error: SDL is not installed
I use gcombust et al. ( http://freeware.sgi.com ) to burn CDs. It has a check box in the Options GUI for Bootable CD...haven't tried it though.
Haven't had much free time lately...although I've fixed up a few more bugs (including a bad memory leak) -- I hope to get a beta release out sometime around the beginning of Oct.

Thanks for the input!