Can Fvwm flash the gnome-panel windowlist (taskbar) buttons?

The effect I’m trying to get is that when a client updates it’s window display with new or changed information/images, the “taskbar button” flashes/blinks/changes colors/or something visual that indicates which window has the new activity or new information.

Examples: When an IM chat window receives a new message, when an iconified or background web-browser receives a remote command to open a new page/tab, or when a console window receives new printed information while in the background (such as while running ‘tail -f /var/log/syslog’ or something to that effect).

The reason I’m asking specifically about the gnome-panel windowlist buttons is because I’m pretty sure neither FvwmTaskbar or FvwmIconMan has anything close to this functionality. But the gnome-panel window list “seems” to be able to do this.

Under Metacity, if I run the command 'opera google.com’ while a running Opera window is either in the background or iconified, the gnome-panel taskbar button for Opera will start flashing. Doing the same thing using Fvwm as the window manager causes either 1) the Opera window to be raised (but not focused) if it is not iconified, or 2) the Opera window’s taskbar entry title to be changed, without deiconifying or raising the Opera window.

The ideal solution (so to speak) I’m looking for is to use FvwmEvent to listen for a “window updated” event, and to have FvwmEvent then send gnome-panel whatever information it needs to flash that particular taskbar button. But I don’t know how to do this, or if it’s even possible to do.

Another idea would be to use FvwmEvent to listen for a “window updated” event, and then simply do “something” to indicate which window has new activity. It doesn’t need to be anything as eye-candy rich as flashing the gnome-panel taskbar. Changing the border or taskbar colorset to a different colorset, or to a flashing colorset (via a schedule command that changes a given colorset at a given rate), or even to update a FvwmScript window with the titlebar name of the window with new activity would do the job as well. Anything so that when I sit down to the computer after getting up to get a drink, I can look at the screen and immediately see that there’s a window with new activity.

Of course, this all assumes there’s a “window updated” event that can be listened for. Is there anything like this?

I know that Fvwm has a function called “UrgencyFunc” that can be used to script events that happen when a client specifically sets the urgent wm hint. I know there are some programs that use urgency like this (Gaim I think is one that uses the urgency flag on IM windows with new activity), but most programs would never set this flag by default simply because the window was updated (as they shouldn’t, I’m sure).

Anyone have thoughts or suggestions? Other than “Go back to using Windows”, that is. That’s the last resort option that I’m trying to weasel my way out of, after all.

The problem with your examples above is that there’s no required or consitent feedback that need ever be generated from the application to say that it is doing something, so it’s very difficult to determine which events to listen for.

You’re quite right, it doesn’t. The only thing you can really do is to flash a different colorset for the window on and off.

For some events it will be – but would gnome-panel have any means to be told information? You might have luck with events such as: configure_window and visible_name, depending on what you need/want to do.

See my last statement above.

It depends what the application does, as to whether or not it generates the correct event that FvwmEvent can handle. Again, you might want to look at configure_window and visible_name for some of them. But if they’re internal changes within the application (that set various hints, for instance) then that’s not as easy to do.

Hmm? The use of Urgency is pretty limited, given that the ICCCM says that the window manager has to make sure it does all it can to get the user to realise they have to look at that window. Not all applications use it.

– Thomas Adam

Right. What I’m guessing is that I’m going to have to sit down with each application that I want to do this with, watch it, play with it, figure out what kind of events/feedback it gives (if any) when it updates it’s window, then use that to write an Fvwm configuration that does what I want.

That would be plenty functional enough. Even if I have to keep the windows stacked carefully so I’ll see the colorset change/flash, that’d be fine. I’m only going to need this to happen while I’m doing certain specific things with specific applications, such as using an IM client or a MUCK client while writing in a word processor, and if I have to put some forethought into making it work correctly, then by golly that’s what I’ll do.

Okay, so what would be the best way to watch for those events? Is there a program I can run that will show me Fvwm events that are happening in real time? Or will I need to setup FvwmEvent to watch a specific application and respond to events by playing a sound, and then sit down and play with the application and FvwmEvent configuration to figure out which event happens when the window is updated, if any?

I would just setup FvwmEvent on the events I mentioned to you first of all. You can use:

DestroyModuleConfig FE:*
*FE: Cmd Echo
*FE: visible_name "Name changed...."

Module FvwmEvent FE

Any output is then logged to (typically) ~/.xsession-errors if you have told FVWM to log there, of course. Another thing I would suggest is that you “xev” on the given application and see what that tells you.

– Thomas Adam

I’ll give 'er a shot. Thanks for the help!