chiark / gitweb /
New option: movres.ignore_transience.
[e16] / docs / README.xml
1 <?xml version="1.0" encoding="utf-8"?>
2 <!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
3                          "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
4 <article id="index">
5   <articleinfo>
6     <title>About Enlightenment e16</title>
7     <pubdate>Apr 19, 2009</pubdate>
8     <abstract>
9       <para>
10         Coming soon. (maybe)
11       </para>
12     </abstract>
13   </articleinfo>
14   <sect1 id="credits">
15     <title>Credits</title>
16     <para>
17       This note contains contributions by
18       <itemizedlist>
19         <listitem>
20           <para>
21             Kim Woelders
22           </para>
23         </listitem>
24         <listitem>
25           <para>
26             Peter Hyman <email>pete4abw@comcast.net</email>
27           </para>
28         </listitem>
29         <listitem>
30           <para>
31             Yasufumi Haga <email>yasufumi.haga@nifty.com</email>
32           </para>
33         </listitem>
34       </itemizedlist>
35     </para>
36   </sect1>
37   <sect1 id="requirements">
38     <title>Requirements</title>
39     <para>
40       <itemizedlist>
41         <listitem>
42           <para>
43             <filename>imlib2</filename> &gt;= 1.2.0 is required, &gt;= 1.4.2 is recommended.
44           </para>
45         </listitem>
46         <listitem>
47           <para>
48             <filename>imlib2</filename> must be built with png support.
49           </para>
50         </listitem>
51       </itemizedlist>
52     </para>
53   </sect1>
54   <sect1 id="installation">
55     <title>Installation</title>
56     <para>
57       <programlisting>
58         ./configure
59         make
60         sudo make install
61       </programlisting>
62     </para>
63     <para>
64       For additional help on package configuration, see
65       <programlisting>
66         ./configure --help
67       </programlisting>
68     </para>
69   </sect1>
70   <sect1 id="versions">
71     <title>Versions</title>
72     <para>
73       <variablelist>
74         <varlistentry>
75           <term>
76             e16-1.0.0:
77           </term>
78           <listitem>
79             <para>
80               No major changes, might as well have been 0.16.8.16.
81             </para>
82           </listitem>
83         </varlistentry>
84         <varlistentry>
85           <term>
86             e16-0.16.8
87           </term>
88           <listitem>
89             <para>
90               <itemizedlist>
91                 <listitem>
92                   <para>
93                     Released Feb 2006
94                   </para>
95                 </listitem>
96                 <listitem>
97                   <para>
98                     enlightenment -&gt; e16
99                   </para>
100                 </listitem>
101                 <listitem>
102                   <para>
103                     Major internal rewrite
104                   </para>
105                 </listitem>
106                 <listitem>
107                   <para>
108                     Changed configuration system
109                   </para>
110                 </listitem>
111                 <listitem>
112                   <para>
113                     Added compositing manager
114                   </para>
115                 </listitem>
116               </itemizedlist>
117             </para>
118           </listitem>
119         </varlistentry>
120         <varlistentry>
121           <term>
122             enlightenment-0.16.7
123           </term>
124           <listitem>
125             <para>
126               <itemizedlist>
127                 <listitem>
128                   <para>
129                     Released Jul 2004
130                   </para>
131                 </listitem>
132                 <listitem>
133                   <para>
134                     Migrated to imlib2
135                   </para>
136                 </listitem>
137               </itemizedlist>
138             </para>
139           </listitem>
140         </varlistentry>
141         <varlistentry>
142           <term>
143             enlightenment-0.16.6
144           </term>
145           <listitem>
146             <para>
147               <itemizedlist>
148                 <listitem>
149                   <para>
150                     Released Nov 2003
151                   </para>
152                 </listitem>
153                 <listitem>
154                   <para>
155                     Added extended window manager hint support
156                   </para>
157                 </listitem>
158               </itemizedlist>
159             </para>
160           </listitem>
161         </varlistentry>
162         <varlistentry>
163           <term>
164             enlightenment-0.16.5
165           </term>
166           <listitem>
167             <para>
168               Released Oct 2000
169             </para>
170           </listitem>
171         </varlistentry>
172         <varlistentry>
173           <term>
174             enlightenment-0.16.0
175           </term>
176           <listitem>
177             <para>
178               Released Oct 1999
179             </para>
180           </listitem>
181         </varlistentry>
182       </variablelist>
183     </para>
184   </sect1>
185   <sect1 id="configuration">
186     <title>Configuration</title>
187     <para>
188       All settings can be shown and set using <application>eesh</application>.
189     </para>
190     <para>
191       To get a full list of settings:
192       <programlisting>
193         $ eesh show
194       </programlisting>
195     </para>
196     <para>
197       To set some parameter:
198       <programlisting>
199         $ eesh set &lt;parameter&gt; &lt;value&gt;
200       </programlisting>
201     </para>
202     <para>
203       Some settings will not be effective until <application>E</application> is restarted.
204     </para>
205     <para>
206       To get a list of all <application>eesh</application> commands:
207       <programlisting>
208         $ eesh help full
209       </programlisting>
210     </para>
211     <para>
212       The available configuration options are shown below. Values are the defaults.
213       <programlisting>
214         # [bool] High quality background rendering
215         backgrounds.hiquality = 1
216         # [bool] Prefer user selected backgrounds over theme settings
217         backgrounds.user = 1
218         # [bool] Do not scan all backgrounds when starting background configuration dialog
219         backgrounds.no_scan = 0
220         # [int] Time out for unused background image pixmaps
221         backgrounds.timeout = 240
222
223         # [bool] Enable composite manager
224         compmgr.enable = 0
225         # [int] Composite manager mode (always 1 atm)
226         compmgr.mode = 1
227         # [int] Dropshadow mode (0: off, 1: sharp, 2: blurry, 3: echo)
228         compmgr.shadows.mode = 0
229         # [int] Dropshadow offset
230         compmgr.shadows.offset_x = 3
231         compmgr.shadows.offset_y = 5
232         # [int] Blurry dropshadow radius
233         compmgr.shadows.blur.radius = 5
234         # [int] Blurry dropshadow opacity(%)
235         compmgr.shadows.blur.opacity = 75
236         # [int] Sharp dropshadow opacity(%)
237         compmgr.shadows.sharp.opacity = 30
238         # [int] Shadow color (0xRRGGBB)
239         compmgr.shadows.color = 0
240         # [bool] Hack to fix problems with resize on old xorg servers
241         compmgr.resize_fix_enable = 0
242         # [bool] Experimental - leave at 0
243         compmgr.use_name_pixmap = 0
244         # [bool] Use composite overlay window
245         compmgr.use_cow = 1
246         # [bool] Enable fading
247         compmgr.fading.enable = 1
248         # [int] Fading time(ms)
249         compmgr.fading.time = 200
250         # [int] Composite redirection of override-redirect windows (0: off, 1: on map, ...: testing)
251         # Should normally be 1 but 0 may be a partial workaround of problems with vanishing
252         # pop-ups on certain X-server/toolkit versions.
253         compmgr.override_redirect.mode = 1
254         # [int] Opacity of override-redirect windows (pop-up's, etc)
255         compmgr.override_redirect.opacity = 90
256
257         # [int] Number of desktops
258         desktops.num = 2
259         # [int] Desktop dragging direction
260         desktops.dragdir = 2
261         # [int] Desktop dragbar width (0: disable)
262         desktops.dragbar_width = 16
263         # [int] Desktop dragbar length (0: full)
264         desktops.dragbar_length = 0
265         # [int] Desktop dragbar button ordering
266         desktops.dragbar_ordering = 1
267         # [bool] Wrap around on desk switch (last &lt;-&gt; first on next/prev)
268         desktops.desks_wraparound = 0
269         # [bool] Slide desks in when switching
270         desktops.slidein = 1
271         # [int] Desk slide speed
272         desktops.slidespeed = 6000
273         # [int] Size of virtual desktop
274         desktops.areas_nx = 2
275         desktops.areas_ny = 1
276         # [bool] Wrap around on area switch (last &lt;-&gt; first on next/prev)
277         desktops.areas_wraparound = 0
278         # [int] Edge flip mode (0: off, 1: on, 2: only when moving window)
279         desktops.edge_flip_mode = 1
280         # [int] Edge flip resistance(pixels)
281         desktops.edge_flip_resistance = 25
282
283         # [bool] Enable ripples effect
284         effects.ripples.enabled = 0
285         # [bool] Enable waves effect
286         effects.waves.enabled = 0
287
288         # [int] Focus mode (0: pointer, 1: sloppy, 2: click)
289         focus.mode = 1
290         # [bool] Raise window when clicked
291         focus.clickraises = 1
292         # [bool] Transients are placed where leader is
293         focus.transientsfollowleader = 1
294         # [bool] When a transient is mapped the desk/area is switched to where the transient appears
295         focus.switchfortransientmap = 1
296         # [bool] Focus new windows
297         focus.all_new_windows_get_focus = 0
298         # [bool] Focus new transients
299         focus.new_transients_get_focus = 0
300         # [bool] Focus new transients if group is focused
301         focus.new_transients_get_focus_if_group_focused = 1
302         # [bool] Raise window on focus next
303         focus.raise_on_next = 1
304         # [bool] Warp pointer to window on focus next
305         focus.warp_on_next = 0
306         # [bool] Always warp pointer into window when new window is focused
307         focus.warp_always = 0
308         # [bool] Enable autoraise
309         focus.autoraise.enable = 0
310         # [int] Autoraise delay(ms)
311         focus.autoraise.delay = 500
312
313         # [bool] Default group settings
314         groups.dflt.iconify = 1
315         groups.dflt.kill = 0
316         groups.dflt.move = 1
317         groups.dflt.raise = 0
318         groups.dflt.set_border = 1
319         groups.dflt.stick = 1
320         groups.dflt.shade = 1
321         groups.swapmove = 1
322
323         # [int] Iconbox animation time(ms)
324         iconboxes.anim_time = 250
325
326         # [string] Language used by e16 (dialogs, tooltips, etc.)
327         # Inherit from environment if not set
328         locale.internal = 
329         # [string] Language exported when starting applications
330         # Inherit from environment if not set
331         locale.exported = 
332
333         # [bool] Animate menus
334         menus.animate = 0
335         # [bool] Keep menus on-screen
336         menus.onscreen = 1
337         # [bool] Warp pointer when sliding menus
338         menus.warp = 1
339         # [bool] Enable icons in menus
340         menus.show_icons = 1
341         # [int] Menu icon size(pixels)
342         menus.icon_size = 16
343         # [int] Menu navigation keycodes
344         menus.key.left = 0xff51
345         menus.key.right = 0xff53
346         menus.key.up = 0xff52
347         menus.key.down = 0xff54
348         menus.key.escape = 0xff1b
349         menus.key.ret = 0xff0d
350
351         # [int] Animation time step(ms)
352         misc.animation.step = 10
353
354         # [int] Button move resistance(pixels)
355         misc.buttons.move_resistance = 10
356
357         # [bool] Show headers in dialogs
358         misc.dialogs.headers = 0
359         # [bool] Enable images on dialog buttons
360         misc.dialogs.button_image = 0
361
362         # [bool] Enable docking of dockapps
363         misc.dock.enable = 1
364         # [bool] Make all dockapps sticky
365         misc.dock.sticky = 1
366         # [int] Dock direction
367         misc.dock.dirmode = 3
368         # [int] Dock start position
369         misc.dock.startx = 0
370         misc.dock.starty = 0
371
372         # [bool] Enable desktop background compatibility mode
373         # Fixes background in many apps using pseudotransparency
374         # May cause major slowdowns in certain setups
375         misc.hints.set_xroot_info_on_root_window = 0
376
377         # [int] Move mode (0: opaque, 1: technical, 2: box, 3: shaded, 4: semi-solid, 5: translucent)
378         misc.movres.mode_move = 0
379         # [int] Resize mode (0: opaque, 1: technical, 2: box, 3: shaded, 4: semi-solid)
380         misc.movres.mode_resize = 2
381         # [int] Geometry indicator mode (0: off, 1: window center, 2: screen corner)
382         misc.movres.mode_info = 1
383         # [int] Default maximize mode (0: Absolute, 1: Available, 2: Conservative)
384         misc.movres.mode_maximize_default = 1
385         # [int] Move/resize color (RGB) when using non-server-grabbing technincal/box modes.
386         misc.movres.color = 0xff0000
387         # [bool] Avoid server grab
388         # Use non-server-grabbing line drawing technique in technical and box modes.
389         misc.movres.avoid_server_grab = 1
390         # [bool] Send synthetic ConfigureNotify's while moving
391         # Causes pseudotransparent apps to update while moving (expensive)
392         misc.movres.update_while_moving = 0
393         # [bool] Use SYNC_REQUEST's to synchronize move/resize with client
394         misc.movres.enable_sync_request = 0
395         # [bool] Do not cover dragbar when maximizing
396         misc.movres.dragbar_nocover = 0
397
398         # [int] Composite opacity of menu windows
399         misc.opacity.menus = 85
400         # [int] Composite opacity of windows being moved
401         misc.opacity.movres = 60
402         # [int] Composite opacity of tooltip windows
403         misc.opacity.tooltips = 80
404         # [int] Composite opacity of focused windows
405         misc.opacity.focused = 100
406         # [int] Composite opacity of unfocused windows
407         misc.opacity.unfocused = 100
408
409         # [bool] Place windows manually
410         misc.place.manual = 0
411         # [bool] Place windows under pointer
412         misc.place.manual_mouse_pointer = 0
413         # [bool] Center windows when desk is full
414         misc.place.center_if_desk_full = 0
415         # [bool] Ignore windows with struts (e.g. panels) when placing new window
416         misc.place.ignore_struts = 0
417         # [bool] Raise fullscreen windows (increase stacking level while fullscreen)
418         misc.place.raise_fullscreen = 0
419         # [bool] Slide windows in
420         misc.place.slidein = 0
421         # [bool] Slide windows around while cleaning up
422         misc.place.cleanupslide = 1
423         # [int] Window slide-in mode (0: opaque, 1: technical, 2: box, 3: shaded, 4: semi-solid)
424         misc.place.slidemode = 0
425         # [int] Window slide-in speed
426         misc.place.slidespeedmap = 6000
427         # [int] Window cleanup slidespeed
428         misc.place.slidespeedcleanup = 8000
429
430         # [bool] Enable session scripts
431         misc.session.enable_script = 0
432         # [string] Session script
433         misc.session.script = $EROOT/scripts/session.sh
434         # [bool] Enable logout dialog
435         misc.session.enable_logout_dialog = 1
436         # [bool] Enable reboot/halt in logout dialog
437         misc.session.enable_reboot_halt = 0
438         # [string] Reboot command
439         misc.session.cmd_reboot = reboot
440         # [string] Halt command
441         misc.session.cmd_halt = poweroff
442
443         # [bool] Enable animation of window shading
444         misc.shading.animate = 1
445         # [int] Shading speed
446         misc.shading.speed = 8000
447
448         # [bool] Enable resistance when moving windows
449         misc.snap.enable = 1
450         # [int] Resistance at other window edge
451         misc.snap.edge_snap_dist = 8
452         # [int] Resistance at screen edge
453         misc.snap.screen_snap_dist = 32
454
455         # [bool] First time flag
456         misc.startup.firsttime = 0
457         # [bool] Enable sliding startup windows
458         misc.startup.animate = 1
459
460         # [bool] Test options (do not change)
461         misc.testing.argb_internal_objects = 0
462         misc.testing.argb_internal_clients = 0
463         misc.testing.argb_clients = 0
464         misc.testing.argb_clients_inherit_attr = 0
465         misc.testing.image_cache_size = -1
466         misc.testing.mask_alpha_threshold = 8
467         misc.testing.enable_startup_id = 1
468         misc.testing.use_render_for_scaling = 0
469         misc.testing.bindings_reload = 1
470         misc.testing.no_sync_mask = 0
471
472         # [bool] Save configuration changes
473         misc.autosave = 1
474         # [bool] Keep memory usage down (should probably always be 1)
475         misc.memory_paranoia = 1
476         # [bool] Use save-unders when appropriate
477         misc.save_under = 0
478         # [bool] Show differential time in debug output
479         misc.difftime = 0
480
481         # [bool] Enable pagers
482         pagers.enable = 1
483         # [bool] Enable zooming of pager snapshot windows
484         pagers.zoom = 1
485         # [bool] Show window name pop-ups
486         pagers.title = 1
487         # [bool] Enable high quality snapshots
488         pagers.hiq = 1
489         # [int] Pager mode (0: simple, 1: snap, 2: live)
490         pagers.mode = 2
491         # [int] Scan/update speed (lines/updates per second. Used only in snap or live mode)
492         pagers.scanspeed = 10
493         # [int] Pager buttons
494         pagers.sel_button = 2
495         pagers.win_button = 1
496         pagers.menu_button = 3
497
498         # [bool] Enable sound
499         sound.enable = 0
500         # [string] Use sounds from theme
501         sound.theme = 
502         # [int] Bits masks for disabling particular sounds
503         sound.mask1 = 0
504         sound.mask2 = 0
505
506         # [string] Theme
507         theme.name = winter
508         # [string] Colon separated list of directories containing e16 themes
509         theme.extra_path = 
510         # [bool] Use font specified by theme
511         theme.use_theme_font_cfg = 0
512         # [bool] Use alternative font configuration file (specified by theme.font_cfg)
513         theme.use_alt_font_cfg = 0
514         # [string] Alternative font configuration file
515         theme.font_cfg = 
516
517         # [bool] Enable tooltips
518         tooltips.enable = 1
519         # [bool] Enable root window tooltips
520         tooltips.showroottooltip = 1
521         # [int] Tooltip delay
522         tooltips.delay = 1500
523
524         # [int] Theme transparency(0-255)
525         transparency.alpha = 0
526         # [int] Item transparencies (0: off, 1: background, 2: glass)
527         transparency.menu = 1
528         transparency.menu_item = 1
529         transparency.tooltip = 2
530         transparency.widget = 1
531         transparency.hilight = 0
532         transparency.border = 1
533         transparency.iconbox = 1
534         transparency.dialog = 1
535         transparency.pager = 1
536         transparency.warplist = 1
537
538         # [bool] Enable focus list (alt-tab)
539         warplist.enable = 1
540         # [bool] Show sticky windows
541         warplist.showsticky = 1
542         # [bool] Show shaded windows
543         warplist.showshaded = 1
544         # [bool] Show iconified windows
545         warplist.showiconified = 1
546         # [bool] Show windows on all desks
547         warplist.showalldesks = 0
548         # [bool] Warp pointer to focused window
549         warplist.warpfocused = 1
550         # [bool] Raise window while selecting
551         warplist.raise_on_select = 1
552         # [bool] Warp pointer to window while selecting
553         warplist.warp_on_select = 0
554         # [bool] Icon mode (0: none, 3: e/app/snap, 4: app/e/snap)
555         warplist.icon_mode = 3
556       </programlisting>
557     </para>
558   </sect1>
559   <sect1 id="configurationfiles">
560     <title>Configuration files</title>
561     <para>
562       Skip this section unless you *really* want to know...
563     </para>
564     <para>
565       It is here assumed that <option>--prefix</option> is <filename class="directory">/usr</filename>, and that the default user
566       configuration directory (<filename class="directory">~/.e16</filename>) is used.
567     </para>
568     <para>
569       In general, the configuration search order for theme related configuration
570       files, say <filename>xyz.cfg</filename>, is:
571       <orderedlist>
572         <listitem>
573           <para>
574             User configuration directory, i.e. <filename>~/.e16/xyz.cfg</filename>.
575           </para>
576         </listitem>
577         <listitem>
578           <para>
579             Theme directory, i.e. <filename>/usr/share/e16/themes/&lt;theme&gt;/xyz.cfg</filename>, or
580             <filename>~/.e16/themes/&lt;theme&gt;/xyz.cfg</filename>.
581           </para>
582         </listitem>
583         <listitem>
584           <para>
585             Default configuration directory, i.e. <filename>/usr/share/e16/config/xyz.cfg</filename>.
586           </para>
587         </listitem>
588       </orderedlist>
589     </para>
590     <para>
591       Mouse and keybindings are defined in <filename>bindings.cfg</filename>. <filename>bindings.cfg</filename> is searched in
592       <orderedlist>
593         <listitem>
594           <para>
595             User configuration directory, i.e. <filename>~/.e16/bindings.cfg</filename>.
596           </para>
597         </listitem>
598         <listitem>
599           <para>
600             Default configuration directory, i.e. <filename>/usr/share/e16/config/bindings.cfg</filename>.
601           </para>
602         </listitem>
603       </orderedlist>
604     </para>
605     <para>
606       Window matches (border and icon associations) are defined in <filename>windowmatches.cfg</filename>
607       and <filename>matches.cfg</filename>.
608       <filename>windowmatches.cfg</filename> (deprecated, border associations only) is loaded first,
609       and should be found only in theme directories.
610       <filename>matches.cfg</filename> is loaded next, and searched in
611       <orderedlist>
612         <listitem>
613           <para>
614             User configuration directory, i.e. <filename>~/.e16/matches.cfg</filename>.
615           </para>
616         </listitem>
617         <listitem>
618           <para>
619             Default configuration directory, i.e. <filename>/usr/share/e16/config/matches.cfg</filename>.
620           </para>
621         </listitem>
622       </orderedlist>
623       Window match items are appended to the window match list, in the order
624       in which they are read from the configuration files.
625       When doing border/icon matches, the window match list is searched from the
626       start, and the first matching item will be used.
627     </para>
628   </sect1>
629   <sect1 id="defaultkeybindings">
630     <title>Default keybindings</title>
631     <para>
632       <simplelist type="horiz" columns="3">
633         <member>Alt-Ctrl</member><member>Home</member><member>Auto-arrange windows</member>
634         <member>Alt-Ctrl</member><member>Insert</member><member>Launch Eterm</member>
635         <member>Alt-Ctrl</member><member>Delete</member><member>Log out</member>
636         <member>Alt-Ctrl</member><member>End</member><member>Exit</member>
637         <member>Alt-Ctrl</member><member>Right</member><member>Goto next desk</member>
638         <member>Alt-Ctrl</member><member>Left</member><member>Goto previous desk</member>
639         <member>Alt-Shift</member><member>Down</member><member>Move desk area down</member>
640         <member>Alt-Shift</member><member>Up</member><member>-    -    -   up</member>
641         <member>Alt-Shift</member><member>Left</member><member>-    -    -   left</member>
642         <member>Alt-Shift</member><member>Right</member><member>-    -    -   right</member>
643         <member>Alt</member><member>F1</member><member>Goto desk 0</member>
644         <member>Alt</member><member>F2</member><member>-    -   1</member>
645         <member>Alt</member><member>F3</member><member>-    -   2</member>
646         <member>Alt</member><member>F4</member><member>-    -   3</member>
647         <member>Alt</member><member>F5</member><member>-    -   4</member>
648         <member>Alt</member><member>F6</member><member>-    -   5</member>
649         <member>Alt</member><member>F7</member><member>-    -   6</member>
650         <member>Alt</member><member>F8</member><member>-    -   7</member>
651         <member>Alt</member><member>Tab</member><member>Switch focus (using focus list, if enabled)</member>
652         <member>Alt-Ctrl</member><member>Up</member><member>Raise active window</member>
653         <member>Alt-Ctrl</member><member>Down</member><member>Lower active window</member>
654         <member>Alt-Ctrl</member><member>x</member><member>Close active window</member>
655         <member>Alt-Ctrl</member><member>k</member><member>Destroy active window</member>
656         <member>Alt-Ctrl</member><member>s</member><member>Toggle active window sticky state</member>
657         <member>Alt-Ctrl</member><member>i</member><member>Iconify active window</member>
658         <member>Alt-Ctrl</member><member>r</member><member>Toggle active window shaded state</member>
659         <member>Alt-Ctrl</member><member>f</member><member>Toggle active window fullscreen state</member>
660         <member>Alt-Ctrl</member><member>m</member><member>Toggle active window maximized state</member>
661         <member>Alt-Ctrl</member><member>w</member><member>Show window-ops menu for active window</member>
662         <member>Alt</member><member>Return</member><member>Toggle active window zoomed state</member>
663         <member>Ctrl-Shift</member><member>F1</member><member>Show User menu          (default left mouse button)</member>
664         <member>Ctrl-Shift</member><member>F2</member><member>Show Enlightenment menu (default middle mouse button)</member>
665         <member>Ctrl-Shift</member><member>F3</member><member>Show Configuration menu (default right mouse button)</member>
666         <member>Ctrl-Shift</member><member>F4</member><member>Show Window List menu   (default Alt-middle mouse button)</member>
667         <member>Alt-Ctrl</member><member>a</member><member>Toggle visibility of all buttons</member>
668         <member>Alt-Ctrl</member><member>b</member><member>Toggle visibility of theme buttons</member>
669         <member>Alt-Ctrl</member><member>c</member><member>Toggle visibility of configuration buttons</member>
670         <member>Alt-Ctrl</member><member>d</member><member>Switch dragbar position</member>
671         <member>Alt-Ctrl</member><member>o</member><member>Switch dragbar button ordering</member>
672       </simplelist>
673     </para>
674   </sect1>
675   <sect1 id="sessionscripts">
676     <title>Session Scripts</title>
677     <para>
678       <application>Enlightenment</application> can now automatically run user scripts or applications during
679       Startup, Restart, and Shutdown. This facilitates the loading of system
680       tray applets, rss readers, screensavers, and other daemons (e.g. dbus),
681       and allows for cleanup of programs that don't terminate properly when <application>E</application>
682       quits (this is especially common with <application>KDE</application> applications in <application>E</application> and the arts
683       daemon or dcop server keeps running).
684     </para>
685     <para>
686       <application>Enlightenment</application> accomplishes this with the addition of two new keys in
687       the <filename>$ECONFDIR/e_config--#.#.cfg</filename> (#.# may vary depending on your X setup -- 
688       for most people, it will be 0.0). These are:
689       <programlisting>
690         misc.session.enable_script 
691         misc.session.script 
692       </programlisting>
693     </para>
694     <para>
695       <varname>misc.session.enable_script</varname> is a boolean. When set to 1, <application>Enlightenment</application> will 
696       execute the script in the <varname>misc.session.script</varname> key. By default, this feature 
697       is disabled. When enabled, it will do nothing until the user configures
698       his/her home directory (<filename class="directory">$ECONFDIR</filename> -- normally <filename class="directory">~/.e16</filename>).
699     </para>
700     <para>
701       The default session.script is located in <filename>$EROOT/scripts/session.sh</filename> (<filename class="directory">$EROOT</filename>
702       is normally <filename class="directory">/usr/share/e16</filename> or <filename class="directory">/usr/local/share/e16</filename>). It will look for 
703       directories in the user's <filename class="directory">$ECONFDIR/</filename> (<filename class="directory">~/.e16/</filename>) called:
704       <programlisting>
705         ~/.e16/ ($ECONFDIR)
706                 Init/
707                 Start/
708                 Stop/
709       </programlisting>
710       and run any and/or all scripts or executables in each when <application>E</application> starts, 
711       restarts, and shuts down. If no scripts or executables are present, or
712       if any of the directories <filename class="directory">Init</filename>, <filename class="directory">Start</filename>, and <filename class="directory">Stop</filename> do not exist, NOTHING
713       will happen and <application>E</application> will start up as usual. So, in order to use session
714       scripts, all the user has to do is to populate the <filename class="directory">Init</filename>, <filename class="directory">Start</filename>, and <filename class="directory">Stop</filename>
715       directories with scripts, applications, or links to applications that
716       should run during Startup, Restart, or when <application>E</application> is stopped.
717     </para>
718     <para>
719       The default values for the new keys are:
720       <programlisting>
721         misc.session.enable_script = 0
722         misc.session.script = $EROOT/scripts/session.sh
723       </programlisting>
724     </para>
725     <para>
726       The user may write a custom script and place it anywhere. Simply modify 
727       the config file by using:
728       <programlisting>
729         $ eesh set misc.session.script myscript
730       </programlisting>
731       and modify it (be sure to <command>chmod +x</command> the file otherwise it won't run). 
732       The session script is called with one of three command parameters; 
733       <parameter class="command">init</parameter>, <parameter class="command">start</parameter>, and <parameter class="command">stop</parameter>. Any custom script should have a code block 
734       similar to this in order to function properly in <application>Enlightenment</application>.
735       <programlisting>
736         case "$1" in
737         init)
738                 # do blah
739                 # or do function init
740         start)
741                 # do blah
742                 # of do function start
743         stop)
744                 # do blah
745                 # or do function stop
746         esac
747       </programlisting>
748     </para>
749     <para>
750       Automatic script running can be enabled/disabled via the Session Settings
751       dialog in <application>Enlightenment</application> and checking/unchecking the option Enable Session
752       Script, by editing the user cfg file and setting the
753       <varname>misc.session.enable_script</varname> key to 1/0, or with
754       <programlisting>
755         $ eesh set misc.session.enable_script 1/0
756       </programlisting>
757       This process is very flexible since when used, the user can turn off
758       individual scripts and applications by <command>chmod -x</command> or simply leave the
759       startup directories empty or remove them.
760     </para>
761   </sect1>
762   <sect1 id="compositemanagernotes">
763     <title>Composite manager notes</title>
764     <para>
765       To use the composite manager it is required that the X-server has support
766       enabled for the COMPOSITE, DAMAGE, FIXES, and RENDER extensions.
767       For reasonable performance it is also required that hardware acceleration
768       of the RENDER extension is enabled.
769     </para>
770     <para>
771       As of version 0.16.8.2 it may happen that the borders on application windows
772       using ARGB visuals (for transparency) are "ugly". Applications may use ARGB
773       visuals intentionally (e.g. fdclock) or not (e.g. xv on 16 bit root depth).
774       Applications unintentionally using an ARGB visual will normally not be
775       rendered properly at all and should be started with the environment variable
776       <varname>XLIB_SKIP_ARGB_VISUALS</varname> set.
777       To fix border rendering on "real" ARGB windows it is required to use <filename>imlib2</filename>
778       with version &gt;= 1.3.0.
779     </para>
780     <para>
781       Tweaks:
782     </para>
783     <para>
784       As of e16 &gt;= 0.16.8.9: If there is any kind of trouble with the composite
785       manager, first check <varname>compmgr.mode</varname> (<command>eesh show compmgr</command>), and set it to 1 if
786       it isn't (<command>eesh set compmgr.mode 1</command>, restart).
787     </para>
788     <para>
789       If pop-up windows disappear immediately after having appeared (may happen
790       e.g. with certain pop-up windows when using gnome &gt; 2.12), try:
791       <programlisting>
792         $ eesh set compmgr.override_redirect.mode 0
793       </programlisting>
794       This should make the pop-up windows usable, but not always rendered properly.
795       This problem should not occur with recent X-servers.
796     </para>
797     <para>
798       If window resize/shading with composite enabled is ugly, try:
799       <programlisting>
800         $ eesh set compmgr.resize_fix_enable 1
801       </programlisting>
802       This problem should not occur with recent X-servers.
803     </para>
804   </sect1>
805   <sect1 id="fonts">
806     <title>Fonts</title>
807     <para>
808       Theme font selection depends on a number of settings and whether or not
809       the theme has font alias support.
810     </para>
811     <para>
812       For themes with font alias support the fonts are determined by a font
813       configuration file. This file is selected as follows, first hit applies:
814       <itemizedlist>
815         <listitem>
816           <para>
817             If <varname>theme.use_alt_font_cfg</varname> is set (default off) and the the file specified
818             by <varname>theme.font_cfg</varname> is found the fonts are determined by this file.
819           </para>
820         </listitem>
821         <listitem>
822           <para>
823             If <varname>theme.use_theme_font_cfg</varname> is set (default off) and the theme has a
824             <filename>fonts.theme.cfg</filename> the fonts are determined by the theme's <filename>fonts.theme.cfg</filename>.
825           </para>
826         </listitem>
827         <listitem>
828           <para>
829             If <application>e16</application> was built with <application>pango</application> support, look for <filename>fonts.pango.cfg</filename>.
830           </para>
831         </listitem>
832         <listitem>
833           <para>
834             If <application>e16</application> was built with <application>xft</application> support, look for <filename>fonts.xft.cfg</filename>.
835           </para>
836         </listitem>
837         <listitem>
838           <para>
839             Look for <filename>fonts.cfg</filename>.
840           </para>
841         </listitem>
842       </itemizedlist>
843     </para>
844     <para>
845       The font configuration file search path is <filename class="directory">~/.e16, &lt;theme-dir&gt;</filename>, and
846       <filename class="directory">/usr/share/e16/config</filename>.
847       Default <filename>fonts.pango.cfg</filename> and <filename>fonts.xft.cfg</filename> are provided in <filename class="directory">/usr/share/e16/config</filename>.
848     </para>
849     <para>
850       The default theme (winter) and the core themes (BlueSteel, BrushedMetal-Tigert,
851       Ganymede, and ShinyMetal) do have font alias support.
852     </para>
853     <para>
854       Don Harrop has made available a major number of <application>e16</application> themes which have been
855       modified for font alias support (<ulink url="http://themes.effx.us"><citetitle>themes.effx.us</citetitle></ulink>).
856     </para>
857     <para>
858       Other themes are likely to not have font alias support but in stead have font
859       references more or less scattered around in TextClass definitions in the theme
860       configuration files.
861     </para>
862     <para>
863       There are several ways to specify a font (in the font configuration file or
864       in TextClasses):
865     </para>
866     <itemizedlist>
867       <listitem>
868         <para>
869           "&lt;font name&gt;/&lt;size&gt;", e.g. "Vera/8".
870         </para>
871         <para>
872           In this case <application>e16</application> must be able to find "Vera.ttf" in <filename class="directory">&lt;theme dir&gt;/ttfonts</filename> or
873           <filename class="directory">/usr/share/e16/fonts</filename>.
874         </para>
875       </listitem>
876       <listitem>
877         <para>
878           XLFD font sets, e.g. "-*-lucida-medium-r-normal-*-12-120-*-*-*-*-*-*,-*-gulim*-medium-r-normal-*-12-120-*-*-*-*-ksc5601.1987-*".
879         </para>
880         <para>
881           <application>xfontsel</application>, <application>xlsfonts</application>, and <application>xfd</application> can be used to select and show these fonts.
882         </para>
883       </listitem>
884       <listitem>
885         <para>
886           Fontconfig font names, prefixed by "xft:", e.g. "xft:Luxi Sans-10:bold".
887         </para>
888         <para>
889           <application>fc-list</application> and <application>xfd</application> can be used to select and show these fonts.
890           This possibility (Xft support) is available as of version 0.16.8.5.
891         </para>
892       </listitem>
893       <listitem>
894         <para>
895           Pango font names, prefixed by "pango:", e.g. "pango:sans bold 10".
896         </para>
897         <para>
898           This possibility (Pango support) is available as of version 0.16.8.9.
899           Pango support must be explicitly enabled at build time with <option>--enable-pango</option>.
900         </para>
901       </listitem>
902     </itemizedlist>
903   </sect1>
904   <sect1 id="usinge16withgnome">
905     <title>Using e16 with GNOME</title>
906     <para>
907       Setting up <application>e16</application> as WM in a <application>GNOME</application> session unfortunately depends on the version
908       of <application>gnome-session</application>.
909     </para>
910     <para>
911       Recent versions of <application>gnome-session</application> seem to require that a gconf key is set
912       and that an <filename>e16.desktop</filename> file can be found:
913       <programlisting>
914         $ gconftool-2 --set /desktop/gnome/session/required_components/windowmanager --type string e16
915         $ gnome-sesssion
916       </programlisting>
917     </para>
918     <para>
919       <filename>/usr/share/applications/e16.desktop</filename> (or <filename>~/.local/share/applications/e16.desktop</filename>):
920       <programlisting>
921         [Desktop Entry]
922         Encoding=UTF-8
923         Type=Application
924         Name=E16
925         Comment=The Enlightenment (e16) window manager
926         Exec=e16
927         Icon=/usr/share/e16/misc/e16.png
928       </programlisting>
929     </para>
930     <para>
931       The section below seems to be obsolete as of <application>gnome-session-2.2x(?)</application>
932     </para>
933     <para>
934       The <application>GNOME</application> desktop can be started using <application>e16</application> as WM with:
935       <programlisting>
936         $ export WINDOW_MANAGER=e16
937         $ gnome-sesssion
938       </programlisting>
939     </para>
940     <para>
941       The section below is obsolete as of <application>gnome-session-2.16</application>
942     </para>
943     <para>
944       However, somewhere along the way the script <filename>/usr/bin/gnome-wm</filename> is called.
945       This is supposed to handle differences in all the different WM's out there,
946       but does not know of "<application>e16</application>". This will cause a major delay when starting up
947       the <application>GNOME</application> desktop.
948       One way to fix this is to use <property>gnome-session-properties</property> to get rid of
949       the "gnome-wm" session entry.
950     </para>
951     <para>
952       Another is to apply this patch to <filename>/usr/bin/gnome-wm</filename>:
953       <programlisting>
954         --- /usr/bin/gnome-wm-org       2005-04-19 21:33:53.000000000 +0200
955         +++ /usr/bin/gnome-wm   2005-11-15 20:46:09.000000000 +0100
956         @@ -69,7 +69,7 @@
957         OPT2=
958         if [ ! -z "$SMID" ] ; then
959         case `basename $WINDOW_MANAGER` in
960         -    sawfish|sawmill|metacity)
961         +    sawfish|sawmill|metacity|e16)
962         OPT1=--sm-client-id=$SMID
963         ;;
964         openbox)
965       </programlisting>
966     </para>
967   </sect1>
968   <sect1 id="usinge16withkde">
969     <title>Using e16 with KDE</title>
970     <para>
971       The <application>KDE</application> desktop can be started using <application>e16</application> as WM with:
972       <programlisting>
973         $ export KDEWM=e16
974         $ startkde
975       </programlisting>
976     </para>
977   </sect1>
978   <sect1 id="majorchangesandnewfeaturesin0168">
979     <title>Major changes and new features in 0.16.8</title>
980     <para>
981       The following sections are only relevant for users upgrading from version 0.16.7
982       or older.
983     </para>
984     <para>
985       Changes:
986       <itemizedlist>
987         <listitem>
988           <para>
989             "enlightenment" has been renamed to "e16".
990           </para>
991         </listitem>
992         <listitem>
993           <para>
994             The default user configuration directory is "<filename class="directory">~/.e16</filename>".
995           </para>
996         </listitem>
997         <listitem>
998           <para>
999             The data install path is "<filename class="directory">&lt;somepath&gt;/e16</filename>", e.g. "<filename class="directory">/usr/share/e16</filename>".
1000             Thus, an <application>e16.8</application> installation should not clash with any other versions.
1001           </para>
1002         </listitem>
1003         <listitem>
1004           <para>
1005             Various configuration file formats have changed and should be easier
1006             to read and modify, if needed.
1007           </para>
1008         </listitem>
1009         <listitem>
1010           <para>
1011             The configuration is stored per display and per screen.  E.g. for
1012             <varname>DISPLAY=:1.0</varname> the main configuration file is "<filename>~/.e16/e_config--1.0.cfg</filename>".
1013           </para>
1014         </listitem>
1015         <listitem>
1016           <para>
1017             Actions(used by menus, keybindings, etc.) and IPC functions(<application>eesh</application>) have
1018             been merged.
1019           </para>
1020         </listitem>
1021         <listitem>
1022           <para>
1023             Many IPC(<application>eesh</application>) commands have been changed, possibly breaking compatibility
1024             with a few epplets.
1025           </para>
1026         </listitem>
1027         <listitem>
1028           <para>
1029             Window matches and icondefs have been merged (into <filename>matches.cfg</filename>), see below.
1030           </para>
1031         </listitem>
1032       </itemizedlist>
1033     </para>
1034     <para>
1035       New features:
1036       <itemizedlist>
1037         <listitem>
1038           <para>
1039             Built-in composite manager.
1040           </para>
1041         </listitem>
1042         <listitem>
1043           <para>
1044             An iconbox can be configured to act as System Tray
1045             (<menuchoice><interface>middle mouse</interface><guimenu>Desktop</guimenu><guimenuitem>Create Systray</guimenuitem></menuchoice>).
1046           </para>
1047         </listitem>
1048         <listitem>
1049           <para>
1050             Possibility to run programs on startup, restart, and shutdown, see
1051             <link linkend="sessionscripts">"Session Scripts"</link> below.
1052           </para>
1053         </listitem>
1054         <listitem>
1055           <para>
1056             Possibility to track changes in remembered settings.
1057           </para>
1058         </listitem>
1059         <listitem>
1060           <para>
1061             Window operations by window matches (class, name, transient, ...),
1062             e.g. for making all windows of a certain type sticky, put it on a certain
1063             layer, etc. (see <filename>matches.cfg</filename>).
1064           </para>
1065         </listitem>
1066       </itemizedlist>
1067     </para>
1068     <para>
1069       0.16.8 should be compatible with most <application>e16</application> themes. However, user installed
1070       themes will have to be moved/linked to <filename class="directory">~/.e16/themes/</filename> or <filename class="directory">&lt;datadir&gt;/e16/themes/</filename>.
1071       A few themes will have to be tweaked to work with <application>e16.8</application>. The most likely
1072       problem is that configuration settings are included in .cfg files where they
1073       are no longer accepted.
1074       See the <link linkend="migratingfromversionsolderthan0168">"Migrating ..."</link> section below for additional information.
1075     </para>
1076     <para>
1077       <application>e16keyedit</application> &gt;= 0.3 works with e16.8.
1078     </para>
1079     <para>
1080       If used to change the keybindings, the modified settings will be stored in
1081       <filename>~/.e16/bindings.cfg</filename>.
1082       It should also be fairly straightforward to modify the key- and buttonbindings
1083       by hand. Copy <filename>/usr/share/e16/config/bindings.cfg</filename> to <filename>~/.e16/bindings.cfg</filename> and
1084       modify as desired.
1085     </para>
1086     <para>
1087       NB! <application>e16keyedit</application> only modifies keybindings, not buttonbindings.
1088     </para>
1089     <para>
1090       NB!!! Do not rename <filename class="directory">~/.enlightenment</filename> to <filename class="directory">~/.e16</filename>. It will only cause trouble.
1091     </para>
1092   </sect1>
1093   <sect1 id="migratingfromversionsolderthan0168">
1094     <title>Migrating from versions older than 0.16.8</title>
1095     <para>
1096       Users upgrading from enlightenment 0.16.7 need to read the following.
1097     </para>
1098     <para>
1099       Several organizational changes have occurred that will require
1100       some manual adjustments. Mainly these deal with changes to 
1101       configuration and shared directory names. This was done to avoid
1102       collisions with the new enlightenment DR17.
1103       <orderedlist>
1104         <listitem>
1105           <para>
1106             home configuration directory is now <filename class="directory">~/.e16</filename>, not <filename class="directory">~/.enlightenment</filename>.
1107           </para>
1108         </listitem>
1109         <listitem>
1110           <para>
1111             menu files have been moved to a subdirectory called menus
1112             you will need to move customized menus and subdirectories to
1113             <filename class="directory">~/.e16/menus</filename>.
1114           </para>
1115         </listitem>
1116         <listitem>
1117           <para>
1118             you will need to move <filename class="directory">~/.enlightenment/backgrounds</filename> files to <filename class="directory">~/.e16</filename>
1119             and any themes as well.
1120           </para>
1121         </listitem>
1122         <listitem>
1123           <para>
1124             <filename class="directory">$prefix/share/enlightenment</filename> has been changed to <filename class="directory">$prefix/share/e16</filename>
1125           </para>
1126         </listitem>
1127         <listitem>
1128           <para>
1129             if installed E-docs and Epplet directories will have to be moved 
1130             to <filename class="directory">$prefix/share/e16</filename>
1131           </para>
1132         </listitem>
1133         <listitem>
1134           <para>
1135             any additional themes that were added to the <filename class="directory">$prefix/share/enlightenment</filename>
1136             directory will have to be moved to <filename class="directory">$prefix/share/e16</filename>
1137           </para>
1138         </listitem>
1139         <listitem>
1140           <para>
1141             any startup scripts or Session scripts that reference the startup
1142             executable `<command>enlightenment</command>` must be edited to the new <command>e16</command> program.
1143           </para>
1144         </listitem>
1145       </orderedlist>
1146     </para>
1147     <para>
1148       A few themes have to be tweaked to work with 0.16.8.
1149     </para>
1150     <para>
1151       Some themes (Maw, Black E) have an <filename>actionclasses.cfg</filename> like:
1152       <programlisting>
1153         <![CDATA[
1154 #include <definitions>
1155 __E_CFG_VERSION 0
1156 #include </usr/local/enlightenment/config/actionclasses.cfg>
1157 #include </usr/share/enlightenment/config/actionclasses.cfg>
1158 ]]>
1159       </programlisting>
1160       The absolute path is obviously no longer valid.
1161       The most sensible fix for these themes is to remove the themes
1162       <filename>actionclasses.cfg</filename>. <application>e16</application> will then fall back to the default one.
1163     </para>
1164   </sect1>
1165   <sect1 id="resources">
1166     <title>Resources</title>
1167     <para>
1168       The e16-docs package is somewhat dated but still contains much relevant
1169       information about using e16.
1170       <variablelist>
1171         <varlistentry>
1172           <term>
1173             Enlightenment web site:
1174           </term>
1175           <listitem>
1176             <para>
1177               <ulink url="http://www.enlightenment.org"><citetitle>www.enlightenment.org</citetitle></ulink>
1178             </para>
1179           </listitem>
1180         </varlistentry>
1181         <varlistentry>
1182           <term>
1183             Mailing lists:
1184           </term>
1185           <listitem>
1186             <para>
1187               <ulink url="http://sourceforge.net/mail/?group_id=2"><citetitle>sourceforge.net/mail</citetitle></ulink>
1188             </para>
1189           </listitem>
1190         </varlistentry>
1191         <varlistentry>
1192           <term>
1193             IRC:
1194           </term>
1195           <listitem>
1196             <para>
1197               #e on freenode
1198             </para>
1199           </listitem>
1200         </varlistentry>
1201       </variablelist>
1202     </para>
1203   </sect1>
1204   <sect1>
1205     <title>
1206       Revision History
1207     </title>
1208     <para>
1209       <revhistory>
1210         <revision>
1211           <revnumber>33</revnumber>
1212           <date>Apr 19, 2009</date>
1213           <authorinitials>Yasufumi Haga</authorinitials>
1214           <revremark>
1215             rename README-0.16.8.xml to README.xml
1216           </revremark>
1217         </revision>
1218         <revision>
1219           <revnumber>32</revnumber>
1220           <date>Jan 25, 2009</date>
1221           <authorinitials>Yasufumi Haga</authorinitials>
1222           <revremark>
1223             Add html version converted from README-0.16.8.xml
1224             rewritten by Yasufumi Haga based on the ascii version of the file.
1225           </revremark>
1226         </revision>
1227         <revision>
1228           <revnumber>1-31</revnumber>
1229           <date>2004-2009</date>
1230           <authorinitials>Several</authorinitials>
1231           <revremark>
1232             Updates...
1233           </revremark>
1234         </revision>
1235         <revision>
1236           <revnumber>0</revnumber>
1237           <date>Dec 30, 2004</date>
1238           <authorinitials>Peter Hyman</authorinitials>
1239           <revremark>
1240             Notes on migrating to 0.16.8
1241           </revremark>
1242         </revision>
1243       </revhistory>
1244     </para>
1245   </sect1>
1246 </article>