FVWM tips and config examples
Download my FVWM configuration files here.
Firefox Yubikey/U2F fix
Problem: When having more than one Firefox window open and trying to use Yubikey/U2F authentication, all the other windows will be focused, thus removing focus from the original window, and this causes the U2F interaction to be cancelled. Note: I'm not sure exactly how this happens, but this is an educated guess.
The U2F interaction seemingly will cause all Firefox windows to call UrgencyFunc, which calls Raise and FlipFocus, and thus cause all these windows to remove focus from the original window.
Solution: The following config lines will redefine urgency focus function to remove Raise and FlipFocus:
DestroyFunc UrgencyFunc AddToFunc UrgencyFunc + I Iconify off
Semi-Fix for windows which raises themself on click
I have set up FVWM to not raise windows when clicking on/in them. (To raise/lower windows I click the right mouse button on the window decoration). Some applications will not abide to my setting and will try to raise themself anyway when clicking inside their windows. Virtualbox is one of these, and Dolphin does it sometimes.
Explanation: This happens because the window calls EWMHActivateWindowFunc when clicked. The FVWM man page explains that "When a compliant taskbar asks fvwm to activate a window (typically when you click on a button which represents a window in such a taskbar), then fvwm calls the complex function EWMHActivateWindowFunc". So the EWMHActivateWindowFunc is for some reason called when clicking inside the offending application's window.
Solution: If you don't mind windows not raising when clicking the taskbar, you can remove "Raise" from the EWMHActivateWindowFunc. Below I have made exceptions for Virtualbox and Dolphin, so if the window in question is named "*Oracle VM VirtualBox" or "* — Dolphin", the function will exit and the following line with the "Raise" command will not be executed. This means all windows except Virtualbox and Dolphin will be raised when clicking it's corresponding button in the taskbar. It's not perfect but in my opinion better than the opposite.
DestroyFunc EWMHActivateWindowFunc AddToFunc EWMHActivateWindowFunc + I Iconify Off + I Focus + I ThisWindow ("*Oracle VM VirtualBox") Break + I ThisWindow ("* — Dolphin") Break + I Raise
If you don't use a taskbar, you can of course remove the last three lines.