Help:MouseFocusExample

From Openbox

Revision as of 03:05, 21 May 2007 by DanaJansens (Talk | contribs)

Jump to: navigation, search

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.

<?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>
  <focusLast>yes</focusLast>
  <followMouse>yes</followMouse>
  <focusDelay>200</focusDelay>
  <raiseOnFocus>no</raiseOnFocus>
</focus>

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

<theme>
  <name>Clearlooks</name>
  <titleLayout>NLIMC</titleLayout>
  <titleNumber>yes</titleNumber>
  <!--
      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 -->
  <number>4</number>
  <firstdesk>1</firstdesk>
  <names>
    <name>desktop one</name>
    <name>desktop two</name>
    <name>desktop three</name>
    <name>desktop four</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>
      <execute>kfmclient openProfile filemanagement</execute>
    </action>
  </keybind>
</keyboard>

<mouse>
  <dragThreshold>3</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="Press">
      <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="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>top</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>top</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="Activate"/>
    </mousebind>
    <mousebind button="Middle" action="Press">
      <action name="Activate"/>
    </mousebind>
    <mousebind button="Right" action="Press">
      <action name="Activate"/>
    </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="Left" action="Press">
      <action name="Activate"/>
    </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>

<!-- this section is commented out.. remove this and the ending comment if you
     want to use it -->
<applications>
  <!-- the name or the class can be set, or both. this is used to match
       windows when they appear

       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)"
              class="second element of window's WM_CLASS property (see xprop)"
               role="the window's WM_WINDOW_ROLE property (see xprop)">

    <!-- each element can be left out or set to 'default' to specify to not 
         change that attribute of the window -->

    <decor>yes</decor>

    <shade>no</shade>

    <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 or 'center' to center on screen -->
      <y>200</y>
      <!-- a number 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 -->

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

    <layer>normal</layer>
    <!-- 'above', 'normal', or 'below' -->

    <iconic>no</iconic>

    <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>

    <maximized>true</maximized>
    <!-- 'Horizontal', 'Vertical' or boolean (yes/no/on/off/true/false) -->
  </application>
</applications>
 -->

</openbox_config>
Personal tools