web-dev-qa-db-ja.com

ウィンドウを画面の端にドラッグするためのOpenBoxマウスバインディング

lxde-rc.xmlファイル(~/.config/openbox内)を編集して、MicrosoftWindowsのようにウィンドウスナップを実装できるようにしようとしています。ウィンドウを画面の右端にドラッグすると、最大化されて画面の右半分に表示されます。タイル型ウィンドウを使用したくありませんが、openboxの構成を編集します。キーボードショートカットでこれを行うコードを見つけました:

<!-- Fill left half of desktop -->
<keybind key="C-W-Left">
<action name="Unmaximize"/>
<action name="MoveResizeTo">
<x>0</x>
<y>0</y>
<height>99%</height>
<width>50%</width>
</action>
</keybind>
<!-- Fill right half of desktop -->
<keybind key="C-W-Right">
<action name="Unmaximize"/>
<action name="MoveResizeTo">
<x>-0</x>
<y>0</y>
<height>99%</height>
<width>50%</width>
</action>
</keybind>

私の現在の(そしてデフォルトの)構成では、ウィンドウを画面の端にドラッグすると次のデスクトップに移動するため、構成ファイルにはすでに何らかのバインディングが含まれている必要があります。ただし、デスクトップを切り替える構成ファイル内のアクションは、キーボードショートカットとデスクトップのスクロールによってのみ呼び出されます。

2つの質問があります:

ウィンドウが画面の端にドラッグされたときにアクションを切り替えるマウスバインディングはどのようになりますか。

そのアクションの現在の動作がlxde-rc.xmlで参照されていないのはなぜですか?

前もって感謝します!

5
Julius Naeumann

画面にドラッグするときにアクションを切り替えるためのマウスバインディングEdge:OpenboxにウィンドウのEdgeへのドラッグを検出させる明白な方法はないようです<mousebind>アクションとしての画面の。 behave_screen_Edge in xdotool のように、基本的にホットコーナーを設定し、それらを使用して、既に見つけたOpenboxキーバインドをトリガーするのが最も簡単な場合があります。

Openboxがウィンドウを画面の端にドラッグして他のデスクトップに送信する理由は何ですか?これは<screenEdgeWarpTime>で設定されます。 rc.xmlセクションの<mouse>の例:

  <screenEdgeWarpTime>400</screenEdgeWarpTime>
  <!-- Time before changing desktops when the pointer touches the Edge of the
       screen while moving a window, in milliseconds (1000 = 1 second).
       Set this to 0 to disable warping -->
1
longb4