e16/docs/e16.xml

2095 lines
85 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<article id="index">
<articleinfo>
<title>Enlightenment E16</title>
</articleinfo>
<sect1 id="documentation">
<title>User Documentation</title>
<sect2 id="about">
<title>Introduction</title>
<para>E16 is your Window Manager. The Window Manager controls the
appearance of the borders of your windows, their behavior and all user
interaction with positioning, killing, resizing, moving, iconifying,
shading etc. your windows, virtual desktops, multiple desktops, menus
attached to windows and some root window menus and can also control the
background of your desktop(s).</para>
</sect2>
<sect2>
<title>The Desktop</title>
<para>The first time e16 is started the desktop will look as described
below.</para>
<para>Across the whole top of the screen you will see a bar with arrows
pointing up and down on the left and right ends. This is your desktop
<link linkend="dragbar">dragbar</link>.</para>
<para>On the bottom-left you'll see the <link
linkend="pager">pagers</link> for desktops 0 and 1.</para>
<para>On the bottom-right you'll see an <link
linkend="iconbox">iconbox</link>.</para>
<para>Everything else is your desktop <link
linkend="backgrounds">background</link>.</para>
</sect2>
<sect2 id="rootmenu">
<title>Menus</title>
<para>When you click with your left mouse button on the desktop <link
linkend="backgrounds">background</link> you will see the "User Menus"
menu appear. Applications you may have installed will appear in this
menu. To launch one of them simply select it from the menu.</para>
<para>Clicking the middle button on the desktop <link
linkend="backgrounds">background</link> will display e16's main menu.
You can access the other menus plus more options from this menu
(including those to log out, restart and display Help
information).</para>
<para>When you click the right mouse button the "Settings" menu will
appear. From it you can enter the Settings Dialog, change background and
theme, log out, etc. The <link linkend="settings">Settings Dialog</link>
allows you to customize your desktop to better suit your needs.</para>
</sect2>
<sect2 id="mousebind">
<title>Mouse Bindings</title>
<para>Of course, when you click on the <link
linkend="desktops">desktop</link> <link
linkend="backgrounds">background</link> of your screen, normally you
will bring up a <link linkend="rootmenu">menu</link>. And of course,
when you click on the <link linkend="border">border</link> of a window,
you will do various things.</para>
<para>In e16, there are several other actions that the mouse can do by
default. For example, by holding down the ALT key when you click the
left mouse button anywhere in a window, you will find that you can <link
linkend="movemode">move</link> the window around the screen, just as if
you had used the title bar. You can also ALT middle-click in a window to
<link linkend="resizemode">resize</link> it, or use ALT and right-click
to bring up the <link linkend="windowops">Window Operations
Menu</link>.</para>
<para>Holding down the ALT key while clicking the middle mouse button on
the background of your <link linkend="desktops">desktop</link> will
bring up a menu with the titles of all currently active application
windows. Selecting one of these will take you to that application. By
using the CTRL key instead of ALT you will get a menu displaying all
current desktops as sub-menus, with applications on each desktop in the
desktop sub-menu.</para>
</sect2>
<sect2 id="mouseconfig">
<title>Mouse Configuration</title>
<para>E16 makes extensive use of the mouse. However, you may be missing
some features because of the way that your mouse is configured on your X
server.</para>
<para>If your mouse does not have a middle button you should enable
"Emulate 3 Buttons" in your X server. This option allows you to emulate
a three-button mouse by pressing both left and right mouse buttons at
once. If this does not work, three-button emulation may not be enabled.
See your X server documentation to configure this emulation.</para>
<para>This may vary from system to system. The OS and X server may also
vary the method in which you do this, if it is possible. Not having a
middle mouse button in e16, or for that matter X, is not a good thing as
it is almost assumed to be there, and is used by many applications,
including E.</para>
<para>If you have a Wheel-Mouse and X is configured to use it, e16
supports it by default.</para>
<para>Rolling your wheel up on the desktop background will take you back
a <link linkend="desktops">desktop</link>. Rolling your wheel downward
you will advance forward a desktop.</para>
</sect2>
<sect2 id="border">
<title>Using the Window Border</title>
<para>When you start an application, unless it has special properties,
it will come up on your screen with a border surrounding it that
contains a title bar and several control buttons. This border is the
primary interface to controlling an application window. The default
setup gives adequate control but still retains simplicity.</para>
<para>If you click left mouse button on the title bar and keep the mouse
button down the window will follow your mouse wherever it moves.
Respectively if you click your left mouse button and drag on any of the
resize handles, the window will be resized in that direction. Clicking
right mouse button on the resize handles will raise the windows to the
top.</para>
<para>Clicking right mouse button on the title bar or any button on the
window operations menu button on the top-left will display a menu that
has window manipulation options in it.</para>
<para>Double-clicking the title bar will make the window shade or
unshade.</para>
<para>Clicking left mouse button on the iconify button will iconify the
window and send it off to the <link linkend="iconbox">iconbox</link>.
Hitting the Maximize button will maximize the size of the application
fill your screen. Hitting it again will unmaximize, bringing the window
back to its normal size.</para>
<para>Clicking with the left mouse button on the close button will close
the window. If the application that owns that window does not respond to
a nice request to exit, then press the right mouse button on the close
button to forcibly terminate that window. This should not be used unless
the application is visibly "hung".</para>
<para>In addition to these methods, there are additional ways to
manipulate windows.</para>
<para>If you hold down the ALT key and hold down left mouse button
anywhere in the window (on the border OR in the application part) while
dragging, you will move this window around. Doing the same but with the
middle mouse button will resize the window in that direction. Clicking
the right mouse button anywhere in the window while holding down the ALT
key will bring up the window operations menu.</para>
</sect2>
<sect2 id="changeborder">
<title>Changing Window Borders</title>
<para>You may find that you don't like a particular border that a window
uses, for some reason or another. You can easily change the border style
of a window in e16 using the <link linkend="windowops">Window
Operations</link> menu, however. Select the "Set Border Style" menu, and
a list will be presented to you of available borders in this theme. The
most common use for this is to make an application shed its border,
using the BORDERLESS border type.</para>
<para>You can always click with ALT + Right mouse button anywhere in the
window to bring up the window operations menu again.</para>
<para>If you want to remember the border style for the next time you run
this application, you can always use the <link
linkend="properties">Remember</link> dialog to remember the current
window border.</para>
</sect2>
<sect2 id="defkeys">
<title>Default Keybindings</title>
<para>Below are the keybindings for e16 as it comes "from the
factory"</para>
<para><simplelist>
<member>ALT+(F1 - F8) - Go to desktop 0 - 7</member>
<member>ALT+Tab - Switch focus to the next window</member>
<member>CTRL+ALT+Home - Auto-arrange windows</member>
<member>CTRL+ALT+Del - Log out</member>
<member>CTRL+ALT+End - Restart</member>
<member>CTRL+ALT+Ins - Launch Eterm</member>
<member>CTRL+ALT+Left - Go to the previous desktop</member>
<member>CTRL+ALT+Right - Go to the next desktop</member>
<member>SHIFT+ALT+Up - Move to the virtual desktop above</member>
<member>SHIFT+ALT+Down - Move to the virtual desktop below</member>
<member>SHIFT+ALT+Left - Move to the virtual desktop on the
left</member>
<member>SHIFT+ALT+Right - Move to the virtual desktop on the
right</member>
<member>CTRL+SHIFT+F1 - Show User menu</member>
<member>CTRL+SHIFT+F2 - Show Enlightenment menu</member>
<member>CTRL+SHIFT+F3 - Show Settings menu</member>
<member>CTRL+SHIFT+F4 - Show Window List menu</member>
<member>CTRL+ALT+A - Toggle visibility of all buttons</member>
<member>CTRL+ALT+B - Toggle visibility of theme buttons</member>
<member>CTRL+ALT+C - Toggle visibility of configuration
buttons</member>
<member>CTRL+ALT+Up - Raise active window</member>
<member>CTRL+ALT+Down - Lower active window</member>
<member>CTRL+ALT+X - Close active window</member>
<member>CTRL+ALT+K - Kill active window nastily</member>
<member>CTRL+ALT+I - Iconify active window</member>
<member>CTRL+ALT+R - Shade/unshade active window</member>
<member>CTRL+ALT+S - Stick/unstick active window</member>
<member>CTRL+ALT+M - Maximize/unmaximize active window</member>
<member>CTRL+ALT+F - Enter/leave fullscreen mode for active
window</member>
<member>CTRL+ALT+W - Show Window Operations menu for active
window</member>
<member>ALT+Enter - Zoom/unzoom active window</member>
</simplelist></para>
</sect2>
<sect2 id="desktops">
<title>Multiple &amp; Virtual Desktops</title>
<para>E16 supports both Multiple and Virtual desktops. There are
distinct difference between the two, and e16 treats them
differently.</para>
<para>When you start e16 you will by default have two desktops. In e16
desktops are geometrically unrelated work areas. They are visually
stacked on top of each other and can even be dragged down to expose
desktops underneath.</para>
<para>The best way to imagine this is that each desktop is a sheet of
paper with the first desktop (desktop 0) being glued in-place. You can
re-shuffle the stack of papers and slide one down to reveal a piece of
paper underneath - the only paper you can't slide is the first one. Each
desktop (or sheet) contains your application windows.</para>
<para>Windows normally live on one desktop, but can be made to exist on
all desktops - whenever you change to a new desktop the window will
follow you and be on that desktop too. This is known as being sticky. if
a window is sticky it will "stick to the glass of your screen" and stay
there until it is not sticky anymore or the window is closed.</para>
<para>Virtual desktops (also known as desktop areas) is a measure of how
big your desktops are. A desktop can be a multiple of your screen size
in size (2x1, 2x2, 3x3, 4x2 etc.). That means each desktop has an AxB
screen size of area allocated to it and you can be looking at any
screen-sized part of it at any time. It's just like getting more sheets
of paper and taping them to the sides of your current sheet of paper. An
easy way of changing your view is by just sliding your mouse in the
direction of a currently unviewable part of your desktop. As long as you
have Edge Flip enabled e16 will automatically scroll over to that part
of the desktop.</para>
<para>To change the number of virtual desktops that you have, select
"Desks" in the <link linkend="settings">Settings Dialog</link>.</para>
<para>To change the number of virtual areas, select "Areas" in the <link
linkend="settings">Settings Dialog</link>. Use the slider bars to extend
the size of the virtual areas to the size that you prefer. You can also
use this dialog to enable/disable edge resistance (when your <link
linkend="mousebind">mouse</link> hits the edge of an area) moving
between virtual areas.</para>
<para>E16 also allows you to set a different desktop backdrop per
desktop to help you customize your environment and differentiate which
desktop is which.</para>
<para>An easy way of having e16 automatically pick up any pictures you
have is to make a directory in your ~/.e16 directory called backgrounds
and then fill that with your favorite backdrops. E16 will automatically
discover this and index them for you allowing you to select them and
change their settings. More on this topic is explained in the <link
linkend="backgrounds">Desktop Backgrounds</link> section.</para>
</sect2>
<sect2 id="changedesk">
<title>Changing Desktops</title>
<para>There are several ways that you can change your current desktop -
let's go over a few of them here.</para>
<para><simplelist>
<member>You can use the <link linkend="defkeys">Keybindings</link>
Alt-F1 through Alt-F8 for the first 8 desktops.</member>
<member>You can use the <link linkend="defkeys">Keybindings</link>
Ctrl-Alt-Left and Ctrl-Alt-Right to navigate to the next/previous
desktop.</member>
<member>You can use the <link linkend="defkeys">Keybindings</link>
Shift-Alt-arrow to change virtual areas in a given
direction.</member>
<member>You can use the <link linkend="pager">Pager</link> to
quickly navigate to the desktop/area you want by clicking on the
desired area.</member>
<member>You can use the <link linkend="dragbar">Dragbar</link> to
quickly navigate to a particular application or a particular desktop
by using the middle and right mouse buttons.</member>
<member>You can also use external applications such as the GNOME
panel's pager or the KDE panel's pager to navigate desktops and/or
applications.</member>
</simplelist></para>
</sect2>
<sect2 id="appsdesk">
<title>Moving Applications Between Desktops</title>
<para>There are several ways that you can move applications from one
desktop to another. We'll go over a few of them now.</para>
<para>The first way you can move apps between desktops is using the
<link linkend="pager">Pager</link>.</para>
<para>You can also move applications between desktops using the <link
linkend="dragbar">Dragbar</link>.</para>
<para>You can also move applications between desktops using the KDE or
GNOME desktop pagers.</para>
<para>You can also <link linkend="movemode">move</link> a window, then
bring the window with you as you change desktops using <link
linkend="defkeys">keybinding</link>.</para>
</sect2>
<sect2 id="dragbar">
<title>The Dragbar</title>
<para>If you look along the top of your screen, you will notice a long
thin bar that looks something like the bar pictured below. This is
called your Dragbar. It gets its name from its primary purpose, which is
dragging desktops around.</para>
<para>If you are on any desktop except desktop 0, you can pick up and
move that desktop in another direction. <link
linkend="desktops">Desktops</link> documentation has more information on
how to change desktops. Once you have dragged a desktop down, you can
proceed to move windows between desktops this way, instead of using the
<link linkend="pager">pager</link>.</para>
<para>You can also use the Dragbar to retrieve window lists. Use the
middle mouse button to retrieve a window list, and the right mouse
button for a window list sorted by desktops.</para>
</sect2>
<sect2 id="pager">
<title>The Pager</title>
<para>Pagers may not be a new idea in desktop environments, but the
Pager in e16 is a highly advanced and highly configurable tool for
desktop and window control, as well as a navigation tool.</para>
<para>The pager lets you see your desktop screen area in miniature. It
lets you click on a certain desktop to "visit" it, click and drag
windows around in the pager itself to move them about the screen
quickly, or between <link linkend="desktops">desktops</link>.</para>
<para>Dragging a window from one area of a pager to another will move it
there, or to another desktop. Dragging it out onto the actual desktop
will drop that window right there. You can also drag a window into the
<link linkend="iconbox">Iconbox</link> to iconify the window.</para>
<para>Pressing right-mouse button over a blank portion of the pager gets
you the pager menu. This will allow you to set a couple of quick
options. For more available options, you can select the "Pager Settings"
item, which will pop up the Pager Settings dialog.</para>
<para>This dialog box will allow you to set all sorts of additional
parameters, many of which can increase the performance of e16 on your
system. Disabling high quality snapshots and/or snapshots in general as
well as continuous updates can seriously improve performance - these
features are intended for high end machines.</para>
<para>You can resize the pager to make it the size you'd like. Hold down
ALT and use the middle-mouse button to resize the pager in any
direction. Using left-mouse button while holding ALT and dragging will
move the window. Holding down ALT while pressing right-mouse button,
just like any normal window will get you a window operations
menu.</para>
<para>In the default theme clicking the tab on the right side of the
pager with the arrow pointing right will shade and unshade the pager
window horizontally, allowing you to hide and unhide the window
easily.</para>
<para>The striped area above this tab on the pager's border is a handle
that will allow you to move the pager about, just like the title bar of
any window.</para>
</sect2>
<sect2 id="iconbox">
<title>The Iconbox</title>
<para>The iconbox is the place the icons for all your iconified windows
go. It is one method of recovering <link
linkend="minimized">minimized</link> applications. Whenever you iconify
or minimize a window it will go into an iconbox and have an icon
displayed for it there. Clicking on the icon again will de-iconify
it.</para>
<para>You can have as many icon boxes on your desktop as you want to.
You can create more by using the Middle Click <link
linkend="rootmenu">Menu</link> - select Desktop-&gt;Create New Iconbox
and a new Iconbox will pop up on your desktop. Each of these Iconboxes
can have individual configurations, as detailed on the next page.</para>
<para>You can <link linkend="movemode">move</link> the Iconbox around
the screen using Alt-Leftclick on the window, and then moving it to the
desired location on the screen. You can <link
linkend="resizemode">resize</link> the Iconbox by alt-middleclicking on
the window and then adjusting the size as described in the <link
linkend="mousebind">Mouse Bindings</link> section.</para>
<para>Clicking the right-mouse button anywhere in the Iconbox will bring
up a menu to configure that iconbox. This menu will look a little
something like the one here to the right. This menu allows you to also
close the Iconbox or open up an additional Iconbox.</para>
<para>To change the settings of an individual Iconbox, use the right
mouse button <link linkend="mousebind">menu</link> and select
"Settings". You can change the orientation, icon size, scrollbar
options, display policy, base image, and many more options of the
Iconbox from this dialog. You may choose to change the anchor of
alignment for resizes - play with it until it resizes appropriately for
your Iconbox location.</para>
<para>If you want to customize the images used for the icons in your
iconbox, there is already an example configuration supplied. To make
your own configuration copy the matches.cfg file installed in your e16
system config directory (/usr/local/e16/config/matches.cfg or
/usr/share/e16/config/matches.cfg) to your ~/.e16 directory and then
edit it.</para>
<para>There are several examples of using the globbing and matching in
the system matches.cfg file. Use that as a reference for your own
additions.</para>
</sect2>
<sect2 id="minimized">
<title>Recovering Minimized Applications</title>
<para>There are several ways to recover an application once you have
minimized it. The most obvious way is to use the <link
linkend="iconbox">Iconbox</link>. Of course, you might have had some
applications in your Iconbox when you accidentally closed it. Or maybe
you minimized some applications and forgot you didn't have an Iconbox.
Or maybe you don't like the Iconbox and usually use KDE or GNOME's panel
to recover them and forgot to launch them. Never fear. You can always
middle click on the <link linkend="dragbar">Dragbar</link> and get a
<link linkend="rootmenu">menu</link> that will allow you to recover
them. You can also Alt or Ctrl-Middleclick on the desktop to get the
same menus (in case you don't have a Dragbar anymore).</para>
<para>Remember, at any time you can always create a new <link
linkend="iconbox">Iconbox</link> to catch your applications as they
minimize, if you want to re-enable it. Unfortunately you'll have to
reconfigure it since each Iconbox can have its own <link
linkend="settings">settings</link>.</para>
</sect2>
<sect2 id="properties">
<title>Remembering Application Properties</title>
<para>In the <link linkend="windowops">Window Operations</link> menu of
every window you will see an entry labeled "Remember...". If you select
this it will bring up the "Remember" dialog for that window.</para>
<para>This dialog lets you selectively snapshot certain attributes of
that window at that time and have e16 remember them. You may choose to
only remember some of the attributes, and possibly not have the
application started automatically for you. Choose what you want e16 to
remember about that window and hit "Apply" or "OK" if you don't need the
dialog anymore, and e16 will, the next time that instance of the
application is run, apply the current location, size, border style or
any other attribute to that window. E16 can also launch the application
for you upon startup if you so wish.</para>
</sect2>
<sect2 id="settings">
<title>Settings</title>
<para>When you click the right mouse button on the desktop background
you will pop up the Settings menu. Clicking "Settings" will bring up the
Settings Dialog. From here you can select an aspect of e16 to configure
to your liking. There are too many settings to actually document fully
right now, but the likelihood is if you want a particular behavior from
e16, it is achievable by merely playing with these options.</para>
<para>Combinations of options are often required to get the effect you
want, so some experimentation may be required. Do not be frightened.
Nothing you can do can't be undone by simply changing the options back
to how they were and clicking on Apply again.</para>
</sect2>
<sect2 id="groups">
<title>Window Groups</title>
<para>Sometimes you have a number of windows on your desktop that
logically go together. E16 allows you to group windows together, so that
whenever you change a property of one window in a group, the change is
reflected on the other group members. If you have a group whose members
span multiple <link linkend="desktops">desktops</link>, changing a
group's property affects only windows of that group that are on the
current desktop.</para>
<para>The properties that you can change for an entire group include
setting the window border, iconifying, killing, moving,
raising/lowering, sticking and shading of a window.</para>
<para>To define what properties are applied to a group by default, you
go to the <link linkend="settings">Settings Dialog</link> and select
"Groups", which will give you a dialog window in which you can configure
the settings.</para>
<para>There are two different methods for manipulating window groups.
First, there's a comprehensive sub-menu available in each window's
operations menu called "Window Groups". You also are able to configure
the group individually apart from the default group settings.</para>
<para>The second way is the window title bar, which has the most
important options directly available for convenience. Shift-click to
start a group, Ctrl-clicking to add a window to the youngest group (also
referred to as the "current" group) and Shift-Ctrl-Click to destroying a
group. You can also click the middle mouse button for visualizing the
group(s) of a window. Click again to returning to the previous
border.</para>
<para>Windows can be in multiple groups at the same time, so for many
options you have to indicate which group you are referring to. Selecting
the appropriate checkboxes (showing the group members' titles) at the
top of the dialog windows.</para>
</sect2>
<sect2 id="backgrounds">
<title>Selecting and Adding backgrounds</title>
<para>Often you will want to change the background of a particular
desktop. There are several ways you can do this. But of course, to
change your desktop, you'll need to give e16 some graphics to play with.
A desktop theme may add a background or two to your available
selections, but most users want to have even more backgrounds to choose
from. To add backgrounds to your selection, make a backgrounds directory
under your home directory. To do this using most shells you can
type</para>
<programlisting>$ mkdir ~/.e16/backgrounds</programlisting>
<para>Once you have added your backgrounds, you should be able to go to
the root menu desktop selector. To get to this menu, middle click on the
desktop, select "Desktop", and go to Backgrounds. From here you will be
able to navigate the backgrounds menus.</para>
<para>Selecting any of the images there will change the desktop
background of the current desktop to the image that you have
selected.</para>
<para>E16 will attempt to choose the best settings for a particular
background, but if it gets it wrong you can always change the settings
by hand. To do this bring up the <link linkend="settings">Settings
Dialog</link> and select "Background". You can use this dialog to change
your background, too, as well as fine-tune all the various settings for
each individual background available.</para>
</sect2>
<sect2 id="tooltips">
<title>Tooltips</title>
<para>From time to time, as you use e16, if you don't remember what does
what, if you keep the mouse still for a little bit a tooltip will pop
up. The easiest example of this is when you hold the mouse over a <link
linkend="border">Window Border</link>.</para>
<para>You can disable the tooltips or change the delay before they pop
up by selecting "Tooltips" in the <link linkend="settings">Settings
Dialog</link>.</para>
</sect2>
<sect2 id="audio">
<title>Audio</title>
<para>Of course, e16 comes preconfigured to play lots of little blips
and beeps when you do various things on your desktop. In order to use
sound in e16, you must have both EsounD and audiofile installed.</para>
<para>You can enable and/or disable sound at runtime by selecting
"Sound" in the <link linkend="settings">Settings Dialog</link>.</para>
</sect2>
<sect2 id="focus">
<title>Setting the Focus</title>
<para>E16 offers lots of different options for focusing windows. By
default, it comes up in sloppy focus mode. There are two other primary
focus modes supported by e16 - click to focus and pointer focus.</para>
<para>Click To Focus most people are familiar with. You click on a
window and it receives the focus from e16.</para>
<para>Pointer Focus gives the focus to whichever window the pointer is
sitting over</para>
<para>Sloppy Focus is similar to Pointer Focus, except that if you go
over the <link linkend="backgrounds">Desktop Background</link> you still
are focused on the last window</para>
<para>E16 allows you to change your focus settings at any time. Simply
bring up the <link linkend="settings">Settings Dialog</link> and select
"Focus". At the top, we can select between our three focus modes.</para>
<para>We can also enable some other features, such as one that will
allow a simple <link linkend="mousebind">mouse</link> click to raise any
window to the foreground, as well as several other advanced focus
settings.</para>
<para>Here we can also enable the focus list feature. The focus list is
a window list that pops up as you cycle through your focus using the
ALT+TAB <link linkend="defkeys">Keybinding</link>.</para>
</sect2>
<sect2 id="movemode">
<title>Moving Windows</title>
<para>E16 comes with several different available methods for moving a
window. You can perform the actual moves using the Window <link
linkend="border">Border</link>, or by using the available <link
linkend="mousebind">Mouse Bindings</link>. This will cause the window to
move until you have released the mouse button.</para>
<para>To change the mode that the moving of the windows uses (opaque
being the default), open up the <link linkend="settings">Settings
Dialog</link>, and select "Move/Resize". You can select the mode from a
list. Experiment until you find one that suits you best.</para>
<para>For some serious eye candy, try out the Translucent move mode.
This will only work if your X server and e16 are running on the same
machine, however.</para>
</sect2>
<sect2 id="resizemode">
<title>Resizing Windows</title>
<para>E16 also comes with several available methods for resizing
windows. You can perform the actual resize on the window by clicking on
any resize-handle of your window <link linkend="border">border</link>
and dragging to the desired size. You can also get the same effect by
using the ALT + middle button <link linkend="mousebind">Mouse
Binding</link> in any part of the window.</para>
<para>To change the mode that the resizing of the windows uses (opaque
being the default), open up the <link linkend="settings">Settings
Dialog</link>, and select "Move/Resize". You can select the mode from a
list. Experiment until you find one that suits you best.</para>
<para>The best eye candy resize mode is probably technical move mode.
This mode shows you the height and width of the window, in addition to
the distance from the nearest edge.</para>
</sect2>
<sect2 id="windowops">
<title>The Window Operations Menu</title>
<para>The Window Operations menu is a commonly used menu that allows you
to perform many different actions onto the current window.</para>
<para>The Close function closes the window in question. Annihilate
destroys the window without regard to the application the window belongs
to, which is especially useful if the application refuses to respond to
being closed with Close.</para>
<para>The Iconify function iconifies the window. If you have an <link
linkend="iconbox">Iconbox</link> it is sent to the nearest one.</para>
<para>The Raise function raises the window above any windows that may be
obscuring it and Lower lowers it below windows it is obscuring.</para>
<para></para>
<para>Shade/Unshade toggles the shaded state of the window. Note that
borderless windows are not allowed to be shaded.</para>
<para>Stick/Unstick toggles the sticky state of a window. A window that
is sticky remains "stuck to the glass" and thus is visible on all
virtual and multiple <link linkend="desktops">desktops</link>.</para>
<para>Fullscreen/Window zooms in and out of the window by changing
screen resolution. This feature will only work if you have your X server
configured correctly and it supports the XVidtune extension. Your X
server may not like having resolutions changed - it is possible that an
unstable X server could crash if you use this. Be aware of this when
using this feature.</para>
<para>Remember... displays the <link linkend="properties">Remember
Properties</link> dialog that lets you select things to remember about
this instance of an application. The attributes selected to be
remembered in the state they are when you hit Apply or Ok in this
dialog. You will have to bring it up again if you wish to remember a new
state of the window.</para>
<para></para>
<para>In the <link linkend="groups">Window Groups</link> sub-menu there
are various options for configuring window groups and how this window
relates to any groups you may have.</para>
<para>You can quickly modify the size of a window to one of several
aspects of maximum sizes using the Window Size sub-menu.</para>
<para>Set Stacking lets you change the stacking layer of that
window.</para>
<para>You can change the <link linkend="changeborder">border</link>
using the Set Border Style menu if you wish to use a different window
border. If you change themes after you have changed the border, and the
new theme doesn't provide a border of the same name, the window will
fall back to using the DEFAULT border until you change it again.</para>
</sect2>
<sect2 id="placement">
<title>Window Placement</title>
<para>Selecting "Placement" in the <link linkend="settings">Settings
Dialog </link> allows you to configure various options for the placement
of windows. The two Dialog window options are for windows like the ALT+O
open URL window in Netscape. Manual Placement will force you to use the
mouse to position every new window that attempts to map itself.</para>
</sect2>
<sect2 id="eesh">
<title>E16 and IPC</title>
<para>E16 has a fairly interesting IPC system that allows external
applications (such as Eterm) to talk to e16 and both ask for information
and change information. There is a program that was installed with e16
called "eesh" that is a simple shell interface to the IPC in e16. It's
even got its own documentation. You can go into eesh and type "help" and
it should spit back a list of commands that it understands.</para>
<para>Note: there are many commands that will show up in E's IPC that
don't necessarily work yet, or aren't fully implemented. You CAN
potentially do some really bizarre things to your system by using eesh,
but for the most part it's just another interesting interface to E. In
your distribution package you should have received some sample scripts
written in Perl that interface to E through eesh showing how you can
externally script E to do more things outside E's base functionality.
Expect the IPC to flesh out even more in future revisions.</para>
<para>To exit eesh, hit CTRL + D (EOF)</para>
</sect2>
<sect2 id="editmenus">
<title>Editing E16's Menus</title>
<para>The first time you run e16 as a user after you've installed it, it
should create a directory under your home directory called .e16/menus.
In this directory, there will be a file called "file.menu" - this file
controls the contents of your left-mouse button <link
linkend="rootmenu">Menu</link>. The very first line of this file
contains the title for the menu, and the remainder of the file looks
something like this:</para>
<para>"Eterm" NULL exec "Eterm"</para>
<para>Where each column represents:</para>
<para>Entry title, graphic for menu (or NULL), exec "commandline"</para>
<para>You may have several files in here, including a KDE menu and a
Gnome menu if e16 has detected their presence during installation. If
detected, your primary apps will be located in another file called
user_apps.menu. Each of these files is for you to edit as
desired.</para>
</sect2>
<sect2 id="editkeys">
<title>Editing Your Keybindings</title>
<para>To set your own keybindings, all you have to do is find the
bindings.cfg file that was installed with e16, and make a copy in your
~/.e16 directory. This file shouldn't be too difficult to edit. Be
careful! The keybindings in this file will override ALL the default
keybindings, as long as this file exists, so edit this file with extreme
caution (unless you know what you're doing).</para>
<para>To reset your keybindings back to the default, simply remove this
file from your ~/.e16 directory. The next time you restart e16 it should
reload the default keybindings into memory.</para>
</sect2>
<sect2 id="themes">
<title>E16 and Themes</title>
<para>One of the strong points of e16, of course, is that you can change
around the complete look and feel of your desktop whenever you want to.
The e16 package itself includes only the "winter" theme. Additional
themes are distributed in the e16-themes package. You can select the the
theme from the <link linkend="rootmenu">Settings menu</link>, going to
the "Themes" selector, and then choosing a new theme.</para>
<para>Many more themes are available elsewhere, see <link
linkend="res">themes</link></para>
<para>To install a new theme is simple: all you need to do is take the
bleh.etheme file and drop it into your ~/.e16/themes directory. Once
you've restarted e16, it will automatically show up in your Themes <link
linkend="rootmenu">menu</link>, and you can choose it just like any
other theme.</para>
</sect2>
<sect2 id="eyecandy">
<title>E16's Eye candy Features</title>
<para>Of course, e16 wouldn't be complete without just a few bits of eye
candy to play with.</para>
<para>On the "FX" <link linkend="settings">settings</link> dialog you
can chose two toys:</para>
<para>The ripples effect - this causes little ripples of water to
reflect on the bottom of your screen.</para>
<para>The waves effect - similar to ripples, but this one waves up and
down as opposed to side-to-side</para>
<para>On the "Transparency" <link linkend="settings">settings</link>
dialog you can enable "Theme Transparency". A slider controls the
opacity of the window borders, etc. with respect to the desktop
background.</para>
</sect2>
<sect2 id="maint">
<title>Included Maintenance Scripts</title>
<para>E16 comes with several scripts that are executable out of the
middle mouse button/Maintenance menu - these scripts can perform all
sorts of maintenance on the files that e16 creates automatically for
you. You can also rebuild the menus from here.</para>
<para>As a warning, when you purge configuration information, the next
time you restart e16 it will take longer to load. You can monitor e16's
usage using the query tools provided. If you change themes a lot you
will probably want to purge the config file cache after you've settled
on a theme. This will help keep your disk usage by e16 down.</para>
</sect2>
<sect2 id="faq">
<title>Frequently Asked Questions</title>
<sect3>
<title>Q: I can't find my <link linkend="iconbox">Iconbox</link> or
change its settings.</title>
<para>A: There are two possibilities here.</para>
<para>1. You don't have an Iconbox on your desktop right now. Just
middle-click and select Desktop/Create new iconbox</para>
<para>2. Your Iconbox is transparent and borderless. Iconify a window
and see if your icon appears. If so, right click on it to reconfigure
your Iconbox.</para>
</sect3>
<sect3>
<title>Q: I Can't Seem To Find My Left Mouse Menu</title>
<para>A: Your menu files may be destroyed. Try rerunning the program
that initially generated them. First you'll want to remove the
~/.e16/menus/*.menu files. Rebuild them using the <link
linkend="maint">Maintenance</link> menu.</para>
</sect3>
<sect3>
<title>Q: All My Settings Are Mangled And I Can't Fix It</title>
<para>A: Well, if things get really messed up, you can always remove
all of e16's automatically saved files. Go into ~/.e16, and remove the
e_config* files, and then blow away the cached directory. The next
time you start e16 it should reset everything to the default.</para>
</sect3>
<sect3>
<title>Q: I Upgraded My Theme, But The New One Isn't Being
Used</title>
<para>A: When you upgrade a theme that does not come with e16, when
you go into your ~/.e16/themes directory, be sure to delete the
unpacked directory version of your theme that should be sitting next
to the theme, if it is there. Otherwise when e16 attempts to start the
new version it will use the old files, which causes this
problem.</para>
</sect3>
<sect3>
<title>Q: I set my window to borderless and can't set it back or move
it.</title>
<para>A: ALT + Right mouse button when pressed anywhere in the window
will give you the <link linkend="windowops">Window Operations</link>
menu. ALT + Left mouse button will move the window and ALT + Middle
mouse button will resize the window.</para>
</sect3>
<sect3>
<title>Q: How can I move or resize the iconbox?</title>
<para>A: As described above, ALT + Right mouse button will give you
the <link linkend="windowops">Window Operations</link> menu, ALT +
Middle mouse button will resize the iconbox and ALT+left mouse button
will move it. See the <link linkend="iconbox">Iconbox</link>
documentation for more help</para>
</sect3>
<sect3>
<title>Q: How can I disable that annoying desktop tooltip?</title>
<para>A: There is a special config option for it under the <link
linkend="tooltips">tooltip</link> <link
linkend="settings">settings</link> menu.</para>
</sect3>
<sect3>
<title>Q: These Docs Didn't Help, Where Can I Get More Help?</title>
<para>A: Well, we obviously can't answer all of your questions just by
predicting them, so I would try the <link linkend="res">website</link>
as well as looking at the <link linkend="res">mailing lists</link>,
especially the mail archives. Chances are that someone else has
probably had the same problem that you have. And if all that still
fails, you might try someone on the <link linkend="res">irc</link>
channel</para>
</sect3>
</sect2>
</sect1>
<sect1>
<title>Additional Notes</title>
<sect2 id="configuration">
<title>Configuration</title>
<para>All settings can be shown and set using
<application>eesh</application>.</para>
<para>To get a full list of settings: <programlisting>$ eesh show</programlisting></para>
<para>To set some parameter: <programlisting>$ eesh set &lt;parameter&gt; &lt;value&gt;</programlisting></para>
<para>Some settings will not be effective until
<application>E</application> is restarted.</para>
<para>To get a list of all <application>eesh</application> commands:
<programlisting>$ eesh help full</programlisting></para>
<para>The available configuration options are shown below. Values are
the defaults. <programlisting>
# [bool] High quality background rendering
backgrounds.hiquality = 1
# [bool] Prefer user selected backgrounds over theme settings
backgrounds.user = 1
# [bool] Do not scan all backgrounds when starting background configuration dialog
backgrounds.no_scan = 0
# [int] Time out for unused background image pixmaps
backgrounds.timeout = 240
# [bool] Enable composite manager
compmgr.enable = 0
# [int] Composite manager mode (always 1 atm)
compmgr.mode = 1
# [int] Dropshadow mode (0: off, 1: sharp, 2: blurry, 3: echo)
compmgr.shadows.mode = 0
# [int] Dropshadow offset
compmgr.shadows.offset_x = 3
compmgr.shadows.offset_y = 5
# [int] Blurry dropshadow radius
compmgr.shadows.blur.radius = 5
# [int] Blurry dropshadow opacity(%)
compmgr.shadows.blur.opacity = 75
# [int] Sharp dropshadow opacity(%)
compmgr.shadows.sharp.opacity = 30
# [int] Shadow color (0xRRGGBB)
compmgr.shadows.color = 0
# [bool] Hack to fix problems with resize on old xorg servers
compmgr.resize_fix_enable = 0
# [bool] Experimental - leave at 0
compmgr.use_name_pixmap = 0
# [bool] Use composite overlay window
compmgr.use_cow = 1
# [bool] Enable fading
compmgr.fading.enable = 1
# [int] Fading time(ms)
compmgr.fading.time = 200
# [int] Composite redirection of override-redirect windows (0: off, 1: on map, ...: testing)
# Should normally be 1 but 0 may be a partial workaround of problems with vanishing
# pop-ups on certain X-server/toolkit versions.
compmgr.override_redirect.mode = 1
# [int] Opacity of override-redirect windows (pop-up's, etc)
compmgr.override_redirect.opacity = 90
# [int] Number of desktops
desktops.num = 2
# [int] Desktop dragging direction
desktops.dragdir = 2
# [int] Desktop dragbar width (0: disable)
desktops.dragbar_width = 16
# [int] Desktop dragbar length (0: full)
desktops.dragbar_length = 0
# [int] Desktop dragbar button ordering
desktops.dragbar_ordering = 1
# [bool] Wrap around on desk switch (last &lt;-&gt; first on next/prev)
desktops.desks_wraparound = 0
# [bool] Slide desks in when switching
desktops.slidein = 1
# [int] Desk slide speed
desktops.slidespeed = 6000
# [int] Size of virtual desktop
desktops.areas_nx = 2
desktops.areas_ny = 1
# [bool] Wrap around on area switch (last &lt;-&gt; first on next/prev)
desktops.areas_wraparound = 0
# [int] Edge flip mode (0: off, 1: on, 2: only when moving window)
desktops.edge_flip_mode = 1
# [int] Edge flip resistance(pixels)
desktops.edge_flip_resistance = 25
# [bool] Enable ripples effect
effects.ripples.enabled = 0
# [bool] Enable waves effect
effects.waves.enabled = 0
# [int] Focus mode (0: pointer, 1: sloppy, 2: click)
focus.mode = 1
# [bool] Raise window when clicked
focus.clickraises = 1
# [bool] Transients are placed where leader is
focus.transientsfollowleader = 1
# [bool] When a transient is mapped the desk/area is switched to where the transient appears
focus.switchfortransientmap = 1
# [bool] Focus new windows
focus.all_new_windows_get_focus = 0
# [bool] Focus new transients
focus.new_transients_get_focus = 0
# [bool] Focus new transients if group is focused
focus.new_transients_get_focus_if_group_focused = 1
# [bool] Raise window on focus next
focus.raise_on_next = 1
# [bool] Warp pointer to window on focus next
focus.warp_on_next = 0
# [bool] Always warp pointer into window when new window is focused
focus.warp_always = 0
# [bool] Enable autoraise
focus.autoraise.enable = 0
# [int] Autoraise delay(ms)
focus.autoraise.delay = 500
# [bool] Default group settings
groups.dflt.iconify = 1
groups.dflt.kill = 0
groups.dflt.move = 1
groups.dflt.raise = 0
groups.dflt.set_border = 1
groups.dflt.stick = 1
groups.dflt.shade = 1
groups.swapmove = 1
# [int] Iconbox animation time(ms)
iconboxes.anim_time = 250
# [string] Language used by e16 (dialogs, tooltips, etc.)
# Inherit from environment if not set
locale.internal =
# [string] Language exported when starting applications
# Inherit from environment if not set
locale.exported =
# [bool] Animate menus
menus.animate = 0
# [bool] Keep menus on-screen
menus.onscreen = 1
# [bool] Warp pointer when sliding menus
menus.warp = 1
# [bool] Enable icons in menus
menus.show_icons = 1
# [int] Menu icon size(pixels)
menus.icon_size = 16
# [int] Menu navigation keycodes
menus.key.left = 0xff51
menus.key.right = 0xff53
menus.key.up = 0xff52
menus.key.down = 0xff54
menus.key.escape = 0xff1b
menus.key.ret = 0xff0d
# [int] Animation time step(ms)
misc.animation.step = 10
# [int] Button move resistance(pixels)
misc.buttons.move_resistance = 10
# [bool] Show headers in dialogs
misc.dialogs.headers = 0
# [bool] Enable images on dialog buttons
misc.dialogs.button_image = 0
# [bool] Enable docking of dockapps
misc.dock.enable = 1
# [bool] Make all dockapps sticky
misc.dock.sticky = 1
# [int] Dock direction
misc.dock.dirmode = 3
# [int] Dock start position
misc.dock.startx = 0
misc.dock.starty = 0
# [bool] Enable desktop background compatibility mode
# Fixes background in many apps using pseudotransparency
# May cause major slowdowns in certain setups
misc.hints.set_xroot_info_on_root_window = 0
# [int] Move mode (0: opaque, 1: technical, 2: box, 3: shaded, 4: semi-solid, 5: translucent)
misc.movres.mode_move = 0
# [int] Resize mode (0: opaque, 1: technical, 2: box, 3: shaded, 4: semi-solid)
misc.movres.mode_resize = 2
# [int] Geometry indicator mode (0: off, 1: window center, 2: screen corner)
misc.movres.mode_info = 1
# [int] Default maximize mode (0: Absolute, 1: Available, 2: Conservative)
misc.movres.mode_maximize_default = 1
# [int] Move/resize color (RGB) when using non-server-grabbing technical/box modes.
misc.movres.color = 0xff0000
# [bool] Avoid server grab
# Use non-server-grabbing line drawing technique in technical and box modes.
misc.movres.avoid_server_grab = 1
# [bool] Send synthetic ConfigureNotify's while moving
# Causes pseudo-transparent apps to update while moving (expensive)
misc.movres.update_while_moving = 0
# [bool] Use SYNC_REQUEST's to synchronize move/resize with client
misc.movres.enable_sync_request = 0
# [bool] Do not cover dragbar when maximizing
misc.movres.dragbar_nocover = 0
# [int] Composite opacity of menu windows
misc.opacity.menus = 85
# [int] Composite opacity of windows being moved
misc.opacity.movres = 60
# [int] Composite opacity of tooltip windows
misc.opacity.tooltips = 80
# [int] Composite opacity of focused windows
misc.opacity.focused = 100
# [int] Composite opacity of unfocused windows
misc.opacity.unfocused = 100
# [bool] Place windows manually
misc.place.manual = 0
# [bool] Place windows under pointer
misc.place.manual_mouse_pointer = 0
# [bool] Center windows when desk is full
misc.place.center_if_desk_full = 0
# [bool] Ignore windows with struts (e.g. panels) when placing new window
misc.place.ignore_struts = 0
# [bool] Raise fullscreen windows (increase stacking level while fullscreen)
misc.place.raise_fullscreen = 0
# [bool] Slide windows in
misc.place.slidein = 0
# [bool] Slide windows around while cleaning up
misc.place.cleanupslide = 1
# [int] Window slide-in mode (0: opaque, 1: technical, 2: box, 3: shaded, 4: semi-solid)
misc.place.slidemode = 0
# [int] Window slide-in speed
misc.place.slidespeedmap = 6000
# [int] Window cleanup slidespeed
misc.place.slidespeedcleanup = 8000
# [bool] Enable session scripts
misc.session.enable_script = 0
# [string] Session script
misc.session.script = $EROOT/scripts/session.sh
# [bool] Enable logout dialog
misc.session.enable_logout_dialog = 1
# [bool] Enable reboot/halt in logout dialog
misc.session.enable_reboot_halt = 0
# [string] Reboot command
misc.session.cmd_reboot = reboot
# [string] Halt command
misc.session.cmd_halt = poweroff
# [bool] Enable animation of window shading
misc.shading.animate = 1
# [int] Shading speed
misc.shading.speed = 8000
# [bool] Enable resistance when moving windows
misc.snap.enable = 1
# [int] Resistance at other window edge
misc.snap.edge_snap_dist = 8
# [int] Resistance at screen edge
misc.snap.screen_snap_dist = 32
# [bool] First time flag
misc.startup.firsttime = 0
# [bool] Enable sliding startup windows
misc.startup.animate = 1
# [bool] Test options (do not change)
misc.testing.argb_internal_objects = 0
misc.testing.argb_internal_clients = 0
misc.testing.argb_clients = 0
misc.testing.argb_clients_inherit_attr = 0
misc.testing.image_cache_size = -1
misc.testing.mask_alpha_threshold = 8
misc.testing.enable_startup_id = 1
misc.testing.use_render_for_scaling = 0
misc.testing.bindings_reload = 1
misc.testing.no_sync_mask = 0
# [bool] Save configuration changes
misc.autosave = 1
# [bool] Keep memory usage down (should probably always be 1)
misc.memory_paranoia = 1
# [bool] Use save-unders when appropriate
misc.save_under = 0
# [bool] Show differential time in debug output
misc.difftime = 0
# [bool] Enable pagers
pagers.enable = 1
# [bool] Enable zooming of pager snapshot windows
pagers.zoom = 1
# [bool] Show window name pop-ups
pagers.title = 1
# [bool] Enable high quality snapshots
pagers.hiq = 1
# [int] Pager mode (0: simple, 1: snap, 2: live)
pagers.mode = 2
# [int] Scan/update speed (lines/updates per second. Used only in snap or live mode)
pagers.scanspeed = 10
# [int] Pager buttons
pagers.sel_button = 2
pagers.win_button = 1
pagers.menu_button = 3
# [bool] Enable sound
sound.enable = 0
# [string] Use sounds from theme
sound.theme =
# [int] Bits masks for disabling particular sounds
sound.mask1 = 0
sound.mask2 = 0
# [string] Theme
theme.name = winter
# [string] Colon separated list of directories containing e16 themes
theme.extra_path =
# [bool] Use font specified by theme
theme.use_theme_font_cfg = 0
# [bool] Use alternative font configuration file (specified by theme.font_cfg)
theme.use_alt_font_cfg = 0
# [string] Alternative font configuration file
theme.font_cfg =
# [bool] Enable tooltips
tooltips.enable = 1
# [bool] Enable root window tooltips
tooltips.showroottooltip = 1
# [int] Tooltip delay
tooltips.delay = 1500
# [int] Theme transparency(0-255)
transparency.alpha = 0
# [int] Item transparencies (0: off, 1: background, 2: glass)
transparency.menu = 1
transparency.menu_item = 1
transparency.tooltip = 2
transparency.widget = 1
transparency.hilight = 0
transparency.border = 1
transparency.iconbox = 1
transparency.dialog = 1
transparency.pager = 1
transparency.warplist = 1
# [bool] Enable focus list (alt-tab)
warplist.enable = 1
# [bool] Show sticky windows
warplist.showsticky = 1
# [bool] Show shaded windows
warplist.showshaded = 1
# [bool] Show iconified windows
warplist.showiconified = 1
# [bool] Show windows on all desks
warplist.showalldesks = 0
# [bool] Warp pointer to focused window
warplist.warpfocused = 1
# [bool] Raise window while selecting
warplist.raise_on_select = 1
# [bool] Warp pointer to window while selecting
warplist.warp_on_select = 0
# [bool] Icon mode (0: none, 3: e/app/snap, 4: app/e/snap)
warplist.icon_mode = 3
</programlisting></para>
</sect2>
<sect2 id="configurationfiles">
<title>Configuration Files</title>
<para>Skip this section unless you *really* want to know...</para>
<para>It is here assumed that <option>--prefix</option> is <filename
class="directory">/usr</filename>, and that the default user
configuration directory (<filename class="directory">~/.e16</filename>)
is used.</para>
<para>In general, the configuration search order for theme related
configuration files, say <filename>xyz.cfg</filename>, is: <orderedlist>
<listitem>
<para>User configuration directory, i.e.
<filename>~/.e16/xyz.cfg</filename>.</para>
</listitem>
<listitem>
<para>Theme directory, i.e.
<filename>/usr/share/e16/themes/&lt;theme&gt;/xyz.cfg</filename>,
or
<filename>~/.e16/themes/&lt;theme&gt;/xyz.cfg</filename>.</para>
</listitem>
<listitem>
<para>Default configuration directory, i.e.
<filename>/usr/share/e16/config/xyz.cfg</filename>.</para>
</listitem>
</orderedlist></para>
<para>Mouse and keybindings are defined in
<filename>bindings.cfg</filename>. <filename>bindings.cfg</filename> is
searched in <orderedlist>
<listitem>
<para>User configuration directory, i.e.
<filename>~/.e16/bindings.cfg</filename>.</para>
</listitem>
<listitem>
<para>Default configuration directory, i.e.
<filename>/usr/share/e16/config/bindings.cfg</filename>.</para>
</listitem>
</orderedlist></para>
<para>Window matches (border and icon associations) are defined in
<filename>windowmatches.cfg</filename> and
<filename>matches.cfg</filename>. <filename>windowmatches.cfg</filename>
(deprecated, border associations only) is loaded first, and should be
found only in theme directories. <filename>matches.cfg</filename> is
loaded next, and searched in <orderedlist>
<listitem>
<para>User configuration directory, i.e.
<filename>~/.e16/matches.cfg</filename>.</para>
</listitem>
<listitem>
<para>Default configuration directory, i.e.
<filename>/usr/share/e16/config/matches.cfg</filename>.</para>
</listitem>
</orderedlist> Window match items are appended to the window match
list, in the order in which they are read from the configuration files.
When doing border/icon matches, the window match list is searched from
the start, and the first matching item will be used.</para>
</sect2>
<sect2 id="sessionscripts">
<title>Session Scripts</title>
<para><application>Enlightenment</application> can now automatically run
user scripts or applications during Startup, Restart, and Shutdown. This
facilitates the loading of system tray applets, rss readers, screen
savers, and other daemons (e.g. dbus), and allows for cleanup of
programs that don't terminate properly when <application>E</application>
quits (this is especially common with <application>KDE</application>
applications in <application>E</application> and the arts daemon or dcop
server keeps running).</para>
<para><application>Enlightenment</application> accomplishes this with
the addition of two new keys in the
<filename>$ECONFDIR/e_config--#.#.cfg</filename> (#.# may vary depending
on your X setup -- for most people, it will be 0.0). These are:
<programlisting>
misc.session.enable_script
misc.session.script
</programlisting></para>
<para><varname>misc.session.enable_script</varname> is a boolean. When
set to 1, <application>Enlightenment</application> will execute the
script in the <varname>misc.session.script</varname> key. By default,
this feature is disabled. When enabled, it will do nothing until the
user configures his/her home directory (<filename
class="directory">$ECONFDIR</filename> -- normally <filename
class="directory">~/.e16</filename>).</para>
<para>The default session.script is located in
<filename>$EROOT/scripts/session.sh</filename> (<filename
class="directory">$EROOT</filename> is normally <filename
class="directory">/usr/share/e16</filename> or <filename
class="directory">/usr/local/share/e16</filename>). It will look for
directories in the user's <filename
class="directory">$ECONFDIR/</filename> (<filename
class="directory">~/.e16/</filename>) called: <programlisting>
~/.e16/ ($ECONFDIR)
Init/
Start/
Stop/
</programlisting> and run any and/or all scripts or executables in each
when <application>E</application> starts, restarts, and shuts down. If
no scripts or executables are present, or 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 will happen and
<application>E</application> will start up as usual. So, in order to use
session 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> directories with scripts,
applications, or links to applications that should run during Startup,
Restart, or when <application>E</application> is stopped.</para>
<para>The default values for the new keys are: <programlisting>
misc.session.enable_script = 0
misc.session.script = $EROOT/scripts/session.sh
</programlisting></para>
<para>The user may write a custom script and place it anywhere. Simply
modify the config file by using: <programlisting>$ eesh set misc.session.script myscript</programlisting>
and modify it (be sure to <command>chmod +x</command> the file otherwise
it won't run). The session script is called with one of three command
parameters; <parameter class="command">init</parameter>, <parameter
class="command">start</parameter>, and <parameter
class="command">stop</parameter>. Any custom script should have a code
block similar to this in order to function properly in
<application>Enlightenment</application>. <programlisting>
case "$1" in
init)
# do blah
# or do function init
start)
# do blah
# of do function start
stop)
# do blah
# or do function stop
esac
</programlisting></para>
<para>Automatic script running can be enabled/disabled in the Settings
Dialog under "Session", by editing the user cfg file and setting the
<varname>misc.session.enable_script</varname> key to 1/0, or with
<programlisting>$ eesh set misc.session.enable_script 1/0</programlisting>This
process is very flexible since when used, the user can turn off
individual scripts and applications by <command>chmod -x</command> or
simply leave the startup directories empty or remove them.</para>
</sect2>
<sect2 id="compositemanagernotes">
<title>Composite Manager</title>
<para>To use the composite manager it is required that the X-server has
support enabled for the COMPOSITE, DAMAGE, FIXES, and RENDER extensions.
For reasonable performance it is also required that hardware
acceleration of the RENDER extension is enabled.</para>
<para>As of version 0.16.8.2 it may happen that the borders on
application windows using ARGB visuals (for transparency) are "ugly".
Applications may use ARGB visuals intentionally (e.g. fdclock) or not
(e.g. xv on 16 bit root depth). Applications unintentionally using an
ARGB visual will normally not be rendered properly at all and should be
started with the environment variable
<varname>XLIB_SKIP_ARGB_VISUALS</varname> set. To fix border rendering
on "real" ARGB windows it is required to use <filename>imlib2</filename>
with version &gt;= 1.3.0.</para>
<para>Tweaks:</para>
<para>As of e16 &gt;= 0.16.8.9: If there is any kind of trouble with the
composite manager, first check <varname>compmgr.mode</varname>
(<command>eesh show compmgr</command>), and set it to 1 if it isn't
(<command>eesh set compmgr.mode 1</command>, restart).</para>
<para>If pop-up windows disappear immediately after having appeared (may
happen e.g. with certain pop-up windows when using gnome &gt; 2.12),
try: <programlisting>$ eesh set compmgr.override_redirect.mode 0</programlisting>
This should make the pop-up windows usable, but not always rendered
properly. This problem should not occur with recent X-servers.</para>
<para>If window resize/shading with composite enabled is ugly, try:
<programlisting>$ eesh set compmgr.resize_fix_enable 1</programlisting>
This problem should not occur with recent X-servers.</para>
</sect2>
<sect2 id="fonts">
<title>Fonts</title>
<para>Theme font selection depends on a number of settings and whether
or not the theme has font alias support.</para>
<para>For themes with font alias support the fonts are determined by a
font configuration file. This file is selected as follows, first hit
applies: <itemizedlist>
<listitem>
<para>If <varname>theme.use_alt_font_cfg</varname> is set (default
off) and the the file specified by
<varname>theme.font_cfg</varname> is found the fonts are
determined by this file.</para>
</listitem>
<listitem>
<para>If <varname>theme.use_theme_font_cfg</varname> is set
(default off) and the theme has a
<filename>fonts.theme.cfg</filename> the fonts are determined by
the theme's <filename>fonts.theme.cfg</filename>.</para>
</listitem>
<listitem>
<para>If <application>e16</application> was built with
<application>pango</application> support, look for
<filename>fonts.pango.cfg</filename>.</para>
</listitem>
<listitem>
<para>If <application>e16</application> was built with
<application>xft</application> support, look for
<filename>fonts.xft.cfg</filename>.</para>
</listitem>
<listitem>
<para>Look for <filename>fonts.cfg</filename>.</para>
</listitem>
</itemizedlist></para>
<para>The font configuration file search path is <filename
class="directory">~/.e16, &lt;theme-dir&gt;</filename>, and <filename
class="directory">/usr/share/e16/config</filename>. Default
<filename>fonts.pango.cfg</filename> and
<filename>fonts.xft.cfg</filename> are provided in <filename
class="directory">/usr/share/e16/config</filename>.</para>
<para>The default theme (winter) and the core themes (BlueSteel,
BrushedMetal-Tigert, Ganymede, and ShinyMetal) do have font alias
support.</para>
<para>Don Harrop has made available a major number of
<application>e16</application> themes which have been modified for font
alias support (<ulink
url="http://themes.effx.us"><citetitle>themes.effx.us</citetitle></ulink>).</para>
<para>Other themes are likely to not have font alias support but in
stead have font references more or less scattered around in TextClass
definitions in the theme configuration files.</para>
<para>There are several ways to specify a font (in the font
configuration file or in TextClasses):</para>
<itemizedlist>
<listitem>
<para>"&lt;font name&gt;/&lt;size&gt;", e.g. "Vera/8".</para>
<para>In this case <application>e16</application> must be able to
find "Vera.ttf" in <filename class="directory">&lt;theme
dir&gt;/ttfonts</filename> or <filename
class="directory">/usr/share/e16/fonts</filename>.</para>
</listitem>
<listitem>
<para>XLFD font sets, e.g.
"-*-lucida-medium-r-normal-*-12-120-*-*-*-*-*-*,-*-gulim*-medium-r-normal-*-12-120-*-*-*-*-ksc5601.1987-*".</para>
<para><application>xfontsel</application>,
<application>xlsfonts</application>, and
<application>xfd</application> can be used to select and show these
fonts.</para>
</listitem>
<listitem>
<para>Fontconfig font names, prefixed by "xft:", e.g. "xft:Luxi
Sans-10:bold".</para>
<para><application>fc-list</application> and
<application>xfd</application> can be used to select and show these
fonts. This possibility (Xft support) is available as of version
0.16.8.5.</para>
</listitem>
<listitem>
<para>Pango font names, prefixed by "pango:", e.g. "pango:sans bold
10".</para>
<para>This possibility (Pango support) is available as of version
0.16.8.9. Pango support must be explicitly enabled at build time
with <option>--enable-pango</option>.</para>
</listitem>
</itemizedlist>
</sect2>
<sect2 id="usinge16withgnome">
<title>Using E16 with GNOME</title>
<para>Setting up <application>e16</application> as WM in a
<application>GNOME</application> session unfortunately depends on the
version of <application>gnome-session</application>.</para>
<para>Recent versions of <application>gnome-session</application> seem
to require that a gconf key is set and that an
<filename>e16.desktop</filename> file can be found: <programlisting>
$ gconftool-2 --set /desktop/gnome/session/required_components/windowmanager --type string e16
$ gnome-sesssion
</programlisting></para>
<para><filename>/usr/share/applications/e16.desktop</filename> (or
<filename>~/.local/share/applications/e16.desktop</filename>):
<programlisting>
[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=E16
Comment=The Enlightenment (E16) window manager
Exec=e16
Icon=/usr/share/e16/icons/e16.png
</programlisting></para>
<para>The section below seems to be obsolete as of
<application>gnome-session-2.2x(?)</application></para>
<para>The <application>GNOME</application> desktop can be started using
<application>e16</application> as WM with: <programlisting>
$ export WINDOW_MANAGER=e16
$ gnome-sesssion
</programlisting></para>
<para>The section below is obsolete as of
<application>gnome-session-2.16</application></para>
<para>However, somewhere along the way the script
<filename>/usr/bin/gnome-wm</filename> is called. This is supposed to
handle differences in all the different WM's out there, but does not
know of "<application>e16</application>". This will cause a major delay
when starting up the <application>GNOME</application> desktop. One way
to fix this is to use <property>gnome-session-properties</property> to
get rid of the "gnome-wm" session entry.</para>
<para>Another is to apply this patch to
<filename>/usr/bin/gnome-wm</filename>: <programlisting>
--- /usr/bin/gnome-wm-org 2005-04-19 21:33:53.000000000 +0200
+++ /usr/bin/gnome-wm 2005-11-15 20:46:09.000000000 +0100
@@ -69,7 +69,7 @@
OPT2=
if [ ! -z "$SMID" ] ; then
case `basename $WINDOW_MANAGER` in
- sawfish|sawmill|metacity)
+ sawfish|sawmill|metacity|e16)
OPT1=--sm-client-id=$SMID
;;
openbox)
</programlisting></para>
</sect2>
<sect2 id="usinge16withkde">
<title>Using E16 with KDE</title>
<para>The <application>KDE</application> desktop can be started using
<application>e16</application> as WM with: <programlisting>
$ export KDEWM=e16
$ startkde
</programlisting></para>
</sect2>
<sect2 id="versions">
<title>Versions</title>
<para><variablelist>
<varlistentry>
<term>e16-1.0.0:</term>
<listitem>
<para>No major changes, might as well have been
0.16.8.16.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>e16-0.16.8</term>
<listitem>
<para><itemizedlist>
<listitem>
<para>Released Feb 2006</para>
</listitem>
<listitem>
<para>enlightenment -&gt; e16</para>
</listitem>
<listitem>
<para>Major internal rewrite</para>
</listitem>
<listitem>
<para>Changed configuration system</para>
</listitem>
<listitem>
<para>Added compositing manager</para>
</listitem>
</itemizedlist></para>
</listitem>
</varlistentry>
<varlistentry>
<term>enlightenment-0.16.7</term>
<listitem>
<para><itemizedlist>
<listitem>
<para>Released Jul 2004</para>
</listitem>
<listitem>
<para>Migrated to imlib2</para>
</listitem>
</itemizedlist></para>
</listitem>
</varlistentry>
<varlistentry>
<term>enlightenment-0.16.6</term>
<listitem>
<para><itemizedlist>
<listitem>
<para>Released Nov 2003</para>
</listitem>
<listitem>
<para>Added extended window manager hint support</para>
</listitem>
</itemizedlist></para>
</listitem>
</varlistentry>
<varlistentry>
<term>enlightenment-0.16.5</term>
<listitem>
<para>Released Oct 2000</para>
</listitem>
</varlistentry>
<varlistentry>
<term>enlightenment-0.16.0</term>
<listitem>
<para>Released Oct 1999</para>
</listitem>
</varlistentry>
</variablelist></para>
</sect2>
<sect2 id="majorchangesandnewfeaturesin0168">
<title>Major changes and new features in 0.16.8</title>
<para>The following sections are only relevant for users upgrading from
version 0.16.7 or older.</para>
<para>Changes: <itemizedlist>
<listitem>
<para>"enlightenment" has been renamed to "e16".</para>
</listitem>
<listitem>
<para>The default user configuration directory is "<filename
class="directory">~/.e16</filename>".</para>
</listitem>
<listitem>
<para>The data install path is "<filename
class="directory">&lt;somepath&gt;/e16</filename>", e.g.
"<filename class="directory">/usr/share/e16</filename>". Thus, an
<application>e16.8</application> installation should not clash
with any other versions.</para>
</listitem>
<listitem>
<para>Various configuration file formats have changed and should
be easier to read and modify, if needed.</para>
</listitem>
<listitem>
<para>The configuration is stored per display and per screen. E.g.
for <varname>DISPLAY=:1.0</varname> the main configuration file is
"<filename>~/.e16/e_config--1.0.cfg</filename>".</para>
</listitem>
<listitem>
<para>Actions(used by menus, keybindings, etc.) and IPC
functions(<application>eesh</application>) have been
merged.</para>
</listitem>
<listitem>
<para>Many IPC(<application>eesh</application>) commands have been
changed, possibly breaking compatibility with a few
epplets.</para>
</listitem>
<listitem>
<para>Window matches and icondefs have been merged (into
<filename>matches.cfg</filename>), see below.</para>
</listitem>
</itemizedlist></para>
<para>New features: <itemizedlist>
<listitem>
<para>Built-in composite manager.</para>
</listitem>
<listitem>
<para>An iconbox can be configured to act as System Tray
(<menuchoice>
<interface>middle mouse</interface>
<guimenu>Desktop</guimenu>
<guimenuitem>Create Systray</guimenuitem>
</menuchoice>).</para>
</listitem>
<listitem>
<para>Possibility to run programs on startup, restart, and
shutdown, see <link linkend="sessionscripts">"Session
Scripts"</link> below.</para>
</listitem>
<listitem>
<para>Possibility to track changes in remembered settings.</para>
</listitem>
<listitem>
<para>Window operations by window matches (class, name, transient,
...), e.g. for making all windows of a certain type sticky, put it
on a certain layer, etc. (see
<filename>matches.cfg</filename>).</para>
</listitem>
</itemizedlist></para>
<para>0.16.8 should be compatible with most
<application>e16</application> themes. However, user installed themes
will have to be moved/linked to <filename
class="directory">~/.e16/themes/</filename> or <filename
class="directory">&lt;datadir&gt;/e16/themes/</filename>. A few themes
will have to be tweaked to work with <application>e16.8</application>.
The most likely problem is that configuration settings are included in
.cfg files where they are no longer accepted. See the <link
linkend="migratingfromversionsolderthan0168">"Migrating ..."</link>
section below for additional information.</para>
<para><application>e16keyedit</application> &gt;= 0.3 works with
e16.8.</para>
<para>If used to change the keybindings, the modified settings will be
stored in <filename>~/.e16/bindings.cfg</filename>. It should also be
fairly straightforward to modify the key- and buttonbindings by hand.
Copy <filename>/usr/share/e16/config/bindings.cfg</filename> to
<filename>~/.e16/bindings.cfg</filename> and modify as desired.</para>
<para>NB! <application>e16keyedit</application> only modifies
keybindings, not buttonbindings.</para>
<para>NB!!! Do not rename <filename
class="directory">~/.enlightenment</filename> to <filename
class="directory">~/.e16</filename>. It will only cause trouble.</para>
</sect2>
<sect2 id="migratingfromversionsolderthan0168">
<title>Migrating from versions older than 0.16.8</title>
<para>Users upgrading from enlightenment 0.16.7 need to read the
following.</para>
<para>Several organizational changes have occurred that will require
some manual adjustments. Mainly these deal with changes to configuration
and shared directory names. This was done to avoid collisions with the
new enlightenment DR17. <orderedlist>
<listitem>
<para>home configuration directory is now <filename
class="directory">~/.e16</filename>, not <filename
class="directory">~/.enlightenment</filename>.</para>
</listitem>
<listitem>
<para>menu files have been moved to a subdirectory called menus
you will need to move customized menus and subdirectories to
<filename class="directory">~/.e16/menus</filename>.</para>
</listitem>
<listitem>
<para>you will need to move <filename
class="directory">~/.enlightenment/backgrounds</filename> files to
<filename class="directory">~/.e16</filename> and any themes as
well.</para>
</listitem>
<listitem>
<para><filename
class="directory">$prefix/share/enlightenment</filename> has been
changed to <filename
class="directory">$prefix/share/e16</filename></para>
</listitem>
<listitem>
<para>if installed E-docs and Epplet directories will have to be
moved to <filename
class="directory">$prefix/share/e16</filename></para>
</listitem>
<listitem>
<para>any additional themes that were added to the <filename
class="directory">$prefix/share/enlightenment</filename> directory
will have to be moved to <filename
class="directory">$prefix/share/e16</filename></para>
</listitem>
<listitem>
<para>any startup scripts or Session scripts that reference the
startup executable `<command>enlightenment</command>` must be
edited to the new <command>e16</command> program.</para>
</listitem>
</orderedlist></para>
<para>A few themes have to be tweaked to work with 0.16.8.</para>
<para>Some themes (Maw, Black E) have an
<filename>actionclasses.cfg</filename> like: <programlisting>
#include &lt;definitions&gt;
__E_CFG_VERSION 0
#include &lt;/usr/local/enlightenment/config/actionclasses.cfg&gt;
#include &lt;/usr/share/enlightenment/config/actionclasses.cfg&gt;
</programlisting> The absolute path is obviously no longer valid. The
most sensible fix for these themes is to remove the themes
<filename>actionclasses.cfg</filename>. <application>e16</application>
will then fall back to the default one.</para>
</sect2>
</sect1>
<sect1 id="installation">
<title>Installation</title>
<para>Requirements:</para>
<para><itemizedlist>
<listitem>
<para><filename>imlib2</filename> &gt;= 1.2.0 is required, &gt;=
1.4.2 is recommended.</para>
</listitem>
<listitem>
<para><filename>imlib2</filename> must be built with png
support.</para>
</listitem>
</itemizedlist></para>
<para>Extract distribution tarball, build, and install:</para>
<para><programlisting>
$ tar -xzvf e16-&lt;version&gt;.tar.gz
$ cd e16-&lt;version&gt;
$ ./configure
$ make
$ sudo make install
</programlisting></para>
<para>For additional help on package configuration, see <programlisting>
$ ./configure --help
</programlisting></para>
</sect1>
<sect1 id="res">
<title>Resources</title>
<para><variablelist>
<varlistentry>
<term>Enlightenment web site:</term>
<listitem>
<para><ulink
url="http://www.enlightenment.org"><citetitle>http://www.enlightenment.org</citetitle></ulink></para>
</listitem>
</varlistentry>
<varlistentry>
<term>Forums:</term>
<listitem>
<para><ulink
url="http://forum.enlightenment.org"><citetitle>http://forum.enlightenment.org</citetitle></ulink></para>
</listitem>
</varlistentry>
<varlistentry>
<term>Mailing lists:</term>
<listitem>
<para><ulink
url="http://sourceforge.net/mail/?group_id=2"><citetitle>http://sourceforge.net/mail/?group_id=2</citetitle></ulink></para>
</listitem>
</varlistentry>
<varlistentry>
<term>Download:</term>
<listitem>
<para><ulink
url="http://sourceforge.net/projects/enlightenment/files"><citetitle>http://sourceforge.net/projects/enlightenment/files</citetitle></ulink></para>
</listitem>
</varlistentry>
<varlistentry>
<term>Themes and theming documentation:</term>
<listitem>
<para><ulink
url="http://themes.effx.us/e16"><citetitle>http://themes.effx.us/e16</citetitle></ulink></para>
</listitem>
</varlistentry>
<varlistentry>
<term>IRC:</term>
<listitem>
<para>#e on freenode</para>
</listitem>
</varlistentry>
</variablelist></para>
</sect1>
<sect1 id="credits">
<title>Credits</title>
<para>This note contains contributions by <itemizedlist>
<listitem>
<para>Kim Woelders</para>
</listitem>
<listitem>
<para>Peter Hyman <email>pete4abw@comcast.net</email></para>
</listitem>
<listitem>
<para>Yasufumi Haga <email>yasufumi.haga@nifty.com</email></para>
</listitem>
</itemizedlist></para>
</sect1>
</article>