IRIX and Software

iconbar - Page 2

hm...
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.

(Working on an Octane r12k 300MHz with 6.5.20m installed)
Shall I describe it to you? Or do you want me to get you a box?
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.
squeen wrote:
RageX wrote: 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.

Auto-hide and always-on-top would be nice to have. In fact it would be nice to have these options available for almost every window.

squeen wrote:
RageX wrote: 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.


squeen wrote:
RageX wrote: 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.

Maximize all, tile, cascade, fit, snap (to other windows, to screen edge, to grid) ... all would be cool, but wouldn't one have to delve into 4DWm?

squeen wrote:
RageX wrote: 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?

Ah, no I haven't, didn't know it was there. I've got a big screen (two actually) I'll have to open a bunch of xterms and see how it works.

squeen wrote:
RageX wrote: 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?

Desktop Overview, it could have been given a more inteligible name. I really do love how ov works, simple and does just the right job.

squeen wrote:
RageX wrote: More advanced window management (tile, cascade, fit, snap, etc.)

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

Yeah. Probably requires tweaking of 4DWm. Maybe an SGI engineer will see this and get to thinking ... I often work with mouse focus and autoraise, but I'd still like some tools to juggle windows more efficiently (including sloppy focus). When using Pro/E you must use explicit focus, so these kind of things would be very handy to me.
Squeen wrote: 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.

Well. I have tried those things. I currently have running: a few aterms, swmgr, xmms, konqueror and a few nedit's. When I do an strace I see the folowing:

Code: Select all

BSD_getime(0x7fff2c18)                  = 0
ioctl(3, 0x4004730a, 0x7fff2310)        = 0
ioctl(4, 0x786301, 0x4)                 = 0
ioctl(3, 0x4004730a, 0x7fff2310)        = 0
BSD_getime(0x7fff2878)                  = 0
select(4, [3], [], [], NULL)            = 0 (Timeout)
BSD_getime(0x7fff2c18)                  = 0
ioctl(4, 0x786301, 0x4)                 = 0
read(3, 0x7fff2090, 32)                 = -1 EAGAIN (Resource temporarily unavailable)
select(4, [3], NULL, NULL, NULL)        = 1 (in [3])
read(3, "\1\0\t\276\0\0\0\221\0\0\0?\0\0\0"..., 32) = 32
read(3, "\3\300\0\t\0\200\0\3\0\200\0\4\1"..., 580) = 580
BSD_getime(0x7fff2b60)                  = 0
ioctl(3, 0x4004730a, 0x7fff2310)        = 0
ioctl(3, 0x4004730a, 0x7fff2310)        = 0
BSD_getime(0x7fff2878)                  = 0
select(4, [3], [], [], NULL)            = 1 (in [3])
ioctl(3, 0x4004730a, 0x7fff1e50)        = 0

This repeats constantly, but the "Resource temporarily unavailable" appears when I put the mouse over the small grey line it seems.
Squeen wrote: 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.

Sounds nice. We'll be waiting :D
Shall I describe it to you? Or do you want me to get you a box?
a damn fine piece of work and not had to many problems as yet, in fact only one so far is iconbar just locking and me having to kill it and the programs who icons he had since they don't come back other than that its great!
1995: Real Audio released, allowing users to listen to halting bursts of static in real time.
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!
Squeen, This is one great piece of software, a little slow on my o2, it just seems a little chopy, the only thing that I would like is the ability to turn off the icon resizing when you mouse over it.

thanks.

Benjamin
one you lock the target
two you bait the line
three you slowly spread the net
and four you catch the man

Front 242 Headhunter
Seems fine on my O2
1995: Real Audio released, allowing users to listen to halting bursts of static in real time.
the only thing that I would like is the ability to turn off the icon resizing when you mouse over it.


If you middle or right click on an icon, a menu will appear (hopefully!). Uncheck Magnify Icon.
You can also launch it with the -nomag command line option.

And yes, when I use it on a R5K O2, it is too slow.
My main task now is to speed it up somehow.

Thanks for the feedback.
I apologize for the long delay, but I am ready at last with the beta version for those still interested in trying this out. It was a big effort for me, especially to find some spare time in which to work but it was rewarding -- once again I feel as if I've learn quite a bit more about Xt and Xlib programming.

The main thrust of my effort was stability and speed , since I felt those were the two largest barriers preventing folks from using it daily. To that end, my motto was the following quote from pilot and the author of The Little Prince ,

Antoine-Marie-Roger de Saint-Exupery wrote: You know you've achieved perfection in design, not when you have nothing more to add, but when you have nothing more to take away.


And in accordance with these goals I believed I removed over a third of the original code!
Things I did to improve performance

    * changed the icon widget to low level Core widget class and moved the pixmap into the background, for this reason the beta version will probably look flatter than the alpha -- also the pushed-in-when-maximized look has been lost, but I don't think that's a big deal.

    * changed from the rowcolumn widget class to the "dumb" bulletboard class and wrote my own geometry manager to eliminate the jiggle as the icon magnified and then De-magnified

    * removed a lot of unnecessary communications to the Xserver (I can really program like an idiot sometimes...err...umm... make that most of the time)

    * set the overrideredirect property of the shell and pop up windows to TRUE so that 4dwm completely ignores them (i.e. unmanaged) -- this not only improved performance but also made it so that the iconbar appears on every desktop when multiple desks are used

    * relaxed the condition under which the app re-examined the window hierarchy and looks for new icons (which might be bad in the long run) -- this was the last thing I did and it made a BIG difference

    * misc. error checking for stability

    * fixed a BIG memory leak

The net result IMHO is a much more responsive, stable and usable state for the program -- I hope you'll agree. Since I did almost all of the work on an 195MHz, R5K O2, I think even the older systems will now find performance acceptable.

I also made a few feature changes :

    * the source code is now GPL'd and included in the tardist

    * there is now a lengthy man page

    * hitting <Escape> or <Space> now forces the iconbar to shrink back down to a hidden state immediately

    * there's a whole new slew of user customizable resources, either from the command line or in an X resource file (i.e. .Xdefaults)

    * better handling of Withdrawn icons

    * better retrieval logic for icon pixmaps

    * no longer starts in "hidden" mode

    * cleaner exit (doesn't minimize all apps windows)

    * fixed makefile to build either mips3 (Motif 1.2) or mips4 (Motif 2.1)

    * lots of improved X resource management and defaults ( you can now specify the shrinking factor for the icons and/or the list of applications it ignores )


I would love all of you help finding the bugs that remain - here are the one's I know about:
    The icon images will only display correctly if the default visual is of class TrueColor and depth of 24 bits per pixel. This means changing the /var/X11/xdm/Xservers file to add -class TrueColor -depth 24

    The parsing of the ignoreApps resource string is kludgey and may be non-portable.

    The pop-up of the option menu and exit dialog are memory leaks .

    A possible double free of allocated memory may exist when deleting icons.

    Pointer Button-3 stopping queuing the pop-up menu after the first instance when magnification is disabled. Pressing Button-2 returns functionality.

    On SGI system with VPro graphics (e.g. V6, V8, V12) that have a best visual with a depth greater than 24, the GTK+ applications report in their window manager hint IconPixmapHint field that they have a depth of 30 and contain misaligned data.

    Some application icons are ignored (e.g. gr_osview ).

    The keyboard grab implemented for the <Escape> and <space> quick hide may not always release.


Anyway, here's the download .
http://www.nekochan.net/downloads/iconbar-beta.tardist

Enjoy and please leave me feedback!
My plan is to squash as many bugs as practical and release a 0.1 stable version (maybe set up a home/CVS server for it at source forge). All the other nice features one might imagine I would target for a 0.2 version.
My only two complaints:

* Clicking an icon from a different desktop brings it to the current one. This means it's now on both, and ov has to be run if you want to sort it out after the fact.
* The bar still impinges on the display, even when hidden - I really want to see something like invisible margin window.

I might look into these modification myself, but unfortunately I'm really low on time.
--
lisa
Ok, I just quit iconbar, and it did that annoying minimise thing again. This is spectacularly annoying on a paged desktop system.
--

lisa
Another quick thought - it strikes me you already have code for reading pixmap files, therefore, how difficult would skinning the interface be?

One could render a background image, render the icons over it, and then blit the four corners in and stretch blit the four sides in for both the whole frame and each icon. It'd make things fantastically flexible.

You've also got screen grabbing code - you could use that to grab what was there pre popup, and use it as the basis of a cheap-but-not-as-cheap-as-everyone-elses alpha effect.

Just a few thoughts that spring to mind!
--

lisa
lisp wrote: Ok, I just quit iconbar, and it did that annoying minimise thing again. This is spectacularly annoying on a paged desktop system.


Ok, NiceExit appears to be the routine responsible for this. Out of interest, what happens to window coordinates of windows when they're on a diferent desktop?
--

lisa
Hurray lisp! Thanks for the feedback. I get so tangled up in a project sometimes I can't see the forest for the trees and I really need another's perspective. Also, I was beginning to wonder if all the bugs in the alpha release had turned folk off. I know you've been working long hours and I really appreciate you taking the time to look this over.

I'll try to address some of the issues you raised.


lisp wrote: My only two complaints:

* Clicking an icon from a different desktop brings it to the current one. This means it's now on both, and ov has to be run if you want to sort it out after the fact.


I know the multidesk support is kludgy. I've made a few inqueries as you how 4dwm does it, but I've had no responses. The biggest hurtle right now is just finding a way to telling which desk is the currently active one.

lisp wrote: * The bar still impinges on the display, even when hidden - I really want to see something like invisible margin window.


Yes, you made this comment previously and I've been trying to think of an easy way to accomplish this. I do need some sort of window at the bottom of the screen that triggers the pop-up when a EnterNotify event occurs. Apps like x2vnc seems to have worked this out, so I'll have to dig through their code for a solution -- unless you know of one.

lisp wrote: I might look into these modification myself, but unfortunately I'm really low on time.

Please consider signing up as a developer anyways when I get it going on sourceforge.

lisp wrote: Ok, I just quit iconbar, and it did that annoying minimise thing again. This is spectacularly annoying on a paged desktop system.

Yes. I've been lazy here -- I thought it a bit improved, but more care should be taken. By "paged" do you mean mutil-desk or something else?

lisp wrote: Another quick thought - it strikes me you already have code for reading pixmap files, therefore, how difficult would skinning the interface be?

One could render a background image, render the icons over it, and then blit the four corners in and stretch blit the four sides in for both the whole frame and each icon. It'd make things fantastically flexible.

I applogize for my arcahic vocabular (maybe it's a cross-Atlanic thing :) ), but I don't quite follow "skinning" and "blit". Sounds cool though. My only caveat would be that I will probably concentrate on stablity/bugs/bad bahavior for release 0.1 and then the sky's the limit for features after that.

lisp wrote: You've also got screen grabbing code - you could use that to grab what was there pre popup, and use it as the basis of a cheap-but-not-as-cheap-as-everyone-elses alpha effect.

Yes, I've been thinking of ways to do the transparency/alpha effect. I tried the Xshape extension (i.e. punching small holes in the windows), but it slows things down quite a bit. Are you talking about something like the aterm approach?

lisp wrote: Out of interest, what happens to window coordinates of windows when they're on a diferent desktop?

I'm not sure, but I thought it kinda strange that you could now have two maximized versions of a single apps window (one on each desktop) with different coordinates. Clearly, the window manger is controlling things here, and SGI doesn't seem to have any public documentation on this.

Anyway thanks again. While I run iconbar everyday (and find I can't get by without it anymore), I don't run multi desks too often or multi displays or different visual classes so I tend to miss alot of those pitfalls. I really am very interest in why you folks would/do not want to run this on your desktop, in the hopes of making it more appealing.
squeen wrote: I know the multidesk support is kludgy. I've made a few inqueries as you how 4dwm does it, but I've had no responses. The biggest hurtle right now is just finding a way to telling which desk is the currently active one.


I wonder - does 4Dwm merely hide the window when it's on a different desk, and can this be picked up?


squeen wrote: Yes, you made this comment previously and I've been trying to think of an easy way to accomplish this. I do need some sort of window at the bottom of the screen that triggers the pop-up when a EnterNotify event occurs. Apps like x2vnc seems to have worked this out, so I'll have to dig through their code for a solution -- unless you know of one.


I'm not 100% sure, but I think it merely creates a window that never paints itself.

squeen wrote: Please consider signing up as a developer anyways when I get it going on sourceforge.


Sure, no problem.

squeen wrote: Yes. I've been lazy here -- I thought it a bit improved, but more care should be taken. By "paged" do you mean mutil-desk or something else?


I mean using a desktop pager, like ov, rather than actually having multiple heads. It seems to be the signal handler that's responsible for it.

squeen wrote: I applogize for my arcahic vocabular (maybe it's a cross-Atlanic thing :) ), but I don't quite follow "skinning" and "blit".


Winamp/xmms are examples of programs with skinned UIs - it basically means using bitmaps for the look and feel, rather than hardwired drawing code.

blit derives from BLock Transfer on the PDP-10. These days, it essentially refers to the act of transferring a rectangle of graphics from one piece of memory to another.

squeen wrote: Yes, I've been thinking of ways to do the transparency/alpha effect. I tried the Xshape extension (i.e. punching small holes in the windows), but it slows things down quite a bit. Are you talking about something like the aterm approach?


Yes, but using actual screen data, rather than the background bitmap.
--

lisa
Thanks for the education :D I thought you were making up those term (really!)... I could try taking a stab at letting the borders be customizable pixmaps without too much difficulty. Once again though, I'd probably save that for 0.2 and focus on issues like the mutlidesk stuff for 0.1.

lisp wrote: I'm not 100% sure, but I think it merely creates a window that never paints itself.


I don't like X11 can put this off. Either a window is "mapped" or not. When it's not mapped I don't think it can recieve any events, but I'll look into that.

lisp wrote: It seems to be the signal handler that's responsible for it.

It never occurred to me that a signal might be involved...that's pretty easy to look for.

Also, I think the screen-capture method of transparency would be trival, so I'll definately give that a go.

Thanks again.

BTW, I just found some "bad" behavior when the "no hide" and "always on top" behaviors are enabled, regarding the screen saver. Uggh...
I'm happy to report I've had only three crashes in two weeks on the BETA version :D -- both at the same line of code. I hope this mean that the stability issue can finally be put to bed.

Anyone else have any better/worse experiences to relate?
I jump started the web site, it's at http://iconbar.sourceforge.net/ . I included a couple of links back here. I hope that's alright with you Neko.

Also, I plan to continue announcing the major releases in this forum thread if nobody minds. :)
Love the app! (i just installed it from sources on my O2 IRIX 6.5.16m mpro7313)

But there is a problem with xlock screensavers and password locking.

When i revive the machine and want to enter my password to unlock the screen, the screensaver restarts whenever i enter the first character. At first i was stumped, but then i saw iconbar blitting away at the very bottom. So i killed xlock manually and got my desktop back.

Exactly how one affects another i'm not sure, but try running an iconbar yourself, and set screensaver to lock the screen after one minute to see the effect (hopefully)