Merge branch 'backport' into work
[dana/openbox.git] / data / rc.xml
index fa673c8..f223f67 100644 (file)
@@ -3,7 +3,7 @@
 <!-- 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/4.0/rc">
+<openbox_config xmlns="http://openbox.org/3.4/rc">
 
 <resistance>
   <strength>10</strength>
 
 <focus>
   <focusNew>yes</focusNew>
-  <focusLast>yes</focusLast>
+  <!-- always try to focus new windows when they appear. other rules do
+       apply -->
   <followMouse>no</followMouse>
+  <!-- move focus to a window when you move the mouse into it -->
+  <focusLast>yes</focusLast>
+  <!-- focus the last used window when changing desktops, instead of the one
+       under the mouse pointer. when followMouse is enabled -->
+  <underMouse>no</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' -->
+  <center>yes</center>
+  <!-- whether to place windows in the center of the free area found or
+       the top left corner -->
+  <monitor>Any</monitor>
+  <!-- with Smart placement on a multi-monitor system, try to place new windows
+       on: 'Any' - any monitor, 'Mouse' - where the mouse is, 'Active' - where
+       the active window is -->
 </placement>
 
 <theme>
   <name>Clearlooks</name>
   <titleLayout>NLIMC</titleLayout>
-  <titleNumber>yes</titleNumber>
   <!--
-      avaible characters are NDSLIMC, each can occur at most once.
+      available characters are NDSLIMC, each can occur at most once.
       N: window icon
       L: window label (AKA title).
       I: iconify
 
 <desktops>
   <!-- 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>
   <firstdesk>1</firstdesk>
   <names>
-    <name>desktop one</name>
-    <name>desktop two</name>
-    <name>desktop three</name>
-    <name>desktop four</name>
+    <!-- set names up here if you want to, like this:
+    <name>desktop 1</name>
+    <name>desktop 2</name>
+    -->
   </names>
+  <popupTime>875</popupTime>
+  <!-- The number of milliseconds to show the popup for when switching
+       desktops.  Set this to 0 to disable the popup. -->
 </desktops>
 
 <resize>
   <popupShow>Nonpixel</popupShow>
   <!-- 'Always', 'Never', or 'Nonpixel' (xterms and such) -->
   <popupPosition>Center</popupPosition>
-  <!-- 'Center' or 'Top' -->
+  <!-- 'Center', 'Top', or 'Fixed' -->
+  <popupFixedPosition>
+    <!-- these are used if popupPosition is set to 'Fixed' -->
+
+    <x>10</x>
+    <!-- positive number for distance from left edge, negative number for
+         distance from right edge, or 'Center' -->
+    <y>10</y>
+    <!-- positive number for distance from top edge, negative number for
+         distance from bottom edge, or 'Center' -->
+  </popupFixedPosition>
 </resize>
 
+<!-- You can reserve a portion of your screen where windows will not cover when
+     they are maximized, or when they are initially placed.
+     Many programs reserve space automatically, but you can use this in other
+     cases. -->
+<margins>
+  <top>0</top>
+  <bottom>0</bottom>
+  <left>0</left>
+  <right>0</right>
+</margins>
+
 <dock>
   <position>TopLeft</position>
   <!-- (Top|Bottom)(Left|Right|)|Top|Bottom|Left|Right|Floating -->
 
   <!-- Keybindings for desktop switching -->
   <keybind key="C-A-Left">
-    <action name="DesktopLeft"><wrap>no</wrap></action>
+    <action name="GoToDesktop"><to>left</to><wrap>no</wrap></action>
   </keybind>
   <keybind key="C-A-Right">
-    <action name="DesktopRight"><wrap>no</wrap></action>
+    <action name="GoToDesktop"><to>right</to><wrap>no</wrap></action>
   </keybind>
   <keybind key="C-A-Up">
-    <action name="DesktopUp"><wrap>no</wrap></action>
+    <action name="GoToDesktop"><to>up</to><wrap>no</wrap></action>
   </keybind>
   <keybind key="C-A-Down">
-    <action name="DesktopDown"><wrap>no</wrap></action>
+    <action name="GoToDesktop"><to>down</to><wrap>no</wrap></action>
   </keybind>
   <keybind key="S-A-Left">
-    <action name="SendToDesktopLeft"><wrap>no</wrap></action>
+    <action name="SendToDesktop"><to>left</to><wrap>no</wrap></action>
   </keybind>
   <keybind key="S-A-Right">
-    <action name="SendToDesktopRight"><wrap>no</wrap></action>
+    <action name="SendToDesktop"><to>right</to><wrap>no</wrap></action>
   </keybind>
   <keybind key="S-A-Up">
-    <action name="SendToDesktopUp"><wrap>no</wrap></action>
+    <action name="SendToDesktop"><to>up</to><wrap>no</wrap></action>
   </keybind>
   <keybind key="S-A-Down">
-    <action name="SendToDesktopDown"><wrap>no</wrap></action>
+    <action name="SendToDesktop"><to>down</to><wrap>no</wrap></action>
   </keybind>
   <keybind key="W-F1">
-    <action name="Desktop"><desktop>1</desktop></action>
+    <action name="GoToDesktop"><to>1</to></action>
   </keybind>
   <keybind key="W-F2">
-    <action name="Desktop"><desktop>2</desktop></action>
+    <action name="GoToDesktop"><to>2</to></action>
   </keybind>
   <keybind key="W-F3">
-    <action name="Desktop"><desktop>3</desktop></action>
+    <action name="GoToDesktop"><to>3</to></action>
   </keybind>
   <keybind key="W-F4">
-    <action name="Desktop"><desktop>4</desktop></action>
+    <action name="GoToDesktop"><to>4</to></action>
   </keybind>
   <keybind key="W-d">
     <action name="ToggleShowDesktop"/>
 
   <!-- Keybindings for window switching -->
   <keybind key="A-Tab">
-    <action name="NextWindow"/>
+    <action name="NextWindow">
+      <finalactions>
+        <action name="Focus"/>
+        <action name="Raise"/>
+        <action name="Unshade"/>
+      </finalactions>
+    </action>
   </keybind>
   <keybind key="A-S-Tab">
-    <action name="PreviousWindow"/>
+    <action name="PreviousWindow">
+      <finalactions>
+        <action name="Focus"/>
+        <action name="Raise"/>
+        <action name="Unshade"/>
+      </finalactions>
+    </action>
   </keybind>
   <keybind key="C-A-Tab">
     <action name="NextWindow">
       <panels>yes</panels><desktop>yes</desktop>
+      <finalactions>
+        <action name="Focus"/>
+        <action name="Raise"/>
+        <action name="Unshade"/>
+      </finalactions>
     </action>
   </keybind>
 
         <enabled>true</enabled>
         <name>Konqueror</name>
       </startupnotify>
-      <execute>kfmclient openProfile filemanagement</execute>
+      <command>kfmclient openProfile filemanagement</command>
     </action>
   </keybind>
 </keyboard>
 
 <mouse>
-  <dragThreshold>3</dragThreshold>
+  <dragThreshold>8</dragThreshold>
   <!-- number of pixels the mouse must move before a drag begins -->
   <doubleClickTime>200</doubleClickTime>
   <!-- in milliseconds (1000 = 1 second) -->
+  <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 -->
 
   <context name="Frame">
     <mousebind button="A-Left" action="Press">
-      <action name="Activate"/>
+      <action name="Focus"/>
+      <action name="Raise"/>
+    </mousebind>
+    <mousebind button="A-Left" action="Click">
+      <action name="Unshade"/>
     </mousebind>
     <mousebind button="A-Left" action="Drag">
       <action name="Move"/>
     </mousebind>
 
     <mousebind button="A-Right" action="Press">
-      <action name="Activate"/>
+      <action name="Focus"/>
+      <action name="Raise"/>
+      <action name="Unshade"/>
     </mousebind>
     <mousebind button="A-Right" action="Drag">
       <action name="Resize"/>
     </mousebind>
 
     <mousebind button="A-Up" action="Click">
-      <action name="DesktopPrevious"/>
+      <action name="GoToDesktop"><to>previous</to></action>
     </mousebind>
     <mousebind button="A-Down" action="Click">
-      <action name="DesktopNext"/>
+      <action name="GoToDesktop"><to>next</to></action>
+    </mousebind>
+    <mousebind button="C-A-Up" action="Click">
+      <action name="GoToDesktop"><to>previous</to></action>
+    </mousebind>
+    <mousebind button="C-A-Down" action="Click">
+      <action name="GoToDesktop"><to>next</to></action>
     </mousebind>
     <mousebind button="A-S-Up" action="Click">
-      <action name="SendToDesktopPrevious"/>
+      <action name="SendToDesktop"><to>previous</to></action>
     </mousebind>
     <mousebind button="A-S-Down" action="Click">
-      <action name="SendToDesktopNext"/>
+      <action name="SendToDesktop"><to>next</to></action>
     </mousebind>
   </context>
 
   <context name="Titlebar">
     <mousebind button="Left" action="Press">
-      <action name="Activate"/>
+      <action name="Focus"/>
+      <action name="Raise"/>
     </mousebind>
     <mousebind button="Left" action="Drag">
       <action name="Move"/>
     </mousebind>
     <mousebind button="Left" action="DoubleClick">
-      <action name="ToggleMaximizeFull"/>
+      <action name="ToggleMaximize"/>
     </mousebind>
 
     <mousebind button="Middle" action="Press">
     </mousebind>
 
     <mousebind button="Up" action="Click">
-      <action name="Shade"/>
-      <action name="FocusToBottom"/>
-      <action name="Unfocus"/>
+      <action name="if">
+        <shaded>no</shaded>
+        <then>
+          <action name="Shade"/>
+          <action name="FocusToBottom"/>
+          <action name="Unfocus"/>
+          <action name="Lower"/>
+        </then>
+      </action>
     </mousebind>
     <mousebind button="Down" action="Click">
-      <action name="Unshade"/>
+      <action name="if">
+        <shaded>yes</shaded>
+        <then>
+          <action name="Unshade"/>
+          <action name="Raise"/>
+        </then>
+      </action>
     </mousebind>
 
     <mousebind button="Right" action="Press">
-      <action name="Activate"/>
+      <action name="Focus"/>
+      <action name="Raise"/>
       <action name="ShowMenu"><menu>client-menu</menu></action>
     </mousebind>
   </context>
 
   <context name="Top">
     <mousebind button="Left" action="Press">
-      <action name="Activate"/>
+      <action name="Focus"/>
+      <action name="Raise"/>
+      <action name="Unshade"/>
     </mousebind>
     <mousebind button="Left" action="Drag">
       <action name="Resize"><edge>top</edge></action>
 
   <context name="Left">
     <mousebind button="Left" action="Press">
-      <action name="Activate"/>
+      <action name="Focus"/>
+      <action name="Raise"/>
     </mousebind>
     <mousebind button="Left" action="Drag">
       <action name="Resize"><edge>left</edge></action>
 
   <context name="Right">
     <mousebind button="Left" action="Press">
-      <action name="Activate"/>
+      <action name="Focus"/>
+      <action name="Raise"/>
     </mousebind>
     <mousebind button="Left" action="Drag">
       <action name="Resize"><edge>right</edge></action>
 
   <context name="Bottom">
     <mousebind button="Left" action="Press">
-      <action name="Activate"/>
+      <action name="Focus"/>
+      <action name="Raise"/>
     </mousebind>
     <mousebind button="Left" action="Drag">
       <action name="Resize"><edge>bottom</edge></action>
     </mousebind>
 
     <mousebind button="Right" action="Press">
-      <action name="Activate"/>
+      <action name="Focus"/>
+      <action name="Raise"/>
       <action name="ShowMenu"><menu>client-menu</menu></action>
     </mousebind>
   </context>
 
   <context name="BLCorner">
     <mousebind button="Left" action="Press">
-      <action name="Activate"/>
+      <action name="Focus"/>
+      <action name="Raise"/>
     </mousebind>
     <mousebind button="Left" action="Drag">
-      <action name="Resize"/>
+      <action name="Resize"><edge>bottomleft</edge></action>
     </mousebind>
   </context>
 
   <context name="BRCorner">
     <mousebind button="Left" action="Press">
-      <action name="Activate"/>
+      <action name="Focus"/>
+      <action name="Raise"/>
     </mousebind>
     <mousebind button="Left" action="Drag">
-      <action name="Resize"/>
+      <action name="Resize"><edge>bottomright</edge></action>
     </mousebind>
   </context>
 
   <context name="TLCorner">
     <mousebind button="Left" action="Press">
-      <action name="Activate"/>
+      <action name="Focus"/>
+      <action name="Raise"/>
+      <action name="Unshade"/>
     </mousebind>
     <mousebind button="Left" action="Drag">
-      <action name="Resize"/>
+      <action name="Resize"><edge>topleft</edge></action>
     </mousebind>
   </context>
 
   <context name="TRCorner">
     <mousebind button="Left" action="Press">
-      <action name="Activate"/>
+      <action name="Focus"/>
+      <action name="Raise"/>
+      <action name="Unshade"/>
     </mousebind>
     <mousebind button="Left" action="Drag">
-      <action name="Resize"/>
+      <action name="Resize"><edge>topright</edge></action>
     </mousebind>
   </context>
 
   <context name="Client">
     <mousebind button="Left" action="Press">
-      <action name="Activate"/>
+      <action name="Focus"/>
+      <action name="Raise"/>
     </mousebind>
     <mousebind button="Middle" action="Press">
-      <action name="Activate"/>
+      <action name="Focus"/>
+      <action name="Raise"/>
     </mousebind>
     <mousebind button="Right" action="Press">
-      <action name="Activate"/>
+      <action name="Focus"/>
+      <action name="Raise"/>
     </mousebind>
   </context>
 
   <context name="Icon">
     <mousebind button="Left" action="Press">
-      <action name="Activate"/>
+      <action name="Focus"/>
+      <action name="Raise"/>
+      <action name="Unshade"/>
       <action name="ShowMenu"><menu>client-menu</menu></action>
     </mousebind>
     <mousebind button="Right" action="Press">
-      <action name="Activate"/>
+      <action name="Focus"/>
+      <action name="Raise"/>
       <action name="ShowMenu"><menu>client-menu</menu></action>
     </mousebind>
   </context>
 
   <context name="AllDesktops">
     <mousebind button="Left" action="Press">
-      <action name="Activate"/>
+      <action name="Focus"/>
+      <action name="Raise"/>
+      <action name="Unshade"/>
     </mousebind>
     <mousebind button="Left" action="Click">
       <action name="ToggleOmnipresent"/>
 
   <context name="Shade">
     <mousebind button="Left" action="Press">
-      <action name="Activate"/>
+      <action name="Focus"/>
+      <action name="Raise"/>
     </mousebind>
     <mousebind button="Left" action="Click">
       <action name="ToggleShade"/>
 
   <context name="Iconify">
     <mousebind button="Left" action="Press">
-      <action name="Activate"/>
+      <action name="Focus"/>
+      <action name="Raise"/>
     </mousebind>
     <mousebind button="Left" action="Click">
       <action name="Iconify"/>
 
   <context name="Maximize">
     <mousebind button="Left" action="Press">
-      <action name="Activate"/>
+      <action name="Focus"/>
+      <action name="Raise"/>
+      <action name="Unshade"/>
     </mousebind>
     <mousebind button="Middle" action="Press">
-      <action name="Activate"/>
+      <action name="Focus"/>
+      <action name="Raise"/>
+      <action name="Unshade"/>
     </mousebind>
     <mousebind button="Right" action="Press">
-      <action name="Activate"/>
+      <action name="Focus"/>
+      <action name="Raise"/>
+      <action name="Unshade"/>
     </mousebind>
     <mousebind button="Left" action="Click">
-      <action name="ToggleMaximizeFull"/>
+      <action name="ToggleMaximize"/>
     </mousebind>
     <mousebind button="Middle" action="Click">
-      <action name="ToggleMaximizeVert"/>
+      <action name="ToggleMaximize"><direction>vertical</direction></action>
     </mousebind>
     <mousebind button="Right" action="Click">
-      <action name="ToggleMaximizeHorz"/>
+      <action name="ToggleMaximize"><direction>horizontal</direction></action>
     </mousebind>
   </context>
 
   <context name="Close">
     <mousebind button="Left" action="Press">
-      <action name="Activate"/>
+      <action name="Focus"/>
+      <action name="Raise"/>
+      <action name="Unshade"/>
     </mousebind>
     <mousebind button="Left" action="Click">
       <action name="Close"/>
   </context>
 
   <context name="Desktop">
-    <mousebind button="Up" action="Press">
-      <action name="DesktopPrevious"/>
+    <mousebind button="Up" action="Click">
+      <action name="GoToDesktop"><to>previous</to></action>
     </mousebind>
-    <mousebind button="Down" action="Press">
-      <action name="DesktopNext"/>
+    <mousebind button="Down" action="Click">
+      <action name="GoToDesktop"><to>next</to></action>
     </mousebind>
 
-    <mousebind button="A-Up" action="Press">
-      <action name="DesktopPrevious"/>
+    <mousebind button="A-Up" action="Click">
+      <action name="GoToDesktop"><to>previous</to></action>
+    </mousebind>
+    <mousebind button="A-Down" action="Click">
+      <action name="GoToDesktop"><to>next</to></action>
+    </mousebind>
+    <mousebind button="C-A-Up" action="Click">
+      <action name="GoToDesktop"><to>previous</to></action>
     </mousebind>
-    <mousebind button="A-Down" action="Press">
-      <action name="DesktopNext"/>
+    <mousebind button="C-A-Down" action="Click">
+      <action name="GoToDesktop"><to>next</to></action>
     </mousebind>
 
     <mousebind button="Left" action="Press">
-      <action name="Activate"/>
+      <action name="Focus"/>
+      <action name="Raise"/>
+    </mousebind>
+    <mousebind button="Right" action="Press">
+      <action name="Focus"/>
+      <action name="Raise"/>
     </mousebind>
   </context>
 
   </context>
 
   <context name="MoveResize">
-    <mousebind button="Up" action="Press">
-      <action name="DesktopPrevious"/>
+    <mousebind button="Up" action="Click">
+      <action name="GoToDesktop"><to>previous</to></action>
     </mousebind>
-    <mousebind button="Down" action="Press">
-      <action name="DesktopNext"/>
+    <mousebind button="Down" action="Click">
+      <action name="GoToDesktop"><to>next</to></action>
     </mousebind>
-    <mousebind button="A-Up" action="Press">
-      <action name="DesktopPrevious"/>
+    <mousebind button="A-Up" action="Click">
+      <action name="GoToDesktop"><to>previous</to></action>
     </mousebind>
-    <mousebind button="A-Down" action="Press">
-      <action name="DesktopNext"/>
+    <mousebind button="A-Down" action="Click">
+      <action name="GoToDesktop"><to>next</to></action>
     </mousebind>
   </context>
 </mouse>
   <!-- default menu file (or custom one in $HOME/.config/openbox/) -->
   <file>menu.xml</file>
   <hideDelay>200</hideDelay>
+  <!-- if a press-release lasts longer than this setting (in milliseconds), the
+       menu is hidden again -->
   <middle>no</middle>
+  <!-- center submenus vertically about the parent entry -->
   <submenuShowDelay>100</submenuShowDelay>
+  <!-- this one is easy, time to delay before showing a submenu after hovering
+       over the parent entry -->
   <applicationIcons>yes</applicationIcons>
+  <!-- controls if icons appear in the client-list-(combined-)menu -->
+  <manageDesktops>yes</manageDesktops>
+  <!-- show the manage desktops section in the client-list-(combined-)menu -->
 </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 as well, to
-       further restrict your matches
-
-       the name, class, and role use simple globbing rules such as those
-       used by a shell. you can use * to match any characters and ? to match
-       any single character.
+<!--
+  # this is an example with comments through out. use these to make your
+  # own rules, but without the comments of course.
 
-       when multiple rules match a window, they will all be applied, in the
-       order that they appear in this list
- -->
   <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)">
+               role="the window's WM_WINDOW_ROLE property (see xprop)"
+               type="the window's _NET_WM_WINDOW_TYPE (if unspecified, then
+                       it is dialog for child windows)">
+  # 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 
-         change that attribute of the window -->
+  # 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.
+
+  # the type is one of: normal, dialog, splash, utility, menu, toolbar, dock,
+  #    or desktop
+
+  # 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 -->
+    # enable or disable window decorations
 
     <shade>no</shade>
-
-    <position>
-      <!-- the position is only used if both an x and y coordinate are provided
-           (and not set to 'default') -->
+    # make the window shaded when it appears, or not
+
+    <position force="no">
+      # the position is only used if both an x and y coordinate are provided
+      # (and not set to 'default')
+      # when force is "yes", then the window will be placed here even if it
+      # says you want it placed elsewhere.  this is to override buggy
+      # applications who refuse to behave
       <x>center</x>
-      <!-- a number or 'center' to center on screen -->
+      # a number like 50, or 'center' to center on screen. use a negative number
+      # to start from the right (or bottom for <y>), ie -50 is 50 pixels from the
+      # right edge (or bottom).
       <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 -->
+      # 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 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 -->
+    # 1 is the first desktop, 'all' for all desktops
 
     <layer>normal</layer>
-    <!-- 'above', 'normal', or 'below' -->
+    # '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 -->
+    # 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 -->
+    # 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/on/off/true/false) -->
+    # 'Horizontal', 'Vertical' or boolean (yes/no)
   </application>
+
+  # end of the example
+-->
 </applications>
- -->
 
 </openbox_config>