rc3 format

Peter Chiocchetti pch at myzel.net
Sat Aug 2 16:36:12 EDT 2003


hello,

I thought, how about a dtd for the config file, so when
working on it, one can validate it against. or edit with eg.
xerlin (http://xerlin.org). but its not going to happen, DTD
is too limited, it may need SCHEMA for this, as there are some
elements with the same name (eg. theme, menu), but different
content.

a dtd or schema may be of use of course for the obconf
utility, so it can check the file on startup, once its there.
maybe somebody who cares can continue, so the DTD is
attached. I will do too, as I find the time.

regards,

p.
-------------- next part --------------
<!ELEMENT openbox_config ( resistance, placement, focus, theme,
	desktops, moveresize, dock, keyboard, mouse, menu+ ) >

<!ELEMENT resistance ( strength, screen_edge_strength, windows ) >
<!ELEMENT strength ( #PCDATA ) >
<!ELEMENT screen_edge_strength ( #PCDATA ) >
<!ELEMENT windows ( #PCDATA ) >

<!ELEMENT placement ( remember ) >
<!ELEMENT remember ( #PCDATA ) >

<!ELEMENT focus ( focusNew, followMouse, focusLast,
	focusLastOnDesktop, cyclingDialog ) >
<!ELEMENT focusNew ( #PCDATA ) >
<!ELEMENT followMouse ( #PCDATA ) >
<!ELEMENT focusLast ( #PCDATA ) >
<!ELEMENT focusLastOnDesktop ( #PCDATA ) >
<!ELEMENT cyclingDialog ( #PCDATA ) >

<!ELEMENT theme ( theme ) >
<!ELEMENT theme ( #PCDATA ) >

<!ELEMENT desktops ( number, names ) >
<!ELEMENT number ( #PCDATA ) >
<!ELEMENT names ( name+ ) >
<!ELEMENT name ( #PCDATA ) >

<!ELEMENT moveresize ( opaqueMove, opaqueResize ) >
<!ELEMENT opaqueMove ( #PCDATA ) >
<!ELEMENT opaqueResize ( #PCDATA ) >

<!ELEMENT dock ( position, stacking, direction, floatingX,
	floatingY, autoHide, hideTimeout ) >
<!ELEMENT position ( #PCDATA ) >
<!ELEMENT stacking ( #PCDATA ) >
<!ELEMENT direction ( #PCDATA ) >
<!ELEMENT floatingX ( #PCDATA ) >
<!ELEMENT floatingY ( #PCDATA ) >
<!ELEMENT autoHide ( #PCDATA ) >
<!ELEMENT hideTimeout ( #PCDATA ) >

<!ELEMENT keyboard ( keybind+ ) >
<!ELEMENT keybind ( action, desktop? ) >
<!ATTLIST keybind key CDATA #REQUIRED >
<!ELEMENT action EMPTY >
<!ATTLIST action name CDATA #REQUIRED >
<!ELEMENT desktop ( #PCDATA ) >

<!ELEMENT mouse ( dragThreshold, doubleClickTime, context+ ) >
<!ELEMENT dragThreshold ( #PCDATA ) >
<!ELEMENT doubleClickTime ( #PCDATA ) >
<!ELEMENT context ( mousebind+ ) >
<!ATTLIST context name CDATA #REQUIRED >
<!ELEMENT mousebind ( action ) >
<!ATTLIST mousebind button CDATA #REQUIRED >
<!ATTLIST mousebind action CDATA #REQUIRED >

<!ELEMENT menu ( item+, menu* ) >
<!ATTLIST menu id CDATA #IMPLIED >
<!ATTLIST menu label CDATA #IMPLIED >
<!ELEMENT item ( action* ) >
<!ATTLIST item label CDATA #REQUIRED >
<!ELEMENT action ( execute ) >
<!ELEMENT execute ( #PCDATA ) >


More information about the openbox mailing list