E 16.7.x configuration file information
# Author: Andy Murren
# Email: amurren AT users DOT sourceforge DOT net
# Date: 30 Jul 2005
# Revision: 0.3
# Copyright: Same as the rest of Enlightenment
This file documents the configuration files used in Enlightenment 16.7.x but may not match 100% with earlier or later versions. This is a work in progress and will be updated as I learn more and have the time.This document will cover the following files:
The default user configuration files are kept in the directory ~/.enlightenment, but that can be changed on the command line. There are four files that contain saved settings;
The # in the file name tells E which X Windows screen the settings apply to. Normally this is screen 0, so the files are:
The file ...e_session-XXXXXX and all menu files apply to ALL screens.
Throughout the document there are some settings that are either TRUE or FALSE. In the settings either 1 or 0 is used and 0 == FALSE.
I am deeply indebted to Kim Woelders (kwo) the maintainer of the E16 branch. He reviewed, pointed to source files and corrected many of my errors. Some lines are direct quotes from his corrections. I am not going to quote and foot note each of them, just be aware that he had important input into the correctness of the document.
The menu files are where you can put the applications you want to use. Like the rest of E you can configure the menus how you want them. Most changes appear in the menu after a couple of minutes or at worst after restarting E.
The file format is simple and follows the format below.
"User Menu" NULL menu "user.menu"
"File Manager" "gnome_icons/gnome-folder.png" exec "xfe"
After the first line all of the lines contain four space delimited fields. The main menu is stored in the file 'file.menu' and all other menus are called from there.
On the first line in double quotes is the display name of the menu.
Starting on the second line and running for as long as you wish to make the menu are the four fields.The first field is the text to display on the menu. It is in double quotes and contains printable characters.
The second field is the image file to be displayed. It can contain either the word NULL, empty double quotes "", or the path to the image file in double quotes. The path should be the absolute path or the path starting at the same directory as your config file.
The third field is either the word 'menu' or 'exec'. If it is 'menu' the next field will be the name of another menu file using this same format. If it is 'exec' the next field is a command.
The final field is either the path to another menu file or a command to execute, depending on what is in the third field. If it is a menu, the file name, and path if needed, are in double quotes. If the application is in the users PATH, the application will be shown in the menu and can be invoked. If the application is not found (because it is not in the user PATH, it has been moved, misspelled, etc.) the entry will not show up in the menu. If you add an item to the menu and it doesn't appear, check the path and spelling of the entry.
The file must have a '.menu' extension.
If the third field was 'exec' the final field is a command. The command can be any command and must be double quoted.
Here is a line to start the E-Clock epplet. Note the full path and double quotes
"E-Clock" "/usr/share/enlightenment/epplet_icons/E-Clock.icon" exec "/usr/bin/E-Clock.epplet"
Here is a sample showing arguments being passed to Eterm.
"mutt" "gnome_icons/mutt.xpm" exec "/usr/bin/Eterm -t mutt"
Below is an exec line to start IE using CrossOver Office. Note the multiple '/' in the fake Windows path and the single quotes around arguments that need to be passed to the application.
"IE" "/home/andy/.cxoffice/dotwine/dosdevices/c:/Windows/Icons/9d75_iexplore.-32528.xpm" exec "/opt/cxoffice/bin/wine --check --cx-app 'C:////Program Files////Internet Explorer////IEXPLORE.EXE'"
Menus can be all 'exec' lines, all 'menu' lines or like most times a mixture of both.
Here is information about the ...e_session-XXXXXX.snapshot file. This file contains the per screen 'Remembered' settings for windows. What is meant by 'Remembered' is that you right clicked on the window and selected settings to remember. If you did not do that then there will be no settings for the application in this file. Of course this being E you can hand enter the settings into this file following the file format below.
The options are presented in alphabetical order, but are in this order:
The order is set in the source code so it will always appear in this order. Pagers and Iconboxes have all settings saved (except GROUP), other applications on get the settings the user saves.
What border style to use. These are determined by the theme but all should have as a minimum:
The names of the border style are case sensitive.
Class part of WM_CLASS property. Used in window matching.
Command to execute with or without path and arguments example of calling emacs to start showing your home directory and passing emacs geometry settings
CMD: "emacs ~/ -g100x40+5+5"
If CMD is present, the application should start when you start your Enlightenment session. It will not start automatically if it is not in the file.
Which desktop, not virtual desktop, to appear on. This is an int from 0 to n-1, where n == the number of desktops you are running.
This is the ID of the group the window belongs to, and found ...e_session-XXXXXX.groups file.
(Depreciated) Should this app start as an icon? This is not used in 16.6 or later. This is a 0 or 1.
This is what layer to set the window at. It is used for deterimining how to stack windows relative to each other. Windows at layer 2 are stacked below layer 4 and layer 6 windows. Windows at the same level can be raised above each other. Windows being dragged are on top while being dragged. The acceptable range of values is 0-255, there is nothing special about the numbers. If you use 4 (Normal) for all of your windows they will all stack at the same level so when you select a window it will become the top most window. If you have a window set to a high layer then windows with a lower layer number will not move to the top when selected. Except for epplets my guess is that you want Normal for all windows.
- 0: Desktop type windows (e.g. nautilus).
- 2: Below (epplets default)
- 4: Normal
- 6: Above
- 20: On Top
Name part of WM_CLASS property. Used in window matching.
If it is set then the window is never focused. This is a 0 or 1.
Marks the start of a new entry. The string here is the one used to match a window. This does not have to be globally unique.
Screen Resolution in pixels (width and height) separated by a space
example at 1024x768
RES: 1024 768
Is this app shaded? This is a 0 or 1.
If this is set then the window does not appear in the focus list when using alt-tab to cycle through windows on a desktop. You might want to set this for applications like Gkrellm or Epplets. This is a 0 or 1.
Should this App be included in external task listing (like gnome-panel)? This is a 0 or 1.
Should this App be included in the internal window listing (like when pressing ALT-MOUSE BUTTON 2)? This is a 0 or 1.
Is the the application sticky (visible on each desktop and virtual desktop). This is a 0 or 1.
Used for window matching if the WM_CLASS property is not present, This is not used very often. Maybe a few ancient clients do this.
This gives the width and height of the window in pixels.
This has four space separated integer parameters
The first pair
The first two are the number of pixels from the upper left corner of the screen to place the window. The numbers are indexed from 0 to resolution-1. On a 600x400 resolution screen that works out like this:
The second pair
The second set of integers is the virtual desktop the window is to show up on. This is also indexes from 0 to n-1. A desktop with 12 virtual desktop works out like this:
To have a window place on virtual desktop 2,1 and 10 pixels from the left edge and 15 pixels from the top would be this:
XY: 10 15 2 1
The group file identifies actions that all windows of a designated group share. Settings are either TRUE or FALSE. A setting that is TRUE will have that action performed on one window to happen to all windows of that group. If you move one window of a group will all the windows move together? If MOVE == 1 then yes they will. Below is a sample group file.
This identifies the group and is used in the SESSION file to identify which windows belong to a group.
Iconify all of the windows together. It would make sense to have this match the RAISE setting.
Kill all of the windows together
Move all of the windows together
After Iconifing a window or group should they be raised together. It would make sense to have this match the ICONIFY setting.
Will changing the border for one change the border for all.
Should the windows be on all desktops together.
Set the shade state for all windows concurrently.
I don't know what this one does.
This file is still written on exit in E16.7.x, but no is longer use. Hence I will not be documenting it.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.