fvwmorg/fvwm3

After migration from fvwm2 2.6.8 to fvwm3 1.0.5 Wait, Next no longer works

Closed this issue · 8 comments

I just migrated from fvwm2 2.6.8 (from Debian stable) to fvwm3 1.0.5 which I did a custom backport for.

My old .fvwmrc does work fine except for the following Problem.

I use something like this during startup:

AddToFunc RunMozillaOnSecondDesk
 + I  Exec exec firefox
 + I  Wait *Firefox
 + I  Next (*Firefox) Move +1600p +0p

Using fvwm2 this will move my firefox-window. Using fvwm3 nothing happens.

I don't know if this is just caused by syntax changes in fvwm3 or if this is a bug to be honest.

I tested this and it works just fine, I think you just have an issue matching the correct window. Debian uses firefox-esr, and the class for that is Firefox-esr, so replace *Firefox with Firefox-esr. As for why this isn't matching, it appears you are trying to match the window name, which firefox doesn't set until after it maps the window, so that is why it can't find a window with that name at the instant you map it.

Second you call this function RunMozillaOnSecondDesk, but what you have there won't run it on the second desk, it might move it to the second monitor, if you just want to move it to the second monitor use either MoveToScreen, or use Move screen RANDRNAME 0p 0p to move the window to the next screen. If you really want to run on a second desk, use MoveToDesk.

Note, if you want to build the current git into a debian package, use https://github.com/somiaj/fvwm3-debian/tree/fvwm3-git

Well it did work with 2.6.8 and stopped working after updating fvwm so behaviour has definitely changed.

I actually thought that this would need Window names rather than Class Names but it does not work using the Class-Name (Firefox-esr) instead of the Window Name Wildcard as well.

Regarding your second reply I usually prefer backports of official Debian-Packages rather than some custom ones.

Not sure what is changing then, as it does work here just fine. Use FvwmIdent to double check the class name. What does FvwmIdent say about your firefox window? I'm unsure what on your system isn't allowing fvwm to find the newly mapped firefox window with Wait. Firefox can often be a pain to work with, maybe try a terminal with a custom name to match, can help narrow down if firefox is causing issues.

That link is official, that is the repo used to build the Debian package (see the main branch). The fvwm-git branch has just been updated to build against the current git vs 1.0.5, and will be added to Debian once 1.0.6 is released. This just allows you to run the latest git if you are backporting anyways vs only the release version. Anyways, just a suggestion (I run debian stable with the current git built that way).

Note for testing (so we can also test), if you use the default-config and just put your modifications in $HOME/.fvwm/local.config, it can help narrow down where the issue is. So maybe move your fvwm config out of the way (so the default-config is used), and add your custom function to $HOME/.fvwm/local.config and try using it there from FvwmConsole (that is what I'm testing against), running Debian stable, and it is working for me.

OK, tried this one, same Problem:

AddToFunc RunMozillaOnSecondDesk
 + I  Exec exec xmessage -name Firefox Firefox
 + I  Wait Firefox
 + I  Next (Firefox) Move +4000p +10p

Again, works fine here, are you using this with the default-config?

Note that your use of Move here is probably incorrect, you most likely want MoveToPage if you want to move this window to a different page (note your use of Desk is also incorrect here too, as Pages are not Desks). There is also a StartsOnPage style that better does what you do here.

One thing I do notice is you don't have a DestroyFunc RunMozillaOnSecondDesk to ensure any previous definitions of this function are cleared, could that be causing problems?

Works for me as well. If you can provide additional information, @giggls -- feel free to reopen.