Help:MouseFocusExample

From Openbox

(Difference between revisions)
Jump to: navigation, search
(New page: The following is an example <code>rc.xml</code> (which would be placed in <code>~/.config/openbox/rc.xml</code> for people who use focus-follows-mouse. The default configuration is geared...)
 
(Alt-right press should not raise, similar to alt-left press.)
 
(15 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
The following is an example <code>rc.xml</code> (which would be placed in <code>~/.config/openbox/rc.xml</code> for people who use focus-follows-mouse.  The default configuration is geared towards a click-to-focus model.  If you use focus-follows-mouse, this example may be helpful fo setting up your bindings, or you could use it as a template and edit it to your liking.
 
The following is an example <code>rc.xml</code> (which would be placed in <code>~/.config/openbox/rc.xml</code> for people who use focus-follows-mouse.  The default configuration is geared towards a click-to-focus model.  If you use focus-follows-mouse, this example may be helpful fo setting up your bindings, or you could use it as a template and edit it to your liking.
 +
 +
Note that it removes the Raise action when clicking in the Client context, and moves the Raise action from the Alt-Click Press to Click context, so that windows can be moved without being raised.
  
 
<code><pre>
 
<code><pre>
Line 16: Line 18:
 
<focus>
 
<focus>
 
   <focusNew>yes</focusNew>
 
   <focusNew>yes</focusNew>
   <focusLast>yes</focusLast>
+
   <!-- always try to focus new windows when they appear. other rules do
 +
      apply -->
 
   <followMouse>yes</followMouse>
 
   <followMouse>yes</followMouse>
 +
  <!-- move focus to a window when you move the mouse into it -->
 +
  <focusLast>no</focusLast>
 +
  <!-- focus the last used window when changing desktops, instead of the one
 +
      under the mouse pointer. when followMouse is enabled -->
 +
  <underMouse>yes</underMouse>
 +
  <!-- move focus under the mouse, even when the mouse is not moving -->
 
   <focusDelay>200</focusDelay>
 
   <focusDelay>200</focusDelay>
 +
  <!-- when followMouse is enabled, the mouse must be inside the window for
 +
      this many milliseconds (1000 = 1 sec) before moving focus to it -->
 
   <raiseOnFocus>no</raiseOnFocus>
 
   <raiseOnFocus>no</raiseOnFocus>
 +
  <!-- when followMouse is enabled, and a window is given focus by moving the
 +
      mouse into it, also raise the window -->
 
</focus>
 
</focus>
  
Line 30: Line 43:
 
   <name>Clearlooks</name>
 
   <name>Clearlooks</name>
 
   <titleLayout>NLIMC</titleLayout>
 
   <titleLayout>NLIMC</titleLayout>
  <titleNumber>yes</titleNumber>
 
 
   <!--
 
   <!--
 
       avaible characters are NDSLIMC, each can occur at most once.
 
       avaible characters are NDSLIMC, each can occur at most once.
Line 92: Line 104:
 
<desktops>
 
<desktops>
 
   <!-- this stuff is only used at startup, pagers allow you to change them
 
   <!-- this stuff is only used at startup, pagers allow you to change them
       during a session -->
+
       during a session
 +
 
 +
      these are default values to use when other ones are not already set
 +
      by other applications, or saved in your session
 +
 
 +
      use obconf if you want to change these without having to log out
 +
      and back in -->
 
   <number>4</number>
 
   <number>4</number>
 
   <firstdesk>1</firstdesk>
 
   <firstdesk>1</firstdesk>
 
   <names>
 
   <names>
     <name>desktop one</name>
+
     <!-- set names up here if you want to, like this:
     <name>desktop two</name>
+
     <name>desktop 1</name>
     <name>desktop three</name>
+
     <name>desktop 2</name>
     <name>desktop four</name>
+
     -->
 
   </names>
 
   </names>
 
</desktops>
 
</desktops>
Line 205: Line 223:
 
         <name>Konqueror</name>
 
         <name>Konqueror</name>
 
       </startupnotify>
 
       </startupnotify>
       <execute>kfmclient openProfile filemanagement</execute>
+
       <command>kfmclient openProfile filemanagement</command>
 
     </action>
 
     </action>
 
   </keybind>
 
   </keybind>
Line 211: Line 229:
  
 
<mouse>
 
<mouse>
   <dragThreshold>3</dragThreshold>
+
   <dragThreshold>8</dragThreshold>
 
   <!-- number of pixels the mouse must move before a drag begins -->
 
   <!-- number of pixels the mouse must move before a drag begins -->
 
   <doubleClickTime>200</doubleClickTime>
 
   <doubleClickTime>200</doubleClickTime>
Line 230: Line 248:
 
       <action name="Focus"/>
 
       <action name="Focus"/>
 
     </mousebind>
 
     </mousebind>
     <mousebind button="A-Right" action="Press">
+
     <mousebind button="A-Right" action="Click">
 
       <action name="Raise"/>
 
       <action name="Raise"/>
 
     </mousebind>
 
     </mousebind>
Line 246: Line 264:
 
     </mousebind>
 
     </mousebind>
 
     <mousebind button="A-Down" action="Click">
 
     <mousebind button="A-Down" action="Click">
 +
      <action name="DesktopNext"/>
 +
    </mousebind>
 +
    <mousebind button="C-A-Up" action="Click">
 +
      <action name="DesktopPrevious"/>
 +
    </mousebind>
 +
    <mousebind button="C-A-Down" action="Click">
 
       <action name="DesktopNext"/>
 
       <action name="DesktopNext"/>
 
     </mousebind>
 
     </mousebind>
Line 308: Line 332:
 
     </mousebind>
 
     </mousebind>
 
     <mousebind button="Left" action="Drag">
 
     <mousebind button="Left" action="Drag">
       <action name="Resize"><edge>top</edge></action>
+
       <action name="Resize"><edge>left</edge></action>
 
     </mousebind>
 
     </mousebind>
 
   </context>
 
   </context>
Line 320: Line 344:
 
     </mousebind>
 
     </mousebind>
 
     <mousebind button="Left" action="Drag">
 
     <mousebind button="Left" action="Drag">
       <action name="Resize"><edge>top</edge></action>
+
       <action name="Resize"><edge>right</edge></action>
 
     </mousebind>
 
     </mousebind>
 
   </context>
 
   </context>
Line 396: Line 420:
 
   <context name="Client">
 
   <context name="Client">
 
     <mousebind button="Left" action="Press">
 
     <mousebind button="Left" action="Press">
       <action name="Activate"/>
+
       <action name="Focus"/>
 
     </mousebind>
 
     </mousebind>
 
     <mousebind button="Middle" action="Press">
 
     <mousebind button="Middle" action="Press">
       <action name="Activate"/>
+
       <action name="Focus"/>
 
     </mousebind>
 
     </mousebind>
 
     <mousebind button="Right" action="Press">
 
     <mousebind button="Right" action="Press">
       <action name="Activate"/>
+
       <action name="Focus"/>
 
     </mousebind>
 
     </mousebind>
 
   </context>
 
   </context>
Line 486: Line 510:
 
     </mousebind>
 
     </mousebind>
 
     <mousebind button="A-Down" action="Press">
 
     <mousebind button="A-Down" action="Press">
 +
      <action name="DesktopNext"/>
 +
    </mousebind>
 +
    <mousebind button="C-A-Up" action="Press">
 +
      <action name="DesktopPrevious"/>
 +
    </mousebind>
 +
    <mousebind button="C-A-Down" action="Press">
 
       <action name="DesktopNext"/>
 
       <action name="DesktopNext"/>
 
     </mousebind>
 
     </mousebind>
  
 
     <mousebind button="Left" action="Press">
 
     <mousebind button="Left" action="Press">
       <action name="Activate"/>
+
       <action name="Focus"/>
 +
    </mousebind>
 +
    <mousebind button="Right" action="Press">
 +
      <action name="Focus"/>
 
     </mousebind>
 
     </mousebind>
 
   </context>
 
   </context>
Line 532: Line 565:
 
</menu>
 
</menu>
  
<!-- this section is commented out.. remove this and the ending comment if you
 
    want to use it -->
 
 
<applications>
 
<applications>
  <!-- the name or the class can be set, or both. this is used to match
+
<!--
      windows when they appear
+
  # this is an example with comments through out. use these to make your
 +
  # own rules, but without the comments of course.
  
      role can optionally be set, and only as much as you provide will be
 
      checked to see if it matches, eg. if you set role="abc" and the window's
 
      role is actually "abcde" it would match.
 
-->
 
 
   <application name="first element of window's WM_CLASS property (see xprop)"
 
   <application name="first element of window's WM_CLASS property (see xprop)"
 
               class="second element of window's WM_CLASS property (see xprop)"
 
               class="second element of window's WM_CLASS property (see xprop)"
 
               role="the window's WM_WINDOW_ROLE property (see xprop)">
 
               role="the window's WM_WINDOW_ROLE property (see xprop)">
 +
  # the name or the class can be set, or both. this is used to match
 +
  # windows when they appear. role can optionally be set as well, to
 +
  # further restrict your matches.
  
     <!-- each element can be left out or set to 'default' to specify to not  
+
  # the name, class, and role use simple wildcard matching such as those
        change that attribute of the window -->
+
  # used by a shell. you can use * to match any characters and ? to match
 +
  # any single character.
 +
 
 +
  # when multiple rules match a window, they will all be applied, in the
 +
  # order that they appear in this list
 +
 
 +
 
 +
     # each element can be left out or set to 'default' to specify to not  
 +
    # change that attribute of the window
  
 
     <decor>yes</decor>
 
     <decor>yes</decor>
 +
    # enable or disable window decorations
  
 
     <shade>no</shade>
 
     <shade>no</shade>
 +
    # make the window shaded when it appears, or not
  
 
     <position>
 
     <position>
       <!-- the position is only used if both an x and y coordinate are provided
+
       # the position is only used if both an x and y coordinate are provided
          (and not set to 'default') -->
+
      # (and not set to 'default')
 
       <x>center</x>
 
       <x>center</x>
       <!-- a number or 'center' to center on screen -->
+
       # a number like 50, or 'center' to center on screen
 
       <y>200</y>
 
       <y>200</y>
       <!-- a number or 'center' to center on screen -->
+
       # a number like 50, or 'center' to center on screen
 
       <monitor>1</monitor>
 
       <monitor>1</monitor>
       <!-- specifies the monitor in a xinerama setup.
+
       # specifies the monitor in a xinerama setup.
          1 is the first head, or 'mouse' for wherever the mouse is -->
+
      # 1 is the first head, or 'mouse' for wherever the mouse is
 
     </position>
 
     </position>
  
 
     <focus>yes</focus>
 
     <focus>yes</focus>
     <!-- if the window should try be given focus when it appears -->
+
     # if the window should try be given focus when it appears. if this is set
 +
    # to yes it doesn't guarantee the window will be given focus. some
 +
    # restrictions may apply, but Openbox will try to
  
 
     <desktop>1</desktop>
 
     <desktop>1</desktop>
     <!-- 1 is the first desktop, 'all' for all desktops -->
+
     # 1 is the first desktop, 'all' for all desktops
  
 
     <layer>normal</layer>
 
     <layer>normal</layer>
     <!-- 'above', 'normal', or 'below' -->
+
     # 'above', 'normal', or 'below'
  
 
     <iconic>no</iconic>
 
     <iconic>no</iconic>
 +
    # make the window iconified when it appears, or not
  
 
     <skip_pager>no</skip_pager>
 
     <skip_pager>no</skip_pager>
     <!-- asks to not be shown in pagers -->
+
     # asks to not be shown in pagers
  
 
     <skip_taskbar>no</skip_taskbar>
 
     <skip_taskbar>no</skip_taskbar>
     <!-- asks to not be shown in taskbars. window cycling actions will also
+
     # asks to not be shown in taskbars. window cycling actions will also
        skip past such windows -->
+
    # skip past such windows
  
 
     <fullscreen>yes</fullscreen>
 
     <fullscreen>yes</fullscreen>
 +
    # make the window in fullscreen mode when it appears
  
 
     <maximized>true</maximized>
 
     <maximized>true</maximized>
     <!-- 'Horizontal', 'Vertical' or boolean (yes/no/on/off/true/false) -->
+
     # 'Horizontal', 'Vertical' or boolean (yes/no)
 
   </application>
 
   </application>
 +
 +
  # end of the example
 +
-->
 
</applications>
 
</applications>
-->
 
  
 
</openbox_config>
 
</openbox_config>
 
</pre></code>
 
</pre></code>

Latest revision as of 12:59, 2 April 2015

The following is an example rc.xml (which would be placed in ~/.config/openbox/rc.xml for people who use focus-follows-mouse. The default configuration is geared towards a click-to-focus model. If you use focus-follows-mouse, this example may be helpful fo setting up your bindings, or you could use it as a template and edit it to your liking.

Note that it removes the Raise action when clicking in the Client context, and moves the Raise action from the Alt-Click Press to Click context, so that windows can be moved without being raised.

<?xml version="1.0" encoding="UTF-8"?>

<!-- Do not edit this file, it will be overwritten on install.
        Copy the file to $HOME/.config/openbox/ instead. -->

<openbox_config xmlns="http://openbox.org/3.4/rc">

<resistance>
  <strength>10</strength>
  <screen_edge_strength>20</screen_edge_strength>
</resistance>

<focus>
  <focusNew>yes</focusNew>
  <!-- always try to focus new windows when they appear. other rules do
       apply -->
  <followMouse>yes</followMouse>
  <!-- move focus to a window when you move the mouse into it -->
  <focusLast>no</focusLast>
  <!-- focus the last used window when changing desktops, instead of the one
       under the mouse pointer. when followMouse is enabled -->
  <underMouse>yes</underMouse>
  <!-- move focus under the mouse, even when the mouse is not moving -->
  <focusDelay>200</focusDelay>
  <!-- when followMouse is enabled, the mouse must be inside the window for
       this many milliseconds (1000 = 1 sec) before moving focus to it -->
  <raiseOnFocus>no</raiseOnFocus>
  <!-- when followMouse is enabled, and a window is given focus by moving the
       mouse into it, also raise the window -->
</focus>

<placement>
  <policy>Smart</policy>
  <!-- 'Smart' or 'UnderMouse' -->
</placement>

<theme>
  <name>Clearlooks</name>
  <titleLayout>NLIMC</titleLayout>
  <!--
      avaible characters are NDSLIMC, each can occur at most once.
      N: window icon
      L: window label (AKA title).
      I: iconify
      M: maximize
      C: close
      S: shade (roll up/down)
      D: omnipresent (on all desktops).
  -->
  <keepBorder>yes</keepBorder>
  <animateIconify>yes</animateIconify>
  <font place="ActiveWindow">
    <name>sans</name>
    <size>8</size>
    <!-- font size in points -->
    <weight>bold</weight>
    <!-- 'bold' or 'normal' -->
    <slant>normal</slant>
    <!-- 'italic' or 'normal' -->
  </font>
  <font place="InactiveWindow">
    <name>sans</name>
    <size>8</size>
    <!-- font size in points -->
    <weight>bold</weight>
    <!-- 'bold' or 'normal' -->
    <slant>normal</slant>
    <!-- 'italic' or 'normal' -->
  </font>
  <font place="MenuHeader">
    <name>sans</name>
    <size>9</size>
    <!-- font size in points -->
    <weight>normal</weight>
    <!-- 'bold' or 'normal' -->
    <slant>normal</slant>
    <!-- 'italic' or 'normal' -->
  </font>
  <font place="MenuItem">
    <name>sans</name>
    <size>9</size>
    <!-- font size in points -->
    <weight>normal</weight>
    <!-- 'bold' or 'normal' -->
    <slant>normal</slant>
    <!-- 'italic' or 'normal' -->
  </font>
  <font place="OnScreenDisplay">
    <name>sans</name>
    <size>9</size>
    <!-- font size in points -->
    <weight>bold</weight>
    <!-- 'bold' or 'normal' -->
    <slant>normal</slant>
    <!-- 'italic' or 'normal' -->
  </font>
</theme>

<desktops>
  <!-- this stuff is only used at startup, pagers allow you to change them
       during a session

       these are default values to use when other ones are not already set
       by other applications, or saved in your session

       use obconf if you want to change these without having to log out
       and back in -->
  <number>4</number>
  <firstdesk>1</firstdesk>
  <names>
    <!-- set names up here if you want to, like this:
    <name>desktop 1</name>
    <name>desktop 2</name>
    -->
  </names>
</desktops>

<resize>
  <drawContents>yes</drawContents>
  <popupShow>Nonpixel</popupShow>
  <!-- 'Always', 'Never', or 'Nonpixel' (xterms and such) -->
  <popupPosition>Center</popupPosition>
  <!-- 'Center' or 'Top' -->
</resize>

<dock>
  <position>TopLeft</position>
  <!-- (Top|Bottom)(Left|Right|)|Top|Bottom|Left|Right|Floating -->
  <floatingX>0</floatingX>
  <floatingY>0</floatingY>
  <noStrut>no</noStrut>
  <stacking>Above</stacking>
  <!-- 'Above', 'Normal', or 'Below' -->
  <direction>Vertical</direction>
  <!-- 'Vertical' or 'Horizontal' -->
  <autoHide>no</autoHide>
  <hideDelay>300</hideDelay>
  <!-- in milliseconds (1000 = 1 second) -->
  <showDelay>300</showDelay>
  <!-- in milliseconds (1000 = 1 second) -->
  <moveButton>Middle</moveButton>
  <!-- 'Left', 'Middle', 'Right' -->
</dock>

<keyboard>
  <chainQuitKey>C-g</chainQuitKey>

  <!-- Keybindings for desktop switching -->
  <keybind key="C-A-Left">
    <action name="DesktopLeft"><wrap>no</wrap></action>
  </keybind>
  <keybind key="C-A-Right">
    <action name="DesktopRight"><wrap>no</wrap></action>
  </keybind>
  <keybind key="C-A-Up">
    <action name="DesktopUp"><wrap>no</wrap></action>
  </keybind>
  <keybind key="C-A-Down">
    <action name="DesktopDown"><wrap>no</wrap></action>
  </keybind>
  <keybind key="S-A-Left">
    <action name="SendToDesktopLeft"><wrap>no</wrap></action>
  </keybind>
  <keybind key="S-A-Right">
    <action name="SendToDesktopRight"><wrap>no</wrap></action>
  </keybind>
  <keybind key="S-A-Up">
    <action name="SendToDesktopUp"><wrap>no</wrap></action>
  </keybind>
  <keybind key="S-A-Down">
    <action name="SendToDesktopDown"><wrap>no</wrap></action>
  </keybind>
  <keybind key="W-F1">
    <action name="Desktop"><desktop>1</desktop></action>
  </keybind>
  <keybind key="W-F2">
    <action name="Desktop"><desktop>2</desktop></action>
  </keybind>
  <keybind key="W-F3">
    <action name="Desktop"><desktop>3</desktop></action>
  </keybind>
  <keybind key="W-F4">
    <action name="Desktop"><desktop>4</desktop></action>
  </keybind>
  <keybind key="W-d">
    <action name="ToggleShowDesktop"/>
  </keybind>

  <!-- Keybindings for windows -->
  <keybind key="A-F4">
    <action name="Close"/>
  </keybind>
  <keybind key="A-Escape">
    <action name="Lower"/>
  </keybind>
  <keybind key="A-space">
    <action name="ShowMenu"><menu>client-menu</menu></action>
  </keybind>

  <!-- Keybindings for window switching -->
  <keybind key="A-Tab">
    <action name="NextWindow"/>
  </keybind>
  <keybind key="A-S-Tab">
    <action name="PreviousWindow"/>
  </keybind>
  <keybind key="C-A-Tab">
    <action name="NextWindow">
      <panels>yes</panels><desktop>yes</desktop>
    </action>
  </keybind>

  <!-- Keybindings for running applications -->
  <keybind key="W-e">
    <action name="Execute">
      <startupnotify>
        <enabled>true</enabled>
        <name>Konqueror</name>
      </startupnotify>
      <command>kfmclient openProfile filemanagement</command>
    </action>
  </keybind>
</keyboard>

<mouse>
  <dragThreshold>8</dragThreshold>
  <!-- number of pixels the mouse must move before a drag begins -->
  <doubleClickTime>200</doubleClickTime>
  <!-- in milliseconds (1000 = 1 second) -->

  <context name="Frame">
    <mousebind button="A-Left" action="Press">
      <action name="Focus"/>
    </mousebind>
    <mousebind button="A-Left" action="Click">
      <action name="Raise"/>
    </mousebind>
    <mousebind button="A-Left" action="Drag">
      <action name="Move"/>
    </mousebind>

    <mousebind button="A-Right" action="Press">
      <action name="Focus"/>
    </mousebind>
    <mousebind button="A-Right" action="Click">
      <action name="Raise"/>
    </mousebind>
    <mousebind button="A-Right" action="Drag">
      <action name="Resize"/>
    </mousebind> 

    <mousebind button="A-Middle" action="Press">
      <action name="Focus"/>
      <action name="Lower"/>
    </mousebind>

    <mousebind button="A-Up" action="Click">
      <action name="DesktopPrevious"/>
    </mousebind>
    <mousebind button="A-Down" action="Click">
      <action name="DesktopNext"/>
    </mousebind>
    <mousebind button="C-A-Up" action="Click">
      <action name="DesktopPrevious"/>
    </mousebind>
    <mousebind button="C-A-Down" action="Click">
      <action name="DesktopNext"/>
    </mousebind>
    <mousebind button="A-S-Up" action="Click">
      <action name="SendToDesktopPrevious"/>
    </mousebind>
    <mousebind button="A-S-Down" action="Click">
      <action name="SendToDesktopNext"/>
    </mousebind>
  </context>

  <context name="Titlebar">
    <mousebind button="Left" action="Press">
      <action name="Focus"/>
    </mousebind>
    <mousebind button="Left" action="Click">
      <action name="Raise"/>
    </mousebind>
    <mousebind button="Left" action="Drag">
      <action name="Move"/>
    </mousebind>
    <mousebind button="Left" action="DoubleClick">
      <action name="ToggleMaximizeFull"/>
    </mousebind>

    <mousebind button="Middle" action="Press">
      <action name="Focus"/>
      <action name="Lower"/>
    </mousebind>

    <mousebind button="Up" action="Click">
      <action name="Shade"/>
    </mousebind>
    <mousebind button="Down" action="Click">
      <action name="Unshade"/>
    </mousebind>

    <mousebind button="Right" action="Press">
      <action name="Focus"/>
      <action name="ShowMenu"><menu>client-menu</menu></action>
    </mousebind>
  </context>

  <context name="Top">
    <mousebind button="Left" action="Press">
      <action name="Focus"/>
    </mousebind>
    <mousebind button="Left" action="Click">
      <action name="Raise"/>
    </mousebind>
    <mousebind button="Left" action="Drag">
      <action name="Resize"><edge>top</edge></action>
    </mousebind>
  </context>

  <context name="Left">
    <mousebind button="Left" action="Press">
      <action name="Focus"/>
    </mousebind>
    <mousebind button="Left" action="Click">
      <action name="Raise"/>
    </mousebind>
    <mousebind button="Left" action="Drag">
      <action name="Resize"><edge>left</edge></action>
    </mousebind>
  </context>

  <context name="Right">
    <mousebind button="Left" action="Press">
      <action name="Focus"/>
    </mousebind>
    <mousebind button="Left" action="Click">
      <action name="Raise"/>
    </mousebind>
    <mousebind button="Left" action="Drag">
      <action name="Resize"><edge>right</edge></action>
    </mousebind>
  </context>

  <context name="Handle">
    <mousebind button="Left" action="Press">
      <action name="Focus"/>
    </mousebind>
    <mousebind button="Left" action="Click">
      <action name="Raise"/>
    </mousebind>
    <mousebind button="Left" action="Drag">
      <action name="Resize"><edge>bottom</edge></action>
    </mousebind>

    <mousebind button="Middle" action="Press">
      <action name="Focus"/>
      <action name="Lower"/>
    </mousebind>

    <mousebind button="Right" action="Press">
      <action name="Focus"/>
      <action name="ShowMenu"><menu>client-menu</menu></action>
    </mousebind>
  </context>

  <context name="BLCorner">
    <mousebind button="Left" action="Press">
      <action name="Focus"/>
    </mousebind>
    <mousebind button="Left" action="Click">
      <action name="Raise"/>
    </mousebind>
    <mousebind button="Left" action="Drag">
      <action name="Resize"/>
    </mousebind>
  </context>

  <context name="BRCorner">
    <mousebind button="Left" action="Press">
      <action name="Focus"/>
    </mousebind>
    <mousebind button="Left" action="Click">
      <action name="Raise"/>
    </mousebind>
    <mousebind button="Left" action="Drag">
      <action name="Resize"/>
    </mousebind>
  </context>

  <context name="TLCorner">
    <mousebind button="Left" action="Press">
      <action name="Focus"/>
    </mousebind>
    <mousebind button="Left" action="Click">
      <action name="Raise"/>
    </mousebind>
    <mousebind button="Left" action="Drag">
      <action name="Resize"/>
    </mousebind>
  </context>

  <context name="TRCorner">
    <mousebind button="Left" action="Press">
      <action name="Focus"/>
    </mousebind>
    <mousebind button="Left" action="Click">
      <action name="Raise"/>
    </mousebind>
    <mousebind button="Left" action="Drag">
      <action name="Resize"/>
    </mousebind>
  </context>

  <context name="Client">
    <mousebind button="Left" action="Press">
      <action name="Focus"/>
    </mousebind>
    <mousebind button="Middle" action="Press">
      <action name="Focus"/>
    </mousebind>
    <mousebind button="Right" action="Press">
      <action name="Focus"/>
    </mousebind>
  </context>

  <context name="Icon">
    <mousebind button="Left" action="Press">
      <action name="Focus"/>
      <action name="ShowMenu"><menu>client-menu</menu></action>
    </mousebind>
    <mousebind button="Right" action="Press">
      <action name="Focus"/>
      <action name="ShowMenu"><menu>client-menu</menu></action>
    </mousebind>
  </context>

  <context name="AllDesktops">
    <mousebind button="Left" action="Press">
      <action name="Focus"/>
    </mousebind>
    <mousebind button="Left" action="Click">
      <action name="ToggleOmnipresent"/>
    </mousebind>
  </context>

  <context name="Shade">
    <mousebind button="Left" action="Press">
      <action name="Focus"/>
    </mousebind>
    <mousebind button="Left" action="Click">
      <action name="ToggleShade"/>
    </mousebind>
  </context>

  <context name="Iconify">
    <mousebind button="Left" action="Press">
      <action name="Focus"/>
    </mousebind>
    <mousebind button="Left" action="Click">
      <action name="Iconify"/>
    </mousebind>
  </context>

  <context name="Maximize">
    <mousebind button="Left" action="Press">
      <action name="Focus"/>
    </mousebind>
    <mousebind button="Middle" action="Press">
      <action name="Focus"/>
    </mousebind>
    <mousebind button="Right" action="Press">
      <action name="Focus"/>
    </mousebind>
    <mousebind button="Left" action="Click">
      <action name="ToggleMaximizeFull"/>
    </mousebind>
    <mousebind button="Middle" action="Click">
      <action name="ToggleMaximizeVert"/>
    </mousebind>
    <mousebind button="Right" action="Click">
      <action name="ToggleMaximizeHorz"/>
    </mousebind>
  </context>

  <context name="Close">
    <mousebind button="Left" action="Press">
      <action name="Focus"/>
    </mousebind>
    <mousebind button="Left" action="Click">
      <action name="Close"/>
    </mousebind>
  </context>

  <context name="Desktop">
    <mousebind button="Up" action="Press">
      <action name="DesktopPrevious"/>
    </mousebind>
    <mousebind button="Down" action="Press">
      <action name="DesktopNext"/>
    </mousebind>

    <mousebind button="A-Up" action="Press">
      <action name="DesktopPrevious"/>
    </mousebind>
    <mousebind button="A-Down" action="Press">
      <action name="DesktopNext"/>
    </mousebind>
    <mousebind button="C-A-Up" action="Press">
      <action name="DesktopPrevious"/>
    </mousebind>
    <mousebind button="C-A-Down" action="Press">
      <action name="DesktopNext"/>
    </mousebind>

    <mousebind button="Left" action="Press">
      <action name="Focus"/>
    </mousebind>
    <mousebind button="Right" action="Press">
      <action name="Focus"/>
    </mousebind>
  </context>

  <context name="Root">
    <!-- Menus -->
    <mousebind button="Middle" action="Press">
      <action name="ShowMenu"><menu>client-list-combined-menu</menu></action>
    </mousebind> 
    <mousebind button="Right" action="Press">
      <action name="ShowMenu"><menu>root-menu</menu></action>
    </mousebind>
  </context>

  <context name="MoveResize">
    <mousebind button="Up" action="Press">
      <action name="DesktopPrevious"/>
    </mousebind>
    <mousebind button="Down" action="Press">
      <action name="DesktopNext"/>
    </mousebind>
    <mousebind button="A-Up" action="Press">
      <action name="DesktopPrevious"/>
    </mousebind>
    <mousebind button="A-Down" action="Press">
      <action name="DesktopNext"/>
    </mousebind>
  </context>
</mouse>

<menu>
  <!-- You can specify more than one menu file in here and they are all loaded,
       just don't make menu ids clash or, well, it'll be kind of pointless -->

  <!-- default menu file (or custom one in $HOME/.config/openbox/) -->
  <file>menu.xml</file>
  <hideDelay>200</hideDelay>
  <middle>no</middle>
  <submenuShowDelay>100</submenuShowDelay>
  <applicationIcons>yes</applicationIcons>
</menu>

<applications>
<!--
  # this is an example with comments through out. use these to make your
  # own rules, but without the comments of course.

  <application name="first element of window's WM_CLASS property (see xprop)"
              class="second element of window's WM_CLASS property (see xprop)"
               role="the window's WM_WINDOW_ROLE property (see xprop)">
  # the name or the class can be set, or both. this is used to match
  # windows when they appear. role can optionally be set as well, to
  # further restrict your matches.

  # the name, class, and role use simple wildcard matching such as those
  # used by a shell. you can use * to match any characters and ? to match
  # any single character.

  # when multiple rules match a window, they will all be applied, in the
  # order that they appear in this list


    # each element can be left out or set to 'default' to specify to not 
    # change that attribute of the window

    <decor>yes</decor>
    # enable or disable window decorations

    <shade>no</shade>
    # make the window shaded when it appears, or not

    <position>
      # the position is only used if both an x and y coordinate are provided
      # (and not set to 'default')
      <x>center</x>
      # a number like 50, or 'center' to center on screen
      <y>200</y>
      # a number like 50, or 'center' to center on screen
      <monitor>1</monitor>
      # specifies the monitor in a xinerama setup.
      # 1 is the first head, or 'mouse' for wherever the mouse is
    </position>

    <focus>yes</focus>
    # if the window should try be given focus when it appears. if this is set
    # to yes it doesn't guarantee the window will be given focus. some
    # restrictions may apply, but Openbox will try to

    <desktop>1</desktop>
    # 1 is the first desktop, 'all' for all desktops

    <layer>normal</layer>
    # 'above', 'normal', or 'below'

    <iconic>no</iconic>
    # make the window iconified when it appears, or not

    <skip_pager>no</skip_pager>
    # asks to not be shown in pagers

    <skip_taskbar>no</skip_taskbar>
    # asks to not be shown in taskbars. window cycling actions will also
    # skip past such windows

    <fullscreen>yes</fullscreen>
    # make the window in fullscreen mode when it appears

    <maximized>true</maximized>
    # 'Horizontal', 'Vertical' or boolean (yes/no)
  </application>

  # end of the example
-->
</applications>

</openbox_config>
Personal tools