Help:Applications

From Openbox

(Difference between revisions)
Jump to: navigation, search
m (have to spec name or class.)
(Syntax: add title and type)
Line 9: Line 9:
 
<applications>
 
<applications>
 
   ...
 
   ...
   <application name="NAME" class="CLASS" role="ROLE">
+
   <application name="NAME" class="CLASS" role="ROLE" title="TITLE" type="TYPE">
 
     ...PROPERTIES...
 
     ...PROPERTIES...
 
   </application>
 
   </application>
Line 16: Line 16:
 
</pre></code>
 
</pre></code>
  
A complete list of possible properties to set is in the [http://git.icculus.org/?p=mikachu/openbox.git;a=blob_plain;f=data/rc.xml;hb=3.4-working default rc.xml file], which you can find in <code>/etc/xdg/openbox/rc.xml</code>.
+
A complete list of possible properties to set is in the [http://git.icculus.org/?p=mikachu/openbox.git;a=blob_plain;f=data/rc.xml;hb=master default rc.xml file], which you can find in <code>/etc/xdg/openbox/rc.xml</code>.
  
 
== Finding the class, name and role parameters ==
 
== Finding the class, name and role parameters ==

Revision as of 11:51, 7 August 2011

Contents

Settings for specific windows (Per-application settings)

Per-application settings are specified in the <applications> section of rc.xml

Syntax

A per-app setting is specified as follows:

<applications>
  ...
  <application name="NAME" class="CLASS" role="ROLE" title="TITLE" type="TYPE">
    ...PROPERTIES...
  </application>
  ...
</applications>

A complete list of possible properties to set is in the default rc.xml file, which you can find in /etc/xdg/openbox/rc.xml.

Finding the class, name and role parameters

Per-application settings let you match on what we call class, name, role, and type. These can all be determined with the obxprop utility. Run obxprop | grep "^_OB_APP" to see the value of these four properties.The output will look like

_OB_APP_TYPE(UTF8_STRING) = "normal"
_OB_APP_CLASS(UTF8_STRING) = "Google-chrome"
_OB_APP_NAME(UTF8_STRING) = "google-chrome"
_OB_APP_ROLE(UTF8_STRING) = 

You have to specify at least one of class and name. Optionally, you may specify more than one, in which case they must all match for the rule to be applied. You may also optionally specify roll and type. Note also that name isn't the title of the window.

Matching windows with wildcards

When specifying the name, class, or role for a rule, you can use simple wildcard matching with the "*" and "?" characters. A "*" matches any number of characters and a "?" matches any single character.

Matching against multiple rules

As well, multiple rules can be applied to the same window. This lets you do more with less writing. For instance you could write one rule to match against all windows and then later rules could further change things for more specific windows. The rules are matched in the order they appear in your configuration file, so later rules will override previous rules if they both specify the same setting for a window.

Example of per-app settings

Here's an example from rc.xml that uses wildcards, and matches multiple rules against windows:

<applications>
  <!-- match all windows, and remove their decorations -->
  <application class="*">
    <decor>no</decor>
  </application>
  <!-- orage does get decorations though.
       calender app, see http://www.xfce.org/projects/orage/ -->
  <application class="Orage">
    <decor>yes</decor>
  </application>
  <!-- my xterm with screen in it must always be on desktop 2,
       maximized and below everything else -->
  <application name="screen">
    <desktop>2</desktop>
    <maximized>yes</maximized>
    <layer>below</layer>
  </application>
  <!-- i want firefox on desktop 3 and maximized -->
  <application name="Firefox*">
    <desktop>3</desktop>
    <maximized>yes</maximized>
  </application>
  <!-- MPlayer will follow me around when i switch desktop.
       that way i can always watch my vids when coding.
       same goes for Realplayer -->
  <application class="MPlayer">
    <desktop>all</desktop>
    <layer>above</layer>
  </application>
  <application class="Realplay.bin">
    <desktop>all</desktop>
    <layer>above</layer>
  </application>
  <!-- i want nwn always maximized, same for openttd -->
  <application name="Neverwinter Nights Client">
    <maximized>yes</maximized>
  </application>
  <application class="openttd">
    <maximized>yes</maximized>
  </application>
  <!-- A is for Amarok, A is the 1st letter in the alphabet, so
       move Amarok to the first desktop -->
  <application class="Amarokapp">
    <desktop>1</desktop>
    <maximized>yes</maximized>
  </application>
  <!-- Easytag is obviously something which belongs on desktop 6, duh -->
  <application name="easytag">
    <desktop>6</desktop>
    <maximized>yes</maximized>
  </application>
</applications>

Graphically managing per-application settings

OBApps is a GUI tool for creating and editing per-application settings. It allows you to click on a window to create a matching rule and to easily set all the properties documented in the example configuration

Personal tools