Use the correct border hints to calculate screen width.
[fvwm.git] / doc / fvwm / ewmh.xml
blob195463013063a416cc39cc1cd70330d5325967ff
1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!DOCTYPE part PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
3   "../docbook-xml/docbookx.dtd"
5 <!ENTITY % myents SYSTEM "../fvwm.ent" >
6 %myents;
7 ]>
9 <section id='extended_window_manager_hints'>
10 <title>Extended Window Manager Hints</title>
11 <para>Fvwm attempts to respect the extended window manager hints (ewmh
12 or <acronym>EWMH</acronym> for short) specification:
13 <ulink url='http://www.freedesktop.org/wiki/Standards_2fwm_2dspec'>http://www.freedesktop.org/wiki/Standards_2fwm_2dspec</ulink>
14 and some extensions of this specification.  This allows fvwm to
15 work with
16 <acronym>KDE</acronym>
17 version &gt;= 2,
18 <acronym>GNOME</acronym>
19 version 2 and other applications which respect this specification
20 (any application based on
21 <emphasis remap='SM'>GTK+</emphasis>
22 version 2). Applications which respect this specification are
23 called ewmh compliant applications.</para>
25 <para>This support is configurable with styles and commands.
26 These styles and commands have
27 <acronym>EWMH</acronym>
28 as the prefix (so you can find them easily in this man page).</para>
30 <para>There is a new Context 'D' for the
31 <fvwmref cmd="Key"/>,
32 <fvwmref cmd="PointerKey"/>,
33 <fvwmref cmd="Mouse"/> and
34 <fvwmref cmd="Stroke"/>
35 commands. This context is for desktop applications (such as
36 kdesktop and Nautilus desktop).</para>
38 <para>When a compliant taskbar asks fvwm to activate a window (typically
39 when you click on a button which represents a window in such a
40 taskbar), then fvwm calls the complex function
41 <emphasis remap='B'>EWMHActivateWindowFunc</emphasis>
42 which by default is Iconify Off, Focus and Raise. You can redefine
43 this function.  For example:</para>
45 <programlisting>
46 <fvwmref cmd="DestroyFunc"/> EWMHActivateWindowFunc
47 <fvwmref cmd="AddToFunc"/> EWMHActivateWindowFunc I <fvwmref cmd="Iconify"/> Off
48 + I <fvwmref cmd="Focus"/>
49 + I <fvwmref cmd="Raise"/>
50 + I <fvwmref cmd="WarpToWindow"/> 50 50
51 </programlisting>
53 <para>additionally warps the pointer to the center of the window.</para>
55 <para>The
56 <acronym>EWMH</acronym>
57 specification introduces the notion of Working Area.  Without ewmh
58 support the Working Area is the full visible screen (or all your
59 screens if you have a multi head setup and you use Xinerama).
60 However, compliant applications (such as a panel) can ask to
61 reserve space at the edge of the screen.  If this is the case, the
62 Working Area is your full visible screen minus these reserved
63 spaces. If a panel can be hidden by clicking on a button the
64 Working Area does not change (as you can unhide the panel at any
65 time), but the Dynamic Working Area is updated: the space reserved
66 by the panel is removed (and added again if you pop up the
67 panel). The Dynamic Working Area may be used when fvwm places or
68 maximizes a window.  To know if an application reserves space you
69 can type "xprop | grep _NET_WM_STRUT" in a terminal and select the
70 application.  If four numbers appear then these numbers define the
71 reserved space as explained in the
72 <fvwmref cmd="EwmhBaseStruts"/>
73 command.</para>
75 </section>