Enlightenment E16 User Documentation Introduction 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). The Desktop The first time e16 is started the desktop will look as described below. 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 dragbar. On the bottom-left you'll see the pagers for desktops 0 and 1. On the bottom-right you'll see an iconbox. Everything else is your desktop background. Menus When you click with your left mouse button on the desktop background 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. Clicking the middle button on the desktop background 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). 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 Settings Dialog allows you to customize your desktop to better suit your needs. Mouse Bindings Of course, when you click on the desktop background of your screen, normally you will bring up a menu. And of course, when you click on the border of a window, you will do various things. 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 move the window around the screen, just as if you had used the title bar. You can also ALT middle-click in a window to resize it, or use ALT and right-click to bring up the Window Operations Menu. Holding down the ALT key while clicking the middle mouse button on the background of your desktop 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. Mouse Configuration 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. 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. 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. If you have a Wheel-Mouse and X is configured to use it, e16 supports it by default. Rolling your wheel up on the desktop background will take you back a desktop. Rolling your wheel downward you will advance forward a desktop. Using the Window Border 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. 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. 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. Double-clicking the title bar will make the window shade or unshade. Clicking left mouse button on the iconify button will iconify the window and send it off to the iconbox. 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. 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". In addition to these methods, there are additional ways to manipulate windows. 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. Changing Window Borders 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 Window Operations 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. You can always click with ALT + Right mouse button anywhere in the window to bring up the window operations menu again. If you want to remember the border style for the next time you run this application, you can always use the Remember dialog to remember the current window border. Default Keybindings Below are the keybindings for e16 as it comes "from the factory" ALT+(F1 - F8) - Go to desktop 0 - 7 ALT+Tab - Switch focus to the next window CTRL+ALT+Home - Auto-arrange windows CTRL+ALT+Del - Log out CTRL+ALT+End - Restart CTRL+ALT+Ins - Launch Eterm CTRL+ALT+Left - Go to the previous desktop CTRL+ALT+Right - Go to the next desktop SHIFT+ALT+Up - Move to the virtual desktop above SHIFT+ALT+Down - Move to the virtual desktop below SHIFT+ALT+Left - Move to the virtual desktop on the left SHIFT+ALT+Right - Move to the virtual desktop on the right CTRL+SHIFT+F1 - Show User menu CTRL+SHIFT+F2 - Show Enlightenment menu CTRL+SHIFT+F3 - Show Settings menu CTRL+SHIFT+F4 - Show Window List menu CTRL+ALT+A - Toggle visibility of all buttons CTRL+ALT+B - Toggle visibility of theme buttons CTRL+ALT+C - Toggle visibility of configuration buttons CTRL+ALT+Up - Raise active window CTRL+ALT+Down - Lower active window CTRL+ALT+X - Close active window CTRL+ALT+K - Kill active window nastily CTRL+ALT+I - Iconify active window CTRL+ALT+R - Shade/unshade active window CTRL+ALT+S - Stick/unstick active window CTRL+ALT+M - Maximize/unmaximize active window CTRL+ALT+F - Enter/leave fullscreen mode for active window CTRL+ALT+W - Show Window Operations menu for active window ALT+Enter - Zoom/unzoom active window Multiple & Virtual Desktops E16 supports both Multiple and Virtual desktops. There are distinct difference between the two, and e16 treats them differently. 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. 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. 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. 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. To change the number of virtual desktops that you have, select "Desks" in the Settings Dialog. To change the number of virtual areas, select "Areas" in the Settings Dialog. 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 mouse hits the edge of an area) moving between virtual areas. E16 also allows you to set a different desktop backdrop per desktop to help you customize your environment and differentiate which desktop is which. 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 Desktop Backgrounds section. Changing Desktops There are several ways that you can change your current desktop - let's go over a few of them here. You can use the Keybindings Alt-F1 through Alt-F8 for the first 8 desktops. You can use the Keybindings Ctrl-Alt-Left and Ctrl-Alt-Right to navigate to the next/previous desktop. You can use the Keybindings Shift-Alt-arrow to change virtual areas in a given direction. You can use the Pager to quickly navigate to the desktop/area you want by clicking on the desired area. You can use the Dragbar to quickly navigate to a particular application or a particular desktop by using the middle and right mouse buttons. 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. Moving Applications Between Desktops There are several ways that you can move applications from one desktop to another. We'll go over a few of them now. The first way you can move apps between desktops is using the Pager. You can also move applications between desktops using the Dragbar. You can also move applications between desktops using the KDE or GNOME desktop pagers. You can also move a window, then bring the window with you as you change desktops using keybinding. The Dragbar 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. If you are on any desktop except desktop 0, you can pick up and move that desktop in another direction. Desktops 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 pager. 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. The Pager 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. 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 desktops. 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 Iconbox to iconify the window. 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. 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. 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. 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. 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. The Iconbox The iconbox is the place the icons for all your iconified windows go. It is one method of recovering minimized 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. You can have as many icon boxes on your desktop as you want to. You can create more by using the Middle Click Menu - select Desktop->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. You can move the Iconbox around the screen using Alt-Leftclick on the window, and then moving it to the desired location on the screen. You can resize the Iconbox by alt-middleclicking on the window and then adjusting the size as described in the Mouse Bindings section. 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. To change the settings of an individual Iconbox, use the right mouse button menu 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. 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. 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. Recovering Minimized Applications There are several ways to recover an application once you have minimized it. The most obvious way is to use the Iconbox. 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 Dragbar and get a menu 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). Remember, at any time you can always create a new Iconbox 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 settings. Remembering Application Properties In the Window Operations 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. 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. Settings 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. 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. Window Groups 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 desktops, changing a group's property affects only windows of that group that are on the current desktop. 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. To define what properties are applied to a group by default, you go to the Settings Dialog and select "Groups", which will give you a dialog window in which you can configure the settings. 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. 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. 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. Selecting and Adding backgrounds 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 $ mkdir ~/.e16/backgrounds 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. Selecting any of the images there will change the desktop background of the current desktop to the image that you have selected. 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 Settings Dialog 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. Tooltips 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 Window Border. You can disable the tooltips or change the delay before they pop up by selecting "Tooltips" in the Settings Dialog. Audio 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. You can enable and/or disable sound at runtime by selecting "Sound" in the Settings Dialog. Setting the Focus 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. Click To Focus most people are familiar with. You click on a window and it receives the focus from e16. Pointer Focus gives the focus to whichever window the pointer is sitting over Sloppy Focus is similar to Pointer Focus, except that if you go over the Desktop Background you still are focused on the last window E16 allows you to change your focus settings at any time. Simply bring up the Settings Dialog and select "Focus". At the top, we can select between our three focus modes. We can also enable some other features, such as one that will allow a simple mouse click to raise any window to the foreground, as well as several other advanced focus settings. 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 Keybinding. Moving Windows E16 comes with several different available methods for moving a window. You can perform the actual moves using the Window Border, or by using the available Mouse Bindings. This will cause the window to move until you have released the mouse button. To change the mode that the moving of the windows uses (opaque being the default), open up the Settings Dialog, and select "Move/Resize". You can select the mode from a list. Experiment until you find one that suits you best. 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. Resizing Windows 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 border and dragging to the desired size. You can also get the same effect by using the ALT + middle button Mouse Binding in any part of the window. To change the mode that the resizing of the windows uses (opaque being the default), open up the Settings Dialog, and select "Move/Resize". You can select the mode from a list. Experiment until you find one that suits you best. 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. The Window Operations Menu The Window Operations menu is a commonly used menu that allows you to perform many different actions onto the current window. 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. The Iconify function iconifies the window. If you have an Iconbox it is sent to the nearest one. The Raise function raises the window above any windows that may be obscuring it and Lower lowers it below windows it is obscuring. Shade/Unshade toggles the shaded state of the window. Note that borderless windows are not allowed to be shaded. 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 desktops. 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. Remember... displays the Remember Properties 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. In the Window Groups sub-menu there are various options for configuring window groups and how this window relates to any groups you may have. You can quickly modify the size of a window to one of several aspects of maximum sizes using the Window Size sub-menu. Set Stacking lets you change the stacking layer of that window. You can change the border 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. Window Placement Selecting "Placement" in the Settings Dialog 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. E16 and IPC 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. 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. To exit eesh, hit CTRL + D (EOF) Editing E16's Menus 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 Menu. The very first line of this file contains the title for the menu, and the remainder of the file looks something like this: "Eterm" NULL exec "Eterm" Where each column represents: Entry title, graphic for menu (or NULL), exec "commandline" 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. Editing Your Keybindings 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). 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. E16 and Themes 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 Settings menu, going to the "Themes" selector, and then choosing a new theme. Many more themes are available elsewhere, see themes 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 menu, and you can choose it just like any other theme. E16's Eye candy Features Of course, e16 wouldn't be complete without just a few bits of eye candy to play with. On the "FX" settings dialog you can chose two toys: The ripples effect - this causes little ripples of water to reflect on the bottom of your screen. The waves effect - similar to ripples, but this one waves up and down as opposed to side-to-side On the "Transparency" settings dialog you can enable "Theme Transparency". A slider controls the opacity of the window borders, etc. with respect to the desktop background. Included Maintenance Scripts 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. 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. Frequently Asked Questions Q: I can't find my <link linkend="iconbox">Iconbox</link> or change its settings. A: There are two possibilities here. 1. You don't have an Iconbox on your desktop right now. Just middle-click and select Desktop/Create new iconbox 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. Q: I Can't Seem To Find My Left Mouse Menu 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 Maintenance menu. Q: All My Settings Are Mangled And I Can't Fix It 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. Q: I Upgraded My Theme, But The New One Isn't Being Used 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. Q: I set my window to borderless and can't set it back or move it. A: ALT + Right mouse button when pressed anywhere in the window will give you the Window Operations menu. ALT + Left mouse button will move the window and ALT + Middle mouse button will resize the window. Q: How can I move or resize the iconbox? A: As described above, ALT + Right mouse button will give you the Window Operations menu, ALT + Middle mouse button will resize the iconbox and ALT+left mouse button will move it. See the Iconbox documentation for more help Q: How can I disable that annoying desktop tooltip? A: There is a special config option for it under the tooltip settings menu. Q: These Docs Didn't Help, Where Can I Get More Help? A: Well, we obviously can't answer all of your questions just by predicting them, so I would try the website as well as looking at the mailing lists, 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 irc channel Additional Notes Configuration All settings can be shown and set using eesh. To get a full list of settings: $ eesh show To set some parameter: $ eesh set <parameter> <value> Some settings will not be effective until E is restarted. To get a list of all eesh commands: $ eesh help full The available configuration options are shown below. Values are the defaults. # [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 <-> 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 <-> 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 Configuration Files Skip this section unless you *really* want to know... It is here assumed that is /usr, and that the default user configuration directory (~/.e16) is used. In general, the configuration search order for theme related configuration files, say xyz.cfg, is: User configuration directory, i.e. ~/.e16/xyz.cfg. Theme directory, i.e. /usr/share/e16/themes/<theme>/xyz.cfg, or ~/.e16/themes/<theme>/xyz.cfg. Default configuration directory, i.e. /usr/share/e16/config/xyz.cfg. Mouse and keybindings are defined in bindings.cfg. bindings.cfg is searched in User configuration directory, i.e. ~/.e16/bindings.cfg. Default configuration directory, i.e. /usr/share/e16/config/bindings.cfg. Window matches (border and icon associations) are defined in windowmatches.cfg and matches.cfg. windowmatches.cfg (deprecated, border associations only) is loaded first, and should be found only in theme directories. matches.cfg is loaded next, and searched in User configuration directory, i.e. ~/.e16/matches.cfg. Default configuration directory, i.e. /usr/share/e16/config/matches.cfg. 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. Session Scripts Enlightenment 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 E quits (this is especially common with KDE applications in E and the arts daemon or dcop server keeps running). Enlightenment accomplishes this with the addition of two new keys in the $ECONFDIR/e_config--#.#.cfg (#.# may vary depending on your X setup -- for most people, it will be 0.0). These are: misc.session.enable_script misc.session.script misc.session.enable_script is a boolean. When set to 1, Enlightenment will execute the script in the misc.session.script key. By default, this feature is disabled. When enabled, it will do nothing until the user configures his/her home directory ($ECONFDIR -- normally ~/.e16). The default session.script is located in $EROOT/scripts/session.sh ($EROOT is normally /usr/share/e16 or /usr/local/share/e16). It will look for directories in the user's $ECONFDIR/ (~/.e16/) called: ~/.e16/ ($ECONFDIR) Init/ Start/ Stop/ and run any and/or all scripts or executables in each when E starts, restarts, and shuts down. If no scripts or executables are present, or if any of the directories Init, Start, and Stop do not exist, NOTHING will happen and E will start up as usual. So, in order to use session scripts, all the user has to do is to populate the Init, Start, and Stop directories with scripts, applications, or links to applications that should run during Startup, Restart, or when E is stopped. The default values for the new keys are: misc.session.enable_script = 0 misc.session.script = $EROOT/scripts/session.sh The user may write a custom script and place it anywhere. Simply modify the config file by using: $ eesh set misc.session.script myscript and modify it (be sure to chmod +x the file otherwise it won't run). The session script is called with one of three command parameters; init, start, and stop. Any custom script should have a code block similar to this in order to function properly in Enlightenment. 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 Automatic script running can be enabled/disabled in the Settings Dialog under "Session", by editing the user cfg file and setting the misc.session.enable_script key to 1/0, or with $ eesh set misc.session.enable_script 1/0This process is very flexible since when used, the user can turn off individual scripts and applications by chmod -x or simply leave the startup directories empty or remove them. Composite Manager 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. 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 XLIB_SKIP_ARGB_VISUALS set. To fix border rendering on "real" ARGB windows it is required to use imlib2 with version >= 1.3.0. Tweaks: As of e16 >= 0.16.8.9: If there is any kind of trouble with the composite manager, first check compmgr.mode (eesh show compmgr), and set it to 1 if it isn't (eesh set compmgr.mode 1, restart). If pop-up windows disappear immediately after having appeared (may happen e.g. with certain pop-up windows when using gnome > 2.12), try: $ eesh set compmgr.override_redirect.mode 0 This should make the pop-up windows usable, but not always rendered properly. This problem should not occur with recent X-servers. If window resize/shading with composite enabled is ugly, try: $ eesh set compmgr.resize_fix_enable 1 This problem should not occur with recent X-servers. Fonts Theme font selection depends on a number of settings and whether or not the theme has font alias support. For themes with font alias support the fonts are determined by a font configuration file. This file is selected as follows, first hit applies: If theme.use_alt_font_cfg is set (default off) and the the file specified by theme.font_cfg is found the fonts are determined by this file. If theme.use_theme_font_cfg is set (default off) and the theme has a fonts.theme.cfg the fonts are determined by the theme's fonts.theme.cfg. If e16 was built with pango support, look for fonts.pango.cfg. If e16 was built with xft support, look for fonts.xft.cfg. Look for fonts.cfg. The font configuration file search path is ~/.e16, <theme-dir>, and /usr/share/e16/config. Default fonts.pango.cfg and fonts.xft.cfg are provided in /usr/share/e16/config. The default theme (winter) and the core themes (BlueSteel, BrushedMetal-Tigert, Ganymede, and ShinyMetal) do have font alias support. Don Harrop has made available a major number of e16 themes which have been modified for font alias support (themes.effx.us). 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. There are several ways to specify a font (in the font configuration file or in TextClasses): "<font name>/<size>", e.g. "Vera/8". In this case e16 must be able to find "Vera.ttf" in <theme dir>/ttfonts or /usr/share/e16/fonts. XLFD font sets, e.g. "-*-lucida-medium-r-normal-*-12-120-*-*-*-*-*-*,-*-gulim*-medium-r-normal-*-12-120-*-*-*-*-ksc5601.1987-*". xfontsel, xlsfonts, and xfd can be used to select and show these fonts. Fontconfig font names, prefixed by "xft:", e.g. "xft:Luxi Sans-10:bold". fc-list and xfd can be used to select and show these fonts. This possibility (Xft support) is available as of version 0.16.8.5. Pango font names, prefixed by "pango:", e.g. "pango:sans bold 10". This possibility (Pango support) is available as of version 0.16.8.9. Pango support must be explicitly enabled at build time with . Using E16 with GNOME Setting up e16 as WM in a GNOME session unfortunately depends on the version of gnome-session. Recent versions of gnome-session seem to require that a gconf key is set and that an e16.desktop file can be found: $ gconftool-2 --set /desktop/gnome/session/required_components/windowmanager --type string e16 $ gnome-sesssion /usr/share/applications/e16.desktop (or ~/.local/share/applications/e16.desktop): [Desktop Entry] Encoding=UTF-8 Type=Application Name=E16 Comment=The Enlightenment (E16) window manager Exec=e16 Icon=/usr/share/e16/icons/e16.png The section below seems to be obsolete as of gnome-session-2.2x(?) The GNOME desktop can be started using e16 as WM with: $ export WINDOW_MANAGER=e16 $ gnome-sesssion The section below is obsolete as of gnome-session-2.16 However, somewhere along the way the script /usr/bin/gnome-wm is called. This is supposed to handle differences in all the different WM's out there, but does not know of "e16". This will cause a major delay when starting up the GNOME desktop. One way to fix this is to use gnome-session-properties to get rid of the "gnome-wm" session entry. Another is to apply this patch to /usr/bin/gnome-wm: --- /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) Using E16 with KDE The KDE desktop can be started using e16 as WM with: $ export KDEWM=e16 $ startkde Versions e16-1.0.0: No major changes, might as well have been 0.16.8.16. e16-0.16.8 Released Feb 2006 enlightenment -> e16 Major internal rewrite Changed configuration system Added compositing manager enlightenment-0.16.7 Released Jul 2004 Migrated to imlib2 enlightenment-0.16.6 Released Nov 2003 Added extended window manager hint support enlightenment-0.16.5 Released Oct 2000 enlightenment-0.16.0 Released Oct 1999 Major changes and new features in 0.16.8 The following sections are only relevant for users upgrading from version 0.16.7 or older. Changes: "enlightenment" has been renamed to "e16". The default user configuration directory is "~/.e16". The data install path is "<somepath>/e16", e.g. "/usr/share/e16". Thus, an e16.8 installation should not clash with any other versions. Various configuration file formats have changed and should be easier to read and modify, if needed. The configuration is stored per display and per screen. E.g. for DISPLAY=:1.0 the main configuration file is "~/.e16/e_config--1.0.cfg". Actions(used by menus, keybindings, etc.) and IPC functions(eesh) have been merged. Many IPC(eesh) commands have been changed, possibly breaking compatibility with a few epplets. Window matches and icondefs have been merged (into matches.cfg), see below. New features: Built-in composite manager. An iconbox can be configured to act as System Tray ( middle mouse Desktop Create Systray ). Possibility to run programs on startup, restart, and shutdown, see "Session Scripts" below. Possibility to track changes in remembered settings. 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 matches.cfg). 0.16.8 should be compatible with most e16 themes. However, user installed themes will have to be moved/linked to ~/.e16/themes/ or <datadir>/e16/themes/. A few themes will have to be tweaked to work with e16.8. The most likely problem is that configuration settings are included in .cfg files where they are no longer accepted. See the "Migrating ..." section below for additional information. e16keyedit >= 0.3 works with e16.8. If used to change the keybindings, the modified settings will be stored in ~/.e16/bindings.cfg. It should also be fairly straightforward to modify the key- and buttonbindings by hand. Copy /usr/share/e16/config/bindings.cfg to ~/.e16/bindings.cfg and modify as desired. NB! e16keyedit only modifies keybindings, not buttonbindings. NB!!! Do not rename ~/.enlightenment to ~/.e16. It will only cause trouble. Migrating from versions older than 0.16.8 Users upgrading from enlightenment 0.16.7 need to read the following. 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. home configuration directory is now ~/.e16, not ~/.enlightenment. menu files have been moved to a subdirectory called menus you will need to move customized menus and subdirectories to ~/.e16/menus. you will need to move ~/.enlightenment/backgrounds files to ~/.e16 and any themes as well. $prefix/share/enlightenment has been changed to $prefix/share/e16 if installed E-docs and Epplet directories will have to be moved to $prefix/share/e16 any additional themes that were added to the $prefix/share/enlightenment directory will have to be moved to $prefix/share/e16 any startup scripts or Session scripts that reference the startup executable `enlightenment` must be edited to the new e16 program. A few themes have to be tweaked to work with 0.16.8. Some themes (Maw, Black E) have an actionclasses.cfg like: #include <definitions> __E_CFG_VERSION 0 #include </usr/local/enlightenment/config/actionclasses.cfg> #include </usr/share/enlightenment/config/actionclasses.cfg> The absolute path is obviously no longer valid. The most sensible fix for these themes is to remove the themes actionclasses.cfg. e16 will then fall back to the default one. Installation Requirements: imlib2 >= 1.2.0 is required, >= 1.4.2 is recommended. imlib2 must be built with png support. Extract distribution tarball, build, and install: $ tar -xzvf e16-<version>.tar.gz $ cd e16-<version> $ ./configure $ make $ sudo make install For additional help on package configuration, see $ ./configure --help Resources Enlightenment web site: http://www.enlightenment.org Forums: http://forum.enlightenment.org Mailing lists: http://sourceforge.net/mail/?group_id=2 Download: http://sourceforge.net/projects/enlightenment/files Themes and theming documentation: http://themes.effx.us/e16 IRC: #e on freenode Credits This note contains contributions by Kim Woelders Peter Hyman pete4abw@comcast.net Yasufumi Haga yasufumi.haga@nifty.com