You are not logged in.

#1 2020-06-18 06:46:15

mkru
Member
Registered: 2019-12-21
Posts: 5

OpenBox and CSD applications

I have installed OpenBox and configured some mouse tiling bindings (example):

    <context name="TRCorner">
      <mousebind button="Left" action="Release">
        <action name="Unmaximize"/>
        <action name="MoveResizeTo">
          <x>-0</x>
          <y>0</y>
          <height>50%</height>
          <width>50%</width>
        </action>
      </mousebind>
    </context>

The problem is, that these bindings do not work in case of CSD applications, such as evince.
What is interesting, is the fact, that tiling for CSD applications works in case of keybindings (example):

    <keybind key="W-S-l">
      <action name="Unmaximize"/>
      <action name="MoveResizeTo">
        <x>-0</x>
        <y>0</y>
        <height>50%</height>
        <width>50%</width>
      </action>
    </keybind>

Does anyone know how to fix this issue?
I know it can be fixed by using gtk3-nocsd, however I would prefer some solution based on OpenBox (or Application) configuration.

Offline

#2 2020-06-18 07:11:29

seth
Member
Registered: 2012-09-03
Posts: 51,213

Re: OpenBox and CSD applications

Does anyone know how to fix this issue?

Not.

The WM doesn't decorate the window, therefore it doesn't nor has the ability to process mouse events. Those are handled by client *only*, so if you want to alter the behavior, you've to configure the client or its toolkit.
A theoretic solution was for the WM to slap an input-only border around the window - but I don't know whether openbox can do that or is willing to pander to CSD-clients that much.
If you handle CSDs locally with some rules, remove the titlebar but keep the frame. Alternatively use the alt+rmb resize (see below)

The keybindings work because they're global shortcuts. Openbox receives them no matter what, looks for the active client and then resizes that client. There's simply no need for a decoration here.
Likewise the alt+rmb resize: openbox will intercept those modified mouseclicks (the client doesn't see them) and starts the interactive resize.
Obviously the WM cannot reasonably intercept unmodified mouseclicks (most clients use them for something important…)

Offline

Board footer

Powered by FluxBB