openbox followMouse essential configuration

Focus-follows-mouse coupled with the disabled Raise-on-focus window property is a mode of operation for a window manager, highly targeted at the professional use, unheard of in the Microsoft Windows world. Yet, it takes some fine configuration tweaks to get it to the prime-time.

LXDE OpenBox is probably the simplest window manager which still supports all the major desktop productivity tricks. But it is simple only on the facade. Under the hood it is so feature-rich that I have been frustrated with certain WM behavior “shortcomings” only due to the lack of my LXDE configuration proficiency.

At the most basic, it only takes two lines to enable true Focus-follows-mouse mode:

<openbox_config xmlns="http://openbox.org/3.4/rc">
  ...
  <focus>
    <followMouse>yes</followMouse>
    <raiseOnFocus>no</raiseOnFocus>
  </focus>
  ...
</openbox_config>

This has served me quite well most of the time. The problems only showed when employing the virtual desktop feature. Switching virtual desktops in LXDE messed up window focusing badly. It’s been so irritating to accidentally close even a semi-important window with Control-W or Alt-F4 just because it got the focus unexpectedly after returning from a different virtual desktop!

Today I have discovered two more openbox/lxde-rc.xml configuration options putting an end to those frustrations.

<focus>
    <followMouse>yes</followMouse>
    <raiseOnFocus>no</raiseOnFocus>
    <focusLast>no</focusLast>
    <underMouse>yes</underMouse>
</focus>

And to complete the openbox setup perfectly (at least for today), I have added four more lines to maximize screen real estate while using the most used app – Firefox:

<applications>
  <application title="Mozilla Firefox">
    <decor>no</decor>
    <maximized>Vertical</maximized>
  </application>
</applications>

You could use

  <application class="Firefox">

to “undecorate” (remove window title and window frame) and vertically maximize all newly created Firefox-class windows, including Tor Browser’s.