XMMS/Beep window start problem

I just recently switched to FVWM from Openbox and I love it so far. But one thing that is irking me is when I initially load XMMS or Beep Media Player, the main window starts in the top-left corner of the screen, while the equalizer and playlist windows start where I last had them (towards the bottom-left of the screen). Of course, I’d like the main window to be attached to the EQ and playlist windows when I start the app.

I’m asking here because FVWM was the first window manager I’ve had this issue with. Is there some configuration I can use to force the main window to start next to the other windows? I was looking at session management, but I’d rather not enable it just for one/two applications.

Any ideas are appreciated.

XMMS is what is known as a pain in the arse. While it may be a good application, the developers of it feel that XMMS should do everything, and ignore anything the window manager might do to position it. You’ll have noticed a distinct lack of a “-geometry” option to XMMS…

The only way you’re going to get it to work, is to use FvwmEvent to capture XMMS, and shunt it somewhere. So for instance, you might do something like this:

DestroyModuleConfig FvwmEvent-XMMS: *
*FvwmEvent-XMMS:  add_window  FvwmFuncXMMS

What that does, is tell FvwmEvent to watch all windows that are created. Then it will run the function ‘FvwmFuncXMMS’ over it. So in that function we’re now going to place some code to move XMMS somewhere. Just so that you’re aware, FvwmEvent is a powerful module that allows one to look for any number of events for windows. “man fvwmevent” for more information.

So, we can declare the function thus:

DestroyFunc FvwmFunc-XMMS
AddToFunc FvwmFunc-XMMS
+ I ThisWindow ("xmms") Move -0p 0p
+ I ThisWindow ("xmms") MoveToPage 0 1

Thus, this function then says something like this: “If the window is titled ‘xmms’, move it to the top-left corner. Also, if the window is titled ‘xmms’, move it to that specified page on the current desk.” Of course, these options, and the positions of where you put them are entirely configurable.

Furthermore, for this to work, you will need to ensure that you tell Fvwm to load the ‘FvwmEvent’ module. In your ~/.fvwm2rc, you’ll need to add a line like the following to your “StartFunction”, i.e:

+ I FvwmEvent FvwmEvent-XMMS

Hope this helps.

– Thomas Adam

Thanks, Thomas! After customizing the screen position, it works great! Now I know what you mean when you said XMMS is a pain in the arse! FVWM’s geometry window could have saved me a few FVWM restarts…