<BODY >
<DIV CLASS="navigation"><!--Navigation Panel-->
-<A NAME="tex2html261"
+<A NAME="tex2html267"
HREF="node5.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
-<A NAME="tex2html255"
+<A NAME="tex2html261"
HREF="ionconf.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
-<A NAME="tex2html249"
+<A NAME="tex2html255"
HREF="node3.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
-<A NAME="tex2html257"
+<A NAME="tex2html263"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
-<A NAME="tex2html259"
+<A NAME="tex2html265"
HREF="node11.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A>
<BR>
-<B> Next:</B> <A NAME="tex2html262"
+<B> Next:</B> <A NAME="tex2html268"
HREF="node5.html">4. Graphical styles</A>
-<B> Up:</B> <A NAME="tex2html256"
+<B> Up:</B> <A NAME="tex2html262"
HREF="ionconf.html">Configuring and extending Ion3</A>
-<B> Previous:</B> <A NAME="tex2html250"
+<B> Previous:</B> <A NAME="tex2html256"
HREF="node3.html">2. Preliminaries: Key concepts</A>
- <B> <A NAME="tex2html258"
+ <B> <A NAME="tex2html264"
HREF="node1.html">Contents</A></B>
- <B> <A NAME="tex2html260"
+ <B> <A NAME="tex2html266"
HREF="node11.html">Index</A></B>
<BR>
<BR></DIV>
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
<UL CLASS="ChildLinks">
-<LI><A NAME="tex2html263"
+<LI><A NAME="tex2html269"
HREF="node4.html#SECTION00410000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN> The configuration files</A>
-<LI><A NAME="tex2html264"
+<LI><A NAME="tex2html270"
HREF="node4.html#SECTION00420000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN> A walk through <SPAN CLASS="textit">cfg_ion.lua</SPAN></A>
-<LI><A NAME="tex2html265"
+<LI><A NAME="tex2html271"
HREF="node4.html#SECTION00430000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN> Keys and rodents</A>
<UL>
-<LI><A NAME="tex2html266"
+<LI><A NAME="tex2html272"
HREF="node4.html#SECTION00431000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN> Binding handlers and special variables</A>
-<LI><A NAME="tex2html267"
+<LI><A NAME="tex2html273"
HREF="node4.html#SECTION00432000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN> Guards</A>
-<LI><A NAME="tex2html268"
+<LI><A NAME="tex2html274"
HREF="node4.html#SECTION00433000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN> Defining the bindings</A>
-<LI><A NAME="tex2html269"
+<LI><A NAME="tex2html275"
HREF="node4.html#SECTION00434000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN> Examples</A>
-<LI><A NAME="tex2html270"
+<LI><A NAME="tex2html276"
HREF="node4.html#SECTION00435000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN> Key specifications</A>
-<LI><A NAME="tex2html271"
+<LI><A NAME="tex2html277"
HREF="node4.html#SECTION00436000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">6</SPAN> Button specifications</A>
-<LI><A NAME="tex2html272"
+<LI><A NAME="tex2html278"
HREF="node4.html#SECTION00437000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">7</SPAN> A further note on the default binding configuration</A>
</UL>
<BR>
-<LI><A NAME="tex2html273"
+<LI><A NAME="tex2html279"
HREF="node4.html#SECTION00440000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN> Menus</A>
<UL>
-<LI><A NAME="tex2html274"
+<LI><A NAME="tex2html280"
HREF="node4.html#SECTION00441000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN> Defining menus</A>
-<LI><A NAME="tex2html275"
+<LI><A NAME="tex2html281"
HREF="node4.html#SECTION00442000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN> Special menus</A>
-<LI><A NAME="tex2html276"
+<LI><A NAME="tex2html282"
HREF="node4.html#SECTION00443000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN> Defining context menus</A>
-<LI><A NAME="tex2html277"
+<LI><A NAME="tex2html283"
HREF="node4.html#SECTION00444000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">4</SPAN> Displaying menus</A>
</UL>
<BR>
-<LI><A NAME="tex2html278"
+<LI><A NAME="tex2html284"
HREF="node4.html#SECTION00450000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN> Winprops</A>
<UL>
-<LI><A NAME="tex2html279"
- HREF="node4.html#SECTION00451000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN> Classes, roles and instances</A>
-<LI><A NAME="tex2html280"
- HREF="node4.html#SECTION00452000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">2</SPAN> Finding window identification</A>
-<LI><A NAME="tex2html281"
- HREF="node4.html#SECTION00453000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">3</SPAN> Some common examples</A>
+<LI><A NAME="tex2html285"
+ HREF="node4.html#SECTION00451000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN> Sizehint winprops</A>
+<LI><A NAME="tex2html286"
+ HREF="node4.html#SECTION00452000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">2</SPAN> Classes, roles and instances</A>
+<LI><A NAME="tex2html287"
+ HREF="node4.html#SECTION00453000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">3</SPAN> Finding window identification</A>
+<LI><A NAME="tex2html288"
+ HREF="node4.html#SECTION00454000000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">4</SPAN> Some common examples</A>
<UL>
-<LI><A NAME="tex2html282"
- HREF="node4.html#SECTION00453100000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN> Acrobat Reader</A>
-<LI><A NAME="tex2html283"
- HREF="node4.html#SECTION00453200000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN> Fixing a Mozilla Firebird transient</A>
-<LI><A NAME="tex2html284"
- HREF="node4.html#SECTION00453300000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN> Forcing newly created windows in named frames</A>
+<LI><A NAME="tex2html289"
+ HREF="node4.html#SECTION00454100000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN> Acrobat Reader</A>
+<LI><A NAME="tex2html290"
+ HREF="node4.html#SECTION00454200000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN> Fixing a Mozilla Firebird transient</A>
+<LI><A NAME="tex2html291"
+ HREF="node4.html#SECTION00454300000000000000"><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN> Forcing newly created windows in named frames</A>
</UL></UL></UL>
<!--End of Table of Child-Links-->
<HR>
Ion3, to which document applies, stores its stock configuration files in
<SPAN CLASS="textit">/usr/local/etc/ion3/</SPAN> unless you, the OS package maintainer or
whoever installed the package on the system has modified the variables
-<TT>PREFIX</TT><A NAME="584"></A> or
-<TT>ETCDIR</TT><A NAME="585"></A> in
-<SPAN CLASS="textit">system.mk</SPAN><A NAME="586"></A> before compiling Ion.
+<TT>PREFIX</TT><A NAME="590"></A> or
+<TT>ETCDIR</TT><A NAME="591"></A> in
+<SPAN CLASS="textit">system.mk</SPAN><A NAME="592"></A> before compiling Ion.
In the first case you probably know where to find the files and in
the other case the system administrator or the OS package maintainer
should have provided documentation to point to the correct location.
<TD ALIGN="LEFT">Settings to get some applications behave more nicely have been
collected here. See section <A HREF="#sec:winprops">3.5</A>.</TD>
</TR>
+<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=1><SPAN CLASS="textit">cfg_layouts.lua</SPAN></TD>
+<TD ALIGN="LEFT">Some workspace layouts are defined here.</TD>
+</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=1><SPAN CLASS="textit">cfg_tiling.lua</SPAN>
<SPAN CLASS="textit">cfg_query.lua</SPAN>
<SPAN CLASS="textit">cfg_menu.lua</SPAN>
move frames and other objects mirror you actions immediately. If opaque
resize is disabled, a XOR rubber band is shown during the mode instead.
This will, unfortunately, cause Ion to also grab the X server and has some
-side effects.
+side effects.
+
+<P>
+There are some other options as well; see the documentation
+for <A HREF="node7.html#fn:ioncore.set"><TT>ioncore.set</TT></A> for details.
<P>
-Next we load the configuration for Ion's core, and some kludges:
+As a next step, in the actual <SPAN CLASS="textit">cfg_ion.lua</SPAN> file, we load
+<SPAN CLASS="textit">cfg_defaults.lua</SPAN>. However, it is merely a conveniency file for
+doing exactly what we will going through below, and what is commented
+out in the actual file. If you do not want to load what
+<SPAN CLASS="textit">cfg_defaults.lua</SPAN> loads, just comment out the corresponding
+line, and uncomment the lines for the files that you want:
<P>
<PRE>
+--dopath("cfg_defaults")
dopath("cfg_ioncore")
dopath("cfg_kludges")
+dopath("cfg_layouts")
</PRE>
<P>
a rule to construct a new title of a match occurs. This particular
rule is used to shorten e.g. 'Foo: barbaz<3>' to 'barba...<3>'; for
details see the function reference entry for <A HREF="node7.html#fn:ioncore.defshortening"><TT>ioncore.defshortening</TT></A>.
+Finally, <SPAN CLASS="textit">cfg_layouts.lua</SPAN> defines some workspace layouts, available
+through the <SPAN CLASS="textbf">F9</SPAN> workspace creation query.
<P>
To actually be able to do something besides display windows in full screen
<P>
<PRE>
-dopath("cfg_modules")
---dopath("mod_query")
---dopath("mod_menu")
---dopath("mod_tiling")
---dopath("mod_statusbar")
+dopath("mod_query")
+dopath("mod_menu")
+dopath("mod_tiling")
+dopath("mod_statusbar")
--dopath("mod_dock")
---dopath("mod_sp")
+dopath("mod_sp")
</PRE>
-<P>
-We actually load there another file listing the default selection of
-modules. If you only want to load additional modules, just uncomment
-the corresponding line. If you want to disable loading some modules,
-comment out the the line loading <SPAN CLASS="textit">cfg_modules</SPAN>, and uncomment
-the lines for the modules you want, or add more.
-
<P>
<H2><A NAME="SECTION00430000000000000000"></A>
As seen above, the functions that create key binding specifications require
a <TT>keyspec</TT> argument. This argument should be a string containing the
name of a key as listed in the X header file <SPAN CLASS="textit">keysymdef.h</SPAN><A NAME="tex2html7"
- HREF="#foot857"><SUP><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN></SUP></A> without the <TT>XK_</TT> prefix.
-<A NAME="858"></A>
+ HREF="#foot871"><SUP><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN></SUP></A> without the <TT>XK_</TT> prefix.
+<A NAME="872"></A>
Most of the key names are quite intuitive while some are not. For example,
the <SPAN CLASS="textbf">Enter</SPAN> key on the main part of the keyboard has the less common
name <SPAN CLASS="textbf">Return</SPAN> while the one the numpad is called <SPAN CLASS="textbf">KP_Enter</SPAN>.
<BLOCKQUOTE>
<SPAN CLASS="textbf">Shift</SPAN>, <SPAN CLASS="textbf">Control</SPAN>, <SPAN CLASS="textbf">Mod1</SPAN> to <SPAN CLASS="textbf">Mod5</SPAN>,
<SPAN CLASS="textbf">AnyModifier</SPAN> and <SPAN CLASS="textbf">Lock</SPAN>.
-<A NAME="859"></A>
-<A NAME="860"></A>
-<A NAME="861"></A>
-<A NAME="862"></A>
-<A NAME="863"></A>
+<A NAME="873"></A>
+<A NAME="874"></A>
+<A NAME="875"></A>
+<A NAME="876"></A>
+<A NAME="877"></A>
</BLOCKQUOTE>
<P>
X allows binding all of these modifiers to almost any key and while this
list of modifiers does not explicitly list keys such as
-<SPAN CLASS="textbf">Alt</SPAN><A NAME="864"></A> that are common on modern keyboards, such
+<SPAN CLASS="textbf">Alt</SPAN><A NAME="878"></A> that are common on modern keyboards, such
keys are bound to one of the <SPAN CLASS="textbf">ModN</SPAN>. On systems running XFree86
<SPAN CLASS="textbf">Alt</SPAN> is usually <SPAN CLASS="textbf">Mod1</SPAN>. On Suns <SPAN CLASS="textbf">Mod1</SPAN> is the diamond key
and <SPAN CLASS="textbf">Alt</SPAN> something else. One of the ''flying window'' keys on so
called Windows-keyboards is probably mapped to <SPAN CLASS="textbf">Mod3</SPAN> if you have
-such a key. Use the program <SPAN CLASS="textit">xmodmap</SPAN><A NAME="865"></A>
+such a key. Use the program <SPAN CLASS="textit">xmodmap</SPAN><A NAME="879"></A>
to find out what exactly is bound where.
<P>
<P>
Ion ignores the <SPAN CLASS="textbf">Lock</SPAN> modifier and any <SPAN CLASS="textbf">ModN</SPAN> (<SPAN CLASS="MATH"></SPAN>)
-bound to <SPAN CLASS="textbf">NumLock</SPAN><A NAME="866"></A> or
-<SPAN CLASS="textbf">ScrollLock</SPAN><A NAME="867"></A>
+bound to <SPAN CLASS="textbf">NumLock</SPAN><A NAME="880"></A> or
+<SPAN CLASS="textbf">ScrollLock</SPAN><A NAME="881"></A>
by default because such<A NAME="tex2html8"
- HREF="#foot836"><SUP><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></SUP></A> locking keys may otherwise
+ HREF="#foot850"><SUP><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></SUP></A> locking keys may otherwise
cause confusion.
<P>
Button specifications are similar to key definitions but now
instead of specifying modifiers and a key, you specify modifiers
and one of the button names <SPAN CLASS="textbf">Button1</SPAN> to
-<SPAN CLASS="textbf">Button5</SPAN><A NAME="868"></A>. Additionally the
+<SPAN CLASS="textbf">Button5</SPAN><A NAME="882"></A>. Additionally the
specification may end with an optional area name following an @-sign.
Only frames currently support areas, and the supported values in this
case are
</H3>
<P>
-<A NAME="1114"></A>
-<A NAME="1171"></A>
-<A NAME="1172"></A>
-<A NAME="1173"></A>
+<A NAME="1128"></A>
+<A NAME="1185"></A>
+<A NAME="1186"></A>
+<A NAME="1187"></A>
In the stock configuration file setup, menus are defined in the file
<SPAN CLASS="textit">cfg_menus.lua</SPAN> as previously mentioned. The <SPAN CLASS="textit">mod_menu</SPAN> module
must be loaded for one to be able to define menus, and this is done with
after which the selected entry is activated. This function is meant to
be used for implementing, for example, Win***s-style <SPAN CLASS="textbf">Alt-Tab</SPAN>
handling.<A NAME="tex2html9"
- HREF="#foot1174"><SUP><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN></SUP></A></TD>
+ HREF="#foot1188"><SUP><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN></SUP></A></TD>
</TR>
</TABLE>
</H2>
<P>
-The so-called ''winprops''<A NAME="1269"></A> can be used to change how
+The so-called ''winprops''<A NAME="1283"></A> can be used to change how
specific windows are handled and to set up some kludges to deal with
badly behaving applications. They are defined by calling the function
<TT>defwinprop</TT> with a table containing the properties to set and the
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD><A NAME="1429"></A>
+<DD><A NAME="1438"></A>
Set this to <TT>true</TT> for Acrobat Reader. It has an annoying
habit of trying to manage its dialogs instead of setting them as
transients and letting the window manager do its job, causing
</DD>
</DL>
-<P>
-
- <DL>
-<DT><STRONG>Winprop:</STRONG></DT>
-<DD><TT>aspect</TT> (table)
-
-</DD>
-<DT><STRONG>Description:</STRONG></DT>
-<DD><A NAME="1430"></A>
- The table should contain the entries <TT>w</TT> and <TT>h</TT> that
- override application-supplied aspect ratio hint.
-
-</DD>
-</DL>
-
<P>
<DL>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD><A NAME="1431"></A>
+<DD><A NAME="1439"></A>
Set this to open the window in a floating frame, when
in a group.
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD><A NAME="1432"></A>
+<DD><A NAME="1440"></A>
Should the window be initially in full screen mode?
</DD>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD><A NAME="1433"></A>
+<DD><A NAME="1441"></A>
Should configure requests on the window be ignored?
Only has effect on floating windows.
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD><A NAME="1434"></A>
+<DD><A NAME="1442"></A>
Ignore extended WM hints <TT>_NET_ACTIVE_WINDOW</TT> request.
</DD>
</DL>
-<P>
-
- <DL>
-<DT><STRONG>Winprop:</STRONG></DT>
-<DD><TT>ignore_resizeinc</TT> (boolean)
-
-</DD>
-<DT><STRONG>Description:</STRONG></DT>
-<DD><A NAME="1435"></A>
- Should application supplied size increments be ignored?
-
-</DD>
-</DL>
-
<P>
<DL>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD><A NAME="1436"></A>
+<DD><A NAME="1443"></A>
Should a newly created client window always be made
active, even if the allocated frame isn't.
</DD>
</DL>
-<P>
-
- <DL>
-<DT><STRONG>Winprop:</STRONG></DT>
-<DD><TT>max_size</TT> (table)
-
-</DD>
-<DT><STRONG>Description:</STRONG></DT>
-<DD><A NAME="1437"></A>
- The table should contain the entries <TT>w</TT> and <TT>h</TT> that
- override application-supplied maximum size hint.
-
-</DD>
-</DL>
-
-<P>
-
- <DL>
-<DT><STRONG>Winprop:</STRONG></DT>
-<DD><TT>min_size</TT> (table)
-
-</DD>
-<DT><STRONG>Description:</STRONG></DT>
-<DD><A NAME="1438"></A>
- Similar to <TT>max_size</TT> but for the minimum size hint.
-
-</DD>
-</DL>
-
<P>
<DL>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD><A NAME="1439"></A>
+<DD><A NAME="1444"></A>
If the region specified by <TT>target</TT> winprop does not exist
(or that winprop is not set), create a new workspace using the
previously stored layout (see <A HREF="node7.html#fn:ioncore.deflayout"><TT>ioncore.deflayout</TT></A>) named by
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD><A NAME="1440"></A>
+<DD><A NAME="1445"></A>
Discard this winprop after first use.
</DD>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD><A NAME="1441"></A>
- Put the window on the statusbar, in the named tray component,
- (The default tray component is called simply ``<TT>systray</TT>'',
+<DD><A NAME="1446"></A>
+ Put the window in the statusbar, in the named tray component,
+ (The default tray component is called simply <TT>"systray"</TT>,
and others you give names to in your custom template, always
- prefixed by ``<TT>systray_</TT>''.
+ prefixed by <TT>"systray_"</TT>.
</DD>
</DL>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD><A NAME="1442"></A>
+<DD><A NAME="1447"></A>
Should a newly mapped client window be switched to within
its frame.
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD><A NAME="1443"></A>
+<DD><A NAME="1448"></A>
The name of an object (workspace, frame) that should manage
windows of this type. See also <TT>new_group</TT>.
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD><A NAME="1444"></A>
- "normal": No change in behaviour. "current": The window
- should be thought of as a transient for the current active
- client window (if any) even if it is not marked as a
- transient by the application. "off": The window should be
- handled as a normal window even if it is marked as a
+<DD><A NAME="1449"></A>
+ <TT>"normal"</TT>: No change in behaviour. <TT>"current"</TT>:
+ The window should be thought of as a transient for the current
+ active client window (if any) even if it is not marked as a
+ transient by the application. <TT>"off"</TT>: The window should
+ be handled as a normal window even if it is marked as a
transient by the application.
</DD>
</DL>
-<P>
-
- <DL>
-<DT><STRONG>Winprop:</STRONG></DT>
-<DD><TT>transients_at_top</TT> (boolean)
-
-</DD>
-<DT><STRONG>Description:</STRONG></DT>
-<DD><A NAME="1445"></A>
- When transients are managed by the client window itself (as it
- is the case on tiled workspaces), should the transients be
- placed at the top of the window instead of bottom?
-
-</DD>
-</DL>
-
<P>
<DL>
</DD>
<DT><STRONG>Description:</STRONG></DT>
-<DD><A NAME="1446"></A>
+<DD><A NAME="1450"></A>
Should frames be made transparent when this window is selected?
<BR>
<P>
-<H3><A NAME="SECTION00451000000000000000"></A>
+<H3><A NAME="SECTION00451000000000000000">
+<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN> Sizehint winprops</A>
+</H3>
+
+<P>
+Additionally, the winprops
+<TT>max_size</TT><A NAME="1451"></A>,
+<TT>min_size</TT><A NAME="1452"></A>,
+<TT>aspect</TT><A NAME="1453"></A>,
+<TT>resizeinc</TT><A NAME="1454"></A>,
+and
+<TT>ignore_max_size</TT><A NAME="1455"></A>,
+<TT>ignore_min_size</TT><A NAME="1456"></A>,
+<TT>ignore_aspect</TT><A NAME="1457"></A>,
+<TT>ignore_resizeinc</TT><A NAME="1458"></A>,
+may be used to override application-supplied size hints. The four
+first ones are tables with the fields <TT>w</TT> and <TT>h</TT>, indicating
+the width and height size hints in pixels, and the latter ignore
+winprop is a boolean.
+
+<P>
+Finally, the boolean
+<TT>userpos</TT><A NAME="1459"></A> option may be used to
+override the <TT>USPosition</TT> flag of the size hints. Normally,
+when this flag is set, Ion tries to respect the supplied window
+position more than when it is not set. Obviously, this makes sense
+only for floating windows.
+
+<P>
+
+<H3><A NAME="SECTION00452000000000000000"></A>
<A NAME="sec:classesrolesinstances"></A>
<BR>
-<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">1</SPAN> Classes, roles and instances
+<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">2</SPAN> Classes, roles and instances
</H3>
<P>
The identification information in the winprop specification is usually the
-<TT>class</TT><A NAME="1447"></A>,
-<TT>role</TT><A NAME="1448"></A>,
-<TT>instance</TT><A NAME="1449"></A> and
+<TT>class</TT><A NAME="1460"></A>,
+<TT>role</TT><A NAME="1461"></A>,
+<TT>instance</TT><A NAME="1462"></A> and
<TT>name</TT>
of the window. The <TT>name</TT> field is a Lua-style regular expression
matched against the window's title and the rest are strings that must
<P>
-<H3><A NAME="SECTION00452000000000000000">
-<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">2</SPAN> Finding window identification</A>
+<H3><A NAME="SECTION00453000000000000000">
+<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">3</SPAN> Finding window identification</A>
</H3>
<P>
for a window and all the transient windows managed within it.
<P>
-<A NAME="1402"></A>
+<A NAME="1411"></A>
Another way to get the identification information is to use <TT>xprop</TT>.
Simply run To get class and instance, simply run <TT>xprop WM_CLASS</TT>
and click on the particular window of interest. The class is the latter of
This method, however, will not work on transients.
<P>
-<A NAME="1406"></A>
+<A NAME="1415"></A>
So-called ''transient windows'' are usually short-lived dialogs (although
some programs abuse this property) that have a parent window that they are
''transient for''. On tiled workspaces Ion displays these windows
returning the parent window's properties when the transient is clicked on.
For this reason you'll have to do a little extra work to get the properties
for that window.<A NAME="tex2html11"
- HREF="#foot1451"><SUP><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN></SUP></A>
+ HREF="#foot1464"><SUP><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN></SUP></A>
<P>
Finally, it should be mentioned that too many authors these days
''forget'' to set this vital identification to anything meaningful:
<P>
-<H3><A NAME="SECTION00453000000000000000">
-<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">3</SPAN> Some common examples</A>
+<H3><A NAME="SECTION00454000000000000000">
+<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">4</SPAN> Some common examples</A>
</H3>
<P>
-<H4><A NAME="SECTION00453100000000000000">
-<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN> Acrobat Reader</A>
+<H4><A NAME="SECTION00454100000000000000">
+<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">1</SPAN> Acrobat Reader</A>
</H4>
<P>
<P>
-<H4><A NAME="SECTION00453200000000000000">
-<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN> Fixing a Mozilla Firebird transient</A>
+<H4><A NAME="SECTION00454200000000000000">
+<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">2</SPAN> Fixing a Mozilla Firebird transient</A>
</H4>
<P>
<P>
-<H4><A NAME="SECTION00453300000000000000">
-<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN> Forcing newly created windows in named frames</A>
+<H4><A NAME="SECTION00454300000000000000">
+<SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">5</SPAN>.<SPAN CLASS="arabic">4</SPAN>.<SPAN CLASS="arabic">3</SPAN> Forcing newly created windows in named frames</A>
</H4>
<P>
<P>
<BR><HR><H4>Footnotes</H4>
<DL>
-<DT><A NAME="foot857">...keysymdef.h</A><A
+<DT><A NAME="foot871">...keysymdef.h</A><A
HREF="node4.html#tex2html7"><SUP><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">1</SPAN></SUP></A></DT>
<DD>This file can usually be found in the directory
<SPAN CLASS="textit">/usr/X11R6/include/X11/</SPAN>.
</DD>
-<DT><A NAME="foot836">... such</A><A
+<DT><A NAME="foot850">... such</A><A
HREF="node4.html#tex2html8"><SUP><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">2</SPAN></SUP></A></DT>
<DD>Completely useless keys that should be
gotten rid of in the author's opinion.
</DD>
-<DT><A NAME="foot1174">... handling.</A><A
+<DT><A NAME="foot1188">... handling.</A><A
HREF="node4.html#tex2html9"><SUP><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">3</SPAN></SUP></A></DT>
<DD>See the <SPAN CLASS="textit">wcirculate.lua</SPAN> script in the Ion
scripts repository <TT><A NAME="tex2html10"
HREF="http://iki.fi/tuomov/repos/ion-scripts-3/">http://iki.fi/tuomov/repos/ion-scripts-3/</A></TT>.
</DD>
-<DT><A NAME="foot1451">... window.</A><A
+<DT><A NAME="foot1464">... window.</A><A
HREF="node4.html#tex2html11"><SUP><SPAN CLASS="arabic">3</SPAN>.<SPAN CLASS="arabic">4</SPAN></SUP></A></DT>
<DD>There's a patch to <TT>xprop</TT> to
fix this, but nothing seems to be happening with respect to including it in
</DL>
<DIV CLASS="navigation"><HR>
<!--Navigation Panel-->
-<A NAME="tex2html261"
+<A NAME="tex2html267"
HREF="node5.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
-<A NAME="tex2html255"
+<A NAME="tex2html261"
HREF="ionconf.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
-<A NAME="tex2html249"
+<A NAME="tex2html255"
HREF="node3.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
-<A NAME="tex2html257"
+<A NAME="tex2html263"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
-<A NAME="tex2html259"
+<A NAME="tex2html265"
HREF="node11.html">
<IMG WIDTH="43" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="index" SRC="index.png"></A>
<BR>
-<B> Next:</B> <A NAME="tex2html262"
+<B> Next:</B> <A NAME="tex2html268"
HREF="node5.html">4. Graphical styles</A>
-<B> Up:</B> <A NAME="tex2html256"
+<B> Up:</B> <A NAME="tex2html262"
HREF="ionconf.html">Configuring and extending Ion3</A>
-<B> Previous:</B> <A NAME="tex2html250"
+<B> Previous:</B> <A NAME="tex2html256"
HREF="node3.html">2. Preliminaries: Key concepts</A>
- <B> <A NAME="tex2html258"
+ <B> <A NAME="tex2html264"
HREF="node1.html">Contents</A></B>
- <B> <A NAME="tex2html260"
+ <B> <A NAME="tex2html266"
HREF="node11.html">Index</A></B> </DIV>
<!--End of Navigation Panel-->