summaryrefslogtreecommitdiff
path: root/data
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2012-10-01 21:43:56 -0400
committerDana Jansens <danakj@orodu.net>2012-10-06 23:04:57 -0400
commit10a833b2cba11349a57071a7538cae9a560b8cc9 (patch)
tree661456c5b74cafa939eaa97287ff6b823ce205bf /data
parent5e282dae08be3b900e0337efa0fae8f3ffa92cd7 (diff)
Allow application rules to control window size (Fix bug 4661)
Use the following in your per-app rules: <size> <width>A</width> <height>B</height> </size> A and B can be integer values to specify a size in pixels. They can also be percentages or fractions to be relative to the size of the monitor the window is placed on.
Diffstat (limited to 'data')
-rw-r--r--data/rc.xml15
-rw-r--r--data/rc.xsd14
2 files changed, 26 insertions, 3 deletions
diff --git a/data/rc.xml b/data/rc.xml
index 1da3b384..932521b7 100644
--- a/data/rc.xml
+++ b/data/rc.xml
@@ -686,14 +686,25 @@
# applications who refuse to behave
<x>center</x>
# 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).
+ # to start from the right (or bottom for <y>), ie -50 is 50 pixels from
+ # the right edge (or bottom). use 'default' to specify using value
+ # provided by the application, or chosen by openbox, instead.
<y>200</y>
<monitor>1</monitor>
# specifies the monitor in a xinerama setup.
# 1 is the first head, or 'mouse' for wherever the mouse is
</position>
+ <size>
+ # the size to make the window.
+ <width>20</width>
+ # a number like 20, or 'default' to use the size given by the application.
+ # you can use fractions such as 1/2 or percentages such as 75% in which
+ # case the value is relative to the size of the monitor that the window
+ # appears on.
+ <height>30%</height>
+ </size>
+
<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
diff --git a/data/rc.xsd b/data/rc.xsd
index 79a3571f..425d53c9 100644
--- a/data/rc.xsd
+++ b/data/rc.xsd
@@ -233,11 +233,18 @@
</xsd:all>
<xsd:attribute name="force" type="ob:bool"/>
</xsd:complexType>
+ <xsd:complexType name="window_size">
+ <xsd:all>
+ <xsd:element name="width" type="ob:size_value"/>
+ <xsd:element name="height" type="ob:size_value"/>
+ </xsd:all>
+ </xsd:complexType>
<xsd:complexType name="application">
<xsd:all>
<xsd:element minOccurs="0" name="decor" type="ob:bool"/>
<xsd:element minOccurs="0" name="shade" type="ob:bool"/>
<xsd:element minOccurs="0" name="position" type="ob:window_position"/>
+ <xsd:element minOccurs="0" name="size" type="ob:window_size"/>
<xsd:element minOccurs="0" name="focus" type="xsd:string"/>
<xsd:element minOccurs="0" name="desktop" type="xsd:integer"/>
<xsd:element minOccurs="0" name="layer" type="ob:layer"/>
@@ -418,7 +425,12 @@
<xsd:restriction base="xsd:string">
<!-- ob: atoi($_) unless $_ eq 'center'; -->
<!-- I think the regexp DTRT WRT atoi. -->
- <xsd:pattern value="center|-?(0|[1-9][0-9]*)"/>
+ <xsd:pattern value="default|center|-?(0|[1-9][0-9]*)(|%|/[1-9][0-9]*)"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="size_value">
+ <xsd:restriction base="xsd:string">
+ <xsd:pattern value="default|([1-9][0-9]*)(|%|/[1-9][0-9]*)"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="mouse_or_int">