Manual Reference Pages - ETERM (1)

CONTENTS

Eterm  version
0.9.6  is a color vt102 terminal emulator intended as an
xterm(1)
replacement. It is designed with a Freedom of Choice philosophy, leaving as
much power, flexibility, and freedom as possible in the hands of the user.
It is designed to look good and work well, but takes a feature-rich approach
rather than one of minimalism.
Eterm uses Imlib for advanced graphic abilities. See below for details.

The
Eterm options are listed below.
In keeping with the freedom-of-choice philosophy, options may be eliminated
or default values chosen at compile-time, so options and defaults listed
may not accurately reflect the version installed on your system.

Options that do not take a parameter (besides -h and --help) are boolean. If
you use the POSIX (short) option, you are forcing the parameter to "true". If
you use the long option, you can use any of the accepted boolean values, which
are "yes", "on", "1", and "true" to turn the option on, or "no", "off", "0", or
"false" to turn the option off. The same is true for boolean values in the
configuration file.

-t theme, --theme theme

Load specified
theme. Consult the FAQ for more details on what constitutes an Eterm
theme.

-X conffile, --config-file conffile

Use an alternative user config file name. Otherwise Eterm uses the default,
which is
user.cfg. The theme config file is always
theme.cfg.

-d displayname, --display displayname

Attempt to open a window on the named X display
displayname. In the absence of this option, the display specified by the
DISPLAY environment variable is used.

--debug level

Show debugging output.
level is an integer between 0 and 5 which determines how verbose the debugging
output is.

--install

Tells Eterm to install its own colormap rather than using the default
one.

-h, --help

Print out a message describing available options.

--version

Print
Eterm version and compile-time configuration.

-r, --reverse-video

Reverse video, swaps the foreground and background colors.

-b color, --background-color color

Set
color as the background color.
NOTE: this will actually be the foreground color if reverse video is also
selected.

-f color, --foreground-color color

Set
color as the foreground (text) color.
NOTE: this will actually be the background color if reverse video is also
selected.

--color0 color...--color15 color

Use
color as color X.

--colorBD color

Use
color as the bold color.

--colorUL color

Use
color as the underline color.

--pointer-color color

Use
color as the pointer color.

-c color, --cursor-color color

Use
color as the cursor color.

--cursor-text-color color

Use
color as the cursor text color.

-g geom, --geometry geom

Window geometry as Width x Height+X coord+Y coord, i.e 100x200+0+100

-i,--iconic

Start in iconified state (only if the window manager supports
iconification).

-n name, --name name

Sets name of current instance to
name. This will affect the icon title and the window title string unless
they are otherwise explicitly set.

-T title, --title title

Sets windows title text to
title.

--icon-name text

Sets the icon title text to
text.

-B type, --scrollbar-type type

Specifies the
type scrollbar style should be used.
type can be any of
motif, xterm, or next.

--scrollbar-width width

Set the width of the scrollbar, in pixels, to
width. Eterm does not impose any restrictions on this value, but it should be reasonable.

-D desktop, --desktop desktop

Starts the Eterm on the specified desktop.
desktop should be an integer between 0 and your highest-numbered desktop.
NOTE: You must have a GNOME-compliant window manager for this feature to work. Please see
http://www.gnome.org/devel/gnomewm/ for more information on the
_WIN_WORKSPACE property and how to support it.

--line-space num

Size of the extra gap, in pixels, to provide between lines in the terminal window.

--bold-font font

Sets the bold text font to
font.

-F font, --font font

Sets the normal text font to
font.

--default-font-index num

Specifies the index of the default (normal) text font.

--font1 font...--font4 font

Sets the font at the specified index (1-4) to
font.

--proportional

Specifies that the font in use is proportional and requests standard
deviation-based character cell spacing. Terminals must use
fixed-width character cells to maintain proper columnal alignment,
even when proportionally-spaced fonts are in use. Some
proportionally-spaced fonts vary greatly between the minimum and
maximum character widths. This option chooses a character cell size
which is up to two standard deviations above the average character
width but will not exceed the maximum width of the largest glyph.
Note that characters larger than the chosen cell width will overwrite
(or be overwritten by) other characters and may tend to leave pixel
droppings. This behavior is an expected side-effect of an imperfect
scenario. If you object to this behavior, do not use this option.

--font-fx effects

Specifies the effects to apply to the terminal window font. The value
of
effects is a single string containing a series of corner/color pairs. These
pairs define toward which corner a drop shadow of each character
should be made, and what color that shadow will be. The corner is
specified first using the following keywords:
top_left or tl,
top_right or tr,
bottom_left or bl, and
bottom_right or br. Each corner specifier is then followed by a color.

There are also several shortcuts for doing common effects. You can
get a single-color outline by using the keyword
outline followed by a color. A single-color drop shadow is also available
using the keyword
shadow followed by an optional corner specifier
(bottom_right being the default) and a color. For a 3-D embossed look, use
emboss dark_colorlight_color. The opposite effect, a carved-out look, can be obtained with
carved dark_colorlight_color. (Of course, with those last two, the 3-D look will only work if you
choose the light and dark colors wisely.)

Finally, for no font effects at all, simply specify the keyword
none.

The default value is
bottom_right black which yields a black drop shadow, greatly improving the visibility of
lightly-colored fonts on top of light spots in a background image.
Note that font effects are not active in solid color mode.

-P pic, --background-pixmap pic

Use
pic as the background image.
pic can be in any format that Imlib understands. Currently this means just
about anything, including JPG, PNG, GIF, TIFF, PPM, etc. The image is
tiled by default. To specify alternate geometry, follow the filename
with an
@ sign and the geometry string. Image geometry is specified as
@wxh+x+y:ops where
w and h are the horizontal/vertical scaling percentages,
x and y are the horizontal/vertical alignment percentages, and
ops is a colon-delimited list of operations:
tiled (to tile the image),
propscaled (for proportional scaling). Note that these operations can be combined for various effects.

-I pic, --icon pic

Sets the icon pixmap file to
pic. Works similarly to the
-P option above.

--up-arrow-pixmap pic

As above, except the scrollbars up-arrow is set.

--down-arrow-pixmap pic

As above, except the scrollbars down-arrow is set.

--trough-pixmap pic

As above, except the scrollbars background (trough) is set.

--anchor-pixmap pic

As above, except the scrollbars anchor image is set.

--menu-pixmap pic

As above, except the menu background image is set.

-O, --trans

This gives a pseudo-transparent Eterm. The image is taken directly from the
root window, so any requests for changing the pixmap are ignored. If you do
not use Enlightenment (http://www.enlightenment.org/) as your window manager
(or another compliant window manager...I have been told that WindowMaker works
also), you will need to use the
Esetroot program (found in the
utils/ directory) to set your root background image.

-0, --itrans

Activate the immotile transparency optimization for transparent Eterm
windows. Note that this does NOT activate transparency; you must
still include the
-O or --trans option. This option should be used on transparent windows which are
shaded or tinted and which do not move around on the desktop much.
See the
Mon Mar 6 21:11:13 PST 2000 ChangeLog entry for a more detailed explanation.

--viewport-mode

This activates a special Eterm mode which is hard to describe in words.
Basically, imagine the effect you get with pseudo-transparency, where
the desktop background moves through the Eterm window as you move the
window, so that it always aligns with the desktop image. Now, imagine
the same effect, but the image used isnt the desktop image but any
pixmap you choose. The image is scaled or tiled up to the size of the
desktop, and dragging the Eterm around the screen reveals different
portions of the image as you move, much like a small viewport window
in a ship or submarine does. The effect is especially keen if you
open several Eterms in this mode with the same image.

--shade percentage

Shade the background image/transparency by a specified percentage.

--tint mask--tint color

Tints the background pixmap (either an image file or the transparent
portion can be shaded). The
mask is an integer, usually specified in hexadecimal in the form
0xRRGGBB, where
RR, GG, and BB are hexadecimal numbers between
00 and ff (0 and
255 decimal) which represent the brightness of the images red, green, and blue
values, respectively. A value of
00 will mask that color out entirely, while a value of
ff will not change that color at all.

You may also specify an X
color such as
grey75 or MidnightBlue or #babb7f instead of a
mask.

--cmodbrightness [ contrast [ gamma ] ]

Specifies a color modifier to apply to the image overall. Each of the three
values is a number greater than or equal to 0. The numbers can be specified as
decimal, octal (if preceded by "0"), or hexadecimal (if preceded by "0x").
A value of 256 (0x100) represents 100%, or "leave that value unchanged."
0 represents 0%, 512 (0x200) is 200%, etc. However, be aware that overflow
can occur with excessively high values. Only the
brightness value is required for this option. Keep in mind, though, that you must
specify
brightness with contrast, and both of these with gamma.

--cmod-redbrightness [ contrast [ gamma ] ]

Same as above, except that the modifier applies to the red values of the
image.

--cmod-greenbrightness [ contrast [ gamma ] ]

Same as above, except that the modifier applies to the green values of the
image.

--cmod-bluebrightness [ contrast [ gamma ] ]

Same as above, except that the modifier applies to the blue values of the
image.

-p newpath, --path newpath

Sets the pic search path. When the
--background-pixmap or other pixmap options are used, this path will be used to find the
image.

--cache size

Specify the
size in bytes for the Imlib2 cache.

-N list, --anim list

Specifies an animation list to be use in cycling the background pixmap. The
list consists of two or more words. The first word defines the delay, in seconds,
between updates of the background. This should be set to a reasonable value
to insure that Eterm doesnt spend all its time rendering backgrounds. All
remaining words specify background images and have the same syntax as
the
-P option above, including the optional geometry string.

-M font, --mfont font

Sets the normal multibyte text font to
font.

--mfont1 font...--mfont4 font

Sets multibyte font X to
font.

--mencoding encoding

Sets multichar encoding mode (eucj or sjis or euckr)

--input-method method

Sets XIM input method

--preedit-type type

Sets XIM preedit type

-l, --login-shell

Makes the new shell a login shell.

-s, --scrollbar

Enables the scrollbar. (Default)

-u, --utmp-logging

Tries to enable proper utmp logging. For this to work, Eterm probably needs
to run setuid or setgid, usually setuid root.

-v, --visual-bell

Enables the "visual bell". Means the window will flash or blink rather
than beep.

-H, --home-on-output

Jump to bottom on output.

--home-on-input

Jump to bottom on input.

-q, --no-input

Keeps Eterm from accepting keyboard input, and keeps the window
manager from focusing it. Useful for log tailers and such.

--scrollbar-right

Display scrollbar on the right hand side.

--scrollbar-floating

Display the scrollbar without a trough.

--scrollbar-popup

Display the scrollbar only when the Eterm window is focused.

-x, --borderless

This option forces Eterm to have no borders.

-S, --sticky

Start Eterm as a sticky window (shows on all desktops)

-m, --map-alert

Un-iconify on beep.

-8, --meta8

Causes the Meta key to set the 8th bit in the char.

--double-buffer

Rather than drawing text directly onto the window, this option causes
Eterm to allocate an additional pixmap the size of the terminal window
into which the background *and* the text are rendered. This pixmap is
then set as the window background. Double-buffering uses additional
memory in the X server, but it allows Eterm to ignore expose events so
redraws are faster.

--no-cursor

Disables the text cursor.

--pause

After the child process terminates, Eterm will wait for a keypress
before exiting.

--xterm-select

Duplicates xterms treatment of cutchars. The only real difference is
what happens when you double click on a single cutchar between two
words. If this option is on, only that single character gets selected.
If it is off, that character is selected along with the two words. The
latter behavior is useful for double-clicking on the space between someones
first and last names, or the @ sign in an e-mail address, etc.

--select-line

If activated, this option causes a triple click to select the entire line
from beginning to end. If off, a triple-click selects just from the current
word to the end of the line.

--select-trailing-spaces

Determines whether or not trailing spaces in a selection are maintained (on)
or discarded (off).

--report-as-keysyms

Reports certain keystrokes as keysyms and modifiers rather than escape sequences.
NOTE: This option is intended for use only with programs that support this special Eterm
mode. Do not enable it unless you are executing a program which uses this mode.

--buttonbar

Toggle the display of all buttonbars.

--resize-gravity

If true, Eterm will automatically detect the nearest corner, and
font-change resizes will cause the Eterm window to gravitate toward
that corner.

--overstrike-bold

If true (default), Eterm will simulate a bold font by printing each
character twice, offsetting the second pass by one pixel. This makes
the characters seem thicker without the need for a special font. You
may wish to disable this if you use a specific color for bold.

--bold-brightens-foreground

If true (default), Eterm will use the "bold" ANSI color attribute to
brighten the foreground color by using the high-intensity colors (8
through 15) rather than the low-intensity colors (0 through 7). Note
that having a specific color selected for bold will override this.

--blink-brightens-background

If true (default), Eterm will use the "blink" ANSI color attribute to
brighten the background color by using the high-intensity colors (8
through 15) rather than the low-intensity colors (0 through 7).

--colors-suppress-bold

If true (default), any colored text (that is, any text not rendered
using the default foreground color) will not be given any other
special treatment for bolding (e.g., bold font or bold overstrike).

--big-font-key keysym

Specify a keysym to increase the font size. Default is Shift and the +
key on the keypad. Ctrl-> or Meta-> may also work (if you #define one
of the hotkeys in src/feature.h).

--small-font-key keysym

Specify a keysym to decrease the font size. Default is Shift and the -
key on the keypad. Ctrl-< or Meta-< may also work (if you #define one
of the hotkeys in src/feature.h).

--meta-mod num

Specify which X modifier (1-5) to treat as the Meta key. See
xmodmap(1)
and the output of
xmodmap -pm for more details.

Specifies the minimum size, in pixels high, of the scrollbar anchor.
NOTE: This causes abnormal scrolling behavior when combined with large
scrollback buffers!

-w width, --border-width width

Set the windows border width to
width. The border this controls is the gap between the edge of the X window and
the edge of the terminal window; this has nothing to do with the window
borders your window manager supplies.

--print-pipe pipe

The pipe for the PrintScreen function.

--cut-chars separators

The seperators for double-click selection.

--finished-title title

Specifies the string Eterm should add to its title bar if
--pause is specified and the child process completes.

--finished-text text

Same as above, but displays text in the terminal window.

--term-name TERM

Use
TERM for the value $TERM.

--pipe-name pipe

Specifies a named pipe from which to display output. This is useful
for systems where syslog output goes to a named pipe, like
/dev/xconsole on Debian.

-a line, --attribute line

This option is used to pass config file attributes on the command
line.
line should be a single string, so you will almost certainly have to quote
it. The first word of
line must be the context (see config file section below) which should parse
the rest of the
line. So, for example, you could specify the foreground color like so:
-a color foreground blue. Or you could add a binding:
-a actions bind anymod button1 to script exit. Note that this option may only be used with config file attributes
that are not context-sensitive; i.e., menus and imageclasses cannot be
specified using this option.

-C, --console

Grab console messages. Depending on your system, Eterm may need to be
setuid root to do this.

-e command, --exec command

Execute
command rather than a shell. Forces Eterm mode.

-U URL, --url URL

Pick up a "screen" session at
URL rather than a local (-U "") one. URLs look like so
(screen://user@host.dom:port/screen_options), with all parts optional,
defaulting to "screen://current_user@localhost:22/-RDD". Forces Escreen mode,
overrides --exec. Note that only screen-options (see "man screen") are
allowed; do not pass a command (with or without arguments) here: to pass
a command to the screen-session, use
screen [<options>] <command> [<args>] instead.

-Z lclport:fw:fwport,delay, --fw lclport:fw:fwport,delay

The URL given to -U is in an intranet behind firewall
fw so well build an SSH-tunnel to that firewall (to port 22/SSH, or
fwport if given) from our local machine (using any available port-number, or
lclport if given). Then, after
delay seconds (or a sensible default if not given), we will try to open a
screen session on the host behind the firewall using
ssh -p localport ... localhost screen cf.
ssh -L

Eterm is built on the philosophy of Freedom of Choice. Each user
should be able to choose the environment in which he or she wishes to
exist, and the tools used should support that. In accordance with
that philosophy, Eterm is extremely configurable. Eterm supports a
concept called "themes," which should be familiar to users of
Enlightenment, icewm, or Microsoft Windows 95/98/NT. The general
concept of a theme is a collection of resources that change as many
aspects of a programs look and feel as possible. For example, an
Enlightenment theme allows you to customize menus, window borders,
desktops, icons, iconbars, and everything else about how E looks and
feels.

An Eterm theme consists of a primary configuration file, always called
"theme.cfg", residing in a directory bearing the same name as the
theme. This directory must be a child of one of the directories
specified by CONFIG_SEARCH_PATH in src/feature.h. The theme may also
contain additional configuration files referenced by the primary
theme.cfg file, as well as pixmaps, menu files, documentation, etc.,
which are allowable as extensions to the minimum requirement of an
Eterm theme.

By convention and default, Eterm themes should be stored under
~/.Eterm/themes/<theme_name>/ or /usr/local/share/Eterm/themes/<theme_name>.

Eterm now supports the existence of a user configuration file as a
suppliment to the theme configuration file. The default name for this
file is user.cfg, and it follows the exact same syntax as any other
configuration file. It is searched for using the same algorithm used
for the theme.cfg file, and any settings in the user.cfg will override
any previous values for those settings defined by the theme. Thus, it
is recommended that any user.cfg files not be complete config files,
but rather only contain those values which the user wishes to
explicitly override.

NOTE: If you have a user.cfg file in the Eterm theme directory or in
~/.Eterm/, it will override
any previous settings, even if you are running a different theme. For
example, if you run the trans theme, but
~/.Eterm/themes/Eterm/user.cfg has a mode line which sets the image
mode to "image" rather than "trans," you will not get transparency.
This is why user.cfg files should be kept small and only override
settings that you know you want to enforce. If, on the other hand,
you were running the trans theme and had a user.cfg file in the trans
theme (or in ~/.Eterm/themes/trans/), that user.cfg would be found
before the one in the Eterm theme.

Almost all command line options can be enabled/disabled in the themes
configuration file (the default is /usr/local/share/Eterm/themes/Eterm/theme.cfg). The
next section contains details on the format and usage of the
configuration file.

Since Eterm 0.9.6 is based on the concept of themes, it is vital
that you have a thorough understanding of the previous section before
taking on this one. The previous section and this one were written by
the same person who wrote the Eterm code which handles options, config
files, and themes, so its probably the most authoritative
documentation on the subject youre going to find.

From here on out, I will assume youve read the above text and know
how to change the default value for the theme. It is highly
recommended that you have a copy of the Eterm theme config file that
comes with Eterm handy while you read this documentation.

Okay, first the general idea. The theme.cfg file is composed of
comments and non-comments. Comments begin with a pound sign and
continue to the end of the line. Lines of whitespace are also
ignored. The rest of the file is the config stuff, which is divided
into sections (called "contexts") and variables (called "attributes").
There are several contexts which are listed below in sections. Each
attribute must be inside a certain context to be valid. For instance,
while the "foreground" attribute is perfectly acceptable in the color
context, it would be rejected if found in, say, the toggles context.
This allows for better organization of the config file as well as for
multiple contexts to have attributes of the same name (like the
scrollbar attributes in the color and toggles section).

Each context must be enclosed in a begin...end pair that specifies the
type of section. The statement "begin toggles" starts the toggles
context, and the next "end" statement would terminate it. (Youll
notice that some "end" statements have the context name after them.
This is for readability only; any text after the word "end" is
ignored.)

The rest of this section will contain a step-by-step analysis of the
config file, including what can go in each section. Note that some
attributes (and even entire contexts) may not be available depending
on what support was compiled into Eterm by the person who built it.

MAGIC NUMBER

The first line of the config file must contain a "magic number" type
line that lets Eterm verify that its reading an Eterm config file and
not something else (like an Enlightenment 0.13 and earlier config
file). The line should look like this:

<Eterm-VERSION>

where VERSION is the Eterm version for which the config file is
intended. For example, config files written for Eterm 0.9 should have
"<Eterm-0.9>" as their first line, followed immediately by a newline.

COLOR CONTEXT

This context contains color specifications. With the exception of
the terminal colors 0-15, all
colors should be either a valid color name or an RGB string as outlined in the
X11(7)
man page.

Set terminal color
num (0-15) to the color name, string, or set of 3 decimal/hex/octal RGB values
specified by
color.

color { bd | ul }
color

Set terminal bold
(bd) or underline (ul) color to the color name, string, or set of 3 decimal/hex/octal RGB values
specified by
color.

ATTRIBUTES CONTEXT

This context contains X11 attributes. Most of these are dependent
upon the cooperation of the window manager.

geometry geom

Use the geometry string
geom to specify the startup geometry.
geom should be in the format
WxH+X+Y where
W is the width,
H is the height, and
+X and
+Y are the X and Y offsets. If the signs on
X and
Y are positive, the coordinates are offsets (in pixels) from the left and top,
respectively, of the screen. If the signs are negative, the offsets are
relative to the right and bottom of the screen, respectively.

title title

Use
title as the text in the title bar of the Eterm window.

name name

Use
name as the resource name of the Eterm window.

iconname name

Use
name as the icon name of the Eterm window icon.

desktop num

Start Eterm on desktop
num.
NOTE: This requires a GNOME-compliant Window Manager. Please see
http://www.gnome.org/devel/gnomewm/ for more information on the
_WIN_WORKSPACE property and how to support it.

scrollbar_type type

Use a scrollbar with the
type style. type can be any of
motif, xterm, or next.

scrollbar_width num

Use a scrollbar that is
num pixels wide.

font numfontfont bold font

Set the
numth font, or the
bold font, to
font.

font default num

Specifies that the
numth font should be considered the "default" font.

font proportional boolean

Specifies that the font in use is proportional and requests standard
deviation-based character cell spacing. Terminals must use
fixed-width character cells to maintain proper columnal alignment,
even when proportionally-spaced fonts are in use. Some
proportionally-spaced fonts vary greatly between the minimum and
maximum character widths. This option chooses a character cell size
which is up to two standard deviations above the average character
width but will not exceed the maximum width of the largest glyph.
Note that characters larger than the chosen cell width will overwrite
(or be overwritten by) other characters and may tend to leave pixel
droppings. This behavior is an expected side-effect of an imperfect
scenario. If you object to this behavior, do not use this option.

font fx effects

Specifies the effects to apply to the terminal window font. The value
of
effects is a single string containing a series of corner/color pairs. These
pairs define toward which corner a drop shadow of each character
should be made, and what color that shadow will be. The corner is
specified first using the following keywords:
top_left or tl,
top_right or tr,
bottom_left or bl, and
bottom_right or br. Each corner specifier is then followed by a color.

There are also several shortcuts for doing common effects. You can
get a single-color outline by using the keyword
outline followed by a color. A single-color drop shadow is also available
using the keyword
shadow followed by an optional corner specifier
(bottom_right being the default) and a color. For a 3-D embossed look, use
emboss dark_colorlight_color. The opposite effect, a carved-out look, can be obtained with
carved dark_colorlight_color. (Of course, with those last two, the 3-D look will only work if you
choose the light and dark colors wisely.)

Finally, for no font effects at all, simply specify the keyword
none.

The default value is
bottom_right black which yields a black drop shadow, greatly improving the visibility of
lightly-colored fonts on top of light spots in a background image.
Note that font effects are not active in solid color mode.

IMAGECLASSES CONTEXT

This context contains global image attributes. It also provides the
parent context for defining images via the "image" context.

icon filename

Use
filename as the icon image for the Eterm window.
filename can be an absolute path, relative to the current theme, or relative to
one of the directories in the
path attribute listed below.

cache num

Sets the Imlib2 cache size to
num bytes. The default is 0.

path directory_list

Specifies a colon-delimited list of directories relative to which
Eterm should search for image and menu files. The syntax for
directory_list is precisely the same as that of the
$PATH environment variable in UNIX shells.

anim interval images ...

Specifies an animation list to be use in cycling the background pixmap. The
interval defines the delay, in seconds, between updates of the background.
This should be set to a reasonable value to insure that Eterm doesnt
spend all its time rendering backgrounds. All the
images specify background images and have the same syntax as the
-P option above, including the optional geometry string.

IMAGE CONTEXT

This context defines all the attributes of a particular image. There
can be (and usually are) several image contexts per theme, one for
each class of image.

type class

Specifies the type, or
class, of the image that is going to be defined in that context. This MUST be the
first attribute defined in the image context. Valid classes are:
background, trough, anchor,
up_arrow, down_arrow, left_arrow,
right_arrow, menu, menuitem,
submenu, button, and buttonbar. Note that the left and right arrows, while valid, dont do anything just
yet. All the subsequent attributes up to the next
type definition will be applied to that image class.

modeinitial_mode [ allowallowed_modes ]

Specifies the initial mode for this image class as well as the modes which
the image class is allowed to use.
initial_mode is the mode that the image will have on startup (unless overridden by
command-line options.
allowed_modes is a list of one or more modes. The image will be prevented from switching
to any mode not listed in the
allow section. If the
allow section is omitted entirely, the image will never be permitted to change
from the
initial_mode. If no
mode line is specified for an image class, the default is equivalent to
mode solid allow solid. Valid mode names are
image (to use an image), trans (for transparency), viewport (for viewport mode),
auto (for auto mode, which requires Enlightenment 0.16 or better), and solid (which is a solid color only).

state { normal | selected |
clicked | disabled }

This sets the state of the image you are about to define. Up until the next
state attribute that is encountered (or until you change types), all attributes will
apply to that particular state of the image. You should at minimum define the
normal state of the image. It will be used as the default if the attributes
for the other states are not specified. However, each image state has
self-contained options. Therefore, if you define multiple states for
an image class, you must define ALL attributes needed by that state.
The sample themes supplied with Eterm demonstrate how to define 1-,
2-, 3-, and 4-state images.

The above attributes affect the image class as a whole. All remaining
attributes in this context affect only the current state of the image class.

color fgbg

Sets the foreground and background colors for this imageclass. The
foreground color is used for text, and the background color is used
for the object itself. If an invalid color is specified, the default
value for
fg is white, and the default for
bg is black.

file filename

Sets the filename from which to load the image file. This is used for the
image mode. If you allow the image mode for your image, dont forget to supply an
image file! Note that you can also supply an image geometry string here by
adding an
@ symbol and the geometry string to the end of the filename. See below for the
syntax of the geometry string.
filename must be an absolute path or a path relative to one of the directories in the
path attribute. Note that the image is verified and loaded when this attribute is
encountered during parsing.

geom image_geometry

Specifies the geometry and geometry-related operations which are to be applied
to the image. This attribute only applies to image classes using the
image mode. Image geometry is specified as
wxh+x+y:ops where
w and h are the horizontal/vertical scaling percentages,
x and y are the horizontal/vertical alignment percentages, and
ops is a colon-delimited list of operations:
tiled (to tile the image),
propscaled (for proportional scaling). Note that these operations can be combined for various effects.

Specifies a color modifier to apply to the image. The second keyword determines
whether the modifier will be applied to the image overall, the red values, the
green values, or the blue values. Each of the three parameters is a number
greater than or equal to 0. The numbers can be specified as decimal, octal (if
preceded by "0"), or hexadecimal (if preceded by "0x"). A value of 256 (0x100)
represents 100%, or "leave that value unchanged." 0 represents 0%, 512 (0x200)
is 200%, etc. However, be aware that overflow can occur with excessively high
values. Only the
brightness value is required for this option. Keep in mind, though, that you must
specify
brightness with contrast, and both of these with gamma.

border left right top bottom

Specifies that the image has borders which should not be scaled with the rest of
the image. This is primarily used for images that have a beveled look, so that
the bevel will not end up getting scaled and lose the bevel effect. All four
parameter values are in pixels, just like the equivalent options for E themes
and Gtk+ pixmap themes.

bevel { up | down }
left right top bottom

Adds a bevel to an image class. This can be done to any image class using the
image or trans modes. The parameters are pixel values which represent the width of each edge
of the bevel. This is especially useful if you want to use tiled images or
transparency for the arrow or anchor scrollbar widgets, or for menus.

padding left right top bottom

This is used only for the
submenu image class. It defines the amount of pixels on each side to reserve so that
the text will not overwrite part of the image. Works just like the same option
in Enlightenment themes.

MENU CONTEXT

This context is used to create a menu. There is one instance of this context
per menu, and the menus should be defined in submenu-menu order; i.e., any menu
that refers to another menu (as its submenu) should be defined after the submenu
is defined. Within the menu context, there should be a menuitem subcontext for
each menu item (with the exception of the shorthand for separators).

title menu_title

This specifies the title for the menu to be defined. This MUST be the first
attribute given after the "begin menu". The title must be unique amongst all
the menus. It may contain spaces, but dont forget to enclose it in single or
double quotes if it does. Any future references to the menu will use the
title.

font font_name

Tells Eterm to use
font_name as the font for this menu. If not given, the default terminal font is used.

sep or -

These symbols can be used as shorthand to insert a separator into the menu.

MENUITEM CONTEXT

This is a subcontext of the menu context which creates a single item for a menu.
There can be (and usually are) several menuitem contexts per menu.

text label

This is the text that is displayed for this menuitem. It is left-justified in
the menu window. It can have spaces, but enclose
label in quotes if it does.

rtext label

This is text which is right-justified next to the menuitem text. This is
generally used to show what keystrokes correspond to a particular menu item,
like "C-x C-c" for the "Exit" menuitem in an Emacs menu.

action { string | echo | submenu | script } paramaction separator

Specifies the action to occur when the menuitem is chosen. If you specify
separator, nothing else is needed. The other action types require a parameter,
param.
string specifies a string to be sent to Eterm for handling (escape codes, for example).
echo specifies a string to be sent to the client program (for sending commands to a
shell, or keystrokes to an application like emacs or mutt). If you use either
of these action types,
param will be parsed for escape codes (\a, C-, and the like) before being sent.
submenu specifies a submenu which should be displayed when this item is
selected, and
param is the title of the submenu to show. The submenu must have already been
defined. The
script action type executes the Eterm-builtin script contained in
param. See the section below for more details on the builtin Eterm functions
allowed for this action type.

ACTION CONTEXT

Actions are key or mouse button bindings which activate certain
behaviors. Any action that can be triggered through an escape code
can be bound to a key or mouse button, with or without modifiers. You
can also bind menus to keystrokes or mouse buttons.

Binds a
keysym or a mouse button to an action. The action syntax follows the keyword
to and is identical to the syntax used for menus (see above). There can be any
number of
modifiers (so long as the combination is reasonable) but only one
keysym or button. Valid
modifiers are
ctrl, shift, lock,
mod1 through mod5,
alt, meta, and anymod (which allows any modifier). If none are given, the keypress must not have modifier keys in use or the action
will not be triggered. Use
anymod to allow any arbitrary modifier key to be used. The
keysym can be given in text (case-sensitive) or as a hex number.
buttons should be specified as
button1 through button5. Also note that
alt and meta will be equivalent to one or more of
mod1 through mod5, as well as perhaps each other, based on your modifier settings. You
can view these settings using
xmodmap -pm. See also the
alt_mod and meta_mod options below.

BUTTON_BAR CONTEXT

The buttonbar is an addition to Eterm 0.9.1 which allows users to have
a fully-customizeable buttonbar at the top or bottom of each terminal
window. Buttons on the buttonbar can be used just like menuitems;
they can popup menus (like a menubar), or they can activate any other
action a menuitem can.

font font

Specifies the font in which button labels will be displayed.

dock { top | bottom |
no }

Specify whether or not to dock the buttonbar, and if so, whether to
dock it at the top or the bottom of the Eterm window. Note that only
top and bottom are currently enabled.

visible boolean

Toggle whether or not this particular buttonbar will be visible on
startup.

Binds an action to a button. The usage of
param and the action types work the same here as they do for menuitems.
Also note that you may specify some
text or an
icon or both, but you cannot omit both.

MULTICHAR CONTEXT

Behavior for multi-byte fonts and encodings are defined here. This
context does not exist by default.

encoding { eucj | sjis | euckr | big5 | gb | iso-10646 }

Specifies the encoding method. Patches to support other encoding methods are
encouraged.

font numfont

Set the
numth multichar font to
font.

XIM CONTEXT

This context controls locale-based behavior.

input_method input_method

Specify your input method program of choice.

preedit_type { OverTheSpot | OffTheSpot |
Root }

Specify your preedit type of choice.

ESCREEN CONTEXT

This context allows for customizations specific to Escreen mode. See
the Escreen section below for more details.

url protocol://user@host:port/params

Connect to (or create) a particular screen session via a URL-type
construct. Standard URL rules apply. The
protocol should be either
screen (the default) or
twin. If
user, host, and/or port are specified, an ssh connection is made to the remote server using
the given login information. The default is to create/attach to a
local session.

Any
params that are given are passed directly to the underlying protocol and are
separated from each other by a plus sign
(+).

firewall localport:firewall:remoteport

Bounce the connection through a firewall via ssh.

delay secs

Specify the amount of time to wait before sending the screen/twin
initialization sequence. This is required to insure that the remote
session has been established prior to sending the init sequence.

bbar_font font

Font to use for the Escreen buttonbar. The default is
-*-helvetica-medium-r-normal--10-*-*-*-p-*-iso8859-1.

bbar_dock { top | bottom | no }

Dock the Escreen buttonbar as specified. Note that only
top and bottom are currently enabled.

TOGGLES CONTEXT

This context contains boolean variables which can be toggled on or off. Valid
values for the attributes in this section are "yes", "on", "1", and "true" to
turn the option on, or "no", "off", "0", or "false" to turn the option off.
These values are denoted by
boolean. They all default to false unless otherwise noted.

map_alert boolean

If true, Eterm will un-iconify itself when it receives a beep (ASCII 0x07).

visual_bell boolean

If true, Eterm will flash rather than sending a beep.

login_shell boolean

If true, Eterm will prepend - to the shell name when calling it. Depending
on your shell, this may modify its startup behavior.

scrollbar boolean

This turns on and off the display of the scrollbar. Default is on.

utmp_logging boolean

If true, Eterm will attempt to make an entry in the utmp file to record the
login information. Eterm may need to run privileged to do this.

meta8 boolean

Toggles the interpretation of the Meta key setting the 8th bit in a
character.

iconic boolean

If true, Eterm will launch as an icon.

home_on_output boolean

Zoom to the bottom of the scrollback buffer on output.

home_on_input boolean

Zoom to the bottom of the scrollback buffer on input.

no_input boolean

If true, Eterm will not accept any keyboard input and will ask the
window manager to not allow it to be focused.

scrollbar_floating boolean

If true, the scrollbar will have no trough.

scrollbar_right boolean

If true, Eterm will put the scrollbar on the right of the window (default is left).

scrollbar_popup boolean

If true, Eterm will hide the scrollbar when the Eterm window loses focus and restore
it when focus is regained. Default is to not change the scrollbar state based on
focus.

borderless boolean

If true, Eterm will run with no window borders. This also means that the
window can not be moved or resized. You will want to specify a
geometry with this attribute.

double_buffer boolean

Rather than drawing text directly onto the window, this causes Eterm
to allocate an additional pixmap the size of the terminal window into
which the background *and* the text are rendered. This pixmap is then
set as the window background. Double-buffering uses additional memory
in the X server, but it allows Eterm to ignore expose events so
redraws are faster.

no_cursor boolean

If true, Eterm will not display a text cursor.

pause boolean

After the child process terminates, Eterm will wait for a keypress
before exiting.

xterm_select boolean

Duplicates xterms treatment of cutchars. The only real difference is
what happens when you double click on a single cutchar between two
words. If this option is on, only that single character gets selected.
If it is off, that character is selected along with the two words. The
latter behavior is useful for double-clicking on the space between someones
first and last names, or the @ sign in an e-mail address, etc.

select_line boolean

If true, this attribute causes a triple click to select the entire
line from beginning to end. If false (default), a triple-click
selects from the current word to the end of the line.

select_trailing_spaces boolean

If true, this attribute causes spaces at the end of a line to be included
as part of the selection text when selecting. The default is to strip
these trailing spaces.

report_as_keysyms boolean

Reports certain keystrokes as keysyms and modifiers rather than escape sequences.
NOTE: This option is intended for use only with programs that support this special Eterm
mode. Do not enable it unless you are executing a program which uses this mode.

itrans booleanimmotile_trans boolean

Toggles the immotile transparency optimization for transparent Eterm
windows. Note that this does NOT activate transparency; you must
still activate "trans" mode for the background image. This option
should be used on transparent windows which are shaded or tinted and
which do not move around on the desktop much. See the
Mon Mar 6 21:11:13 PST 2000 ChangeLog entry for a more detailed explanation.

buttonbar boolean

Toggle the display of all buttonbars.

resize_gravity boolean

If true, Eterm will automatically detect the nearest corner, and
font-change resizes will cause the Eterm window to gravitate toward
that corner.

overstrike_bold boolean

If true (default), Eterm will simulate a bold font by printing each
character twice, offsetting the second pass by one pixel. This makes
the characters seem thicker without the need for a special font. You
may wish to disable this if you use a specific color for bold.

bold_brightens_foreground boolean

If true (default), Eterm will use the "bold" ANSI color attribute to
brighten the foreground color by using the high-intensity colors (8
through 15) rather than the low-intensity colors (0 through 7). Note
that having a specific color selected for bold will override this.

blink_brightens_background boolean

If true (default), Eterm will use the "blink" ANSI color attribute to
brighten the background color by using the high-intensity colors (8
through 15) rather than the low-intensity colors (0 through 7).

colors_suppress_bold boolean

If true (default), any colored text (that is, any text not rendered
using the default foreground color) will not be given any other
special treatment for bolding (e.g., bold font or bold overstrike).

sticky boolean

If true, Eterm will make its window sticky (shows on all desktops).

KEYBOARD CONTEXT

This context contains keyboard-related configuration options.

smallfont_key keysym

Specify a keysym to decrease the font size. Default is Shift and the - key on
the keypad. Ctrl-< or Meta-< may also work (if you #define one of the hotkeys
in src/feature.h).

bigfont_key keysym

Specify a keysym to increase the font size. Default is Shift and the + key on
the keypad. Ctrl-> or Meta-> may also work (if you #define one of the hotkeys
in src/feature.h).

keysym keysymstring

Define keysym
keysym to send
string instead of its default.
keysym must be between 0xff00 and 0xffff or Eterm will complain.

meta_mod num

Specify which X modifier (1-5) to treat as the Meta key. See
xmodmap(1)
and the output of
xmodmap -pm for more details.

Set the command to which to pipe print requests (printscreen) to
command.

save_lines num

Set the number of lines in the scrollback buffer to
num.

cut_chars string

Define the characters used as word delimiters to the characters contained in
string.

min_anchor_size num

Sets the minimum size, in pixels, of the scrollbar anchor (the part your mouse
grabs onto and moves around) to
num.

border_width num

Sets the width of the border between the text window and the X window to
num.

line_space num

Put
num pixels worth of space between each row of the terminal window.

finished_title title

Specifies that
title should be displayed in the title bar of a paused Eterm when the child
process has completed.

finished_text text

Specifies that
text should be displayed in the terminal window of a paused Eterm when the
child process has completed.

term_name name

Use
name as the
$TERM environment variable, which controls which termcap/terminfo entry gets used.
The default is
Eterm.

exec command

Rather than executing a shell, this will cause Eterm to spawn
command as its child process. You can only have one of these!

BUILT-IN FUNCTIONS

Eterm has a set of built-in functions which are available in config
files. Each one accepts zero or more parameters and outputs a series
of zero or more words. "Words" are defined in shell terms; i.e.,
words are separated by whitespace, and single or double quotes can be
used to encapsulate words which contain whitespace themselves. You
also employ backquotes to execute a command whose output can become
part of the config file itself or can be passed to a built-in function
as its parameter list. Built-in functions and backquotes may be used
anywhere their output would be valid. Built-in functions are prefixed
with the
% character.

%appname()

Returns the application name, a hyphen, and the version number. Currently this
is the string
Eterm-0.9.6.

%exec(command)

Executes
command and returns the result. Basically its exactly like using backquotes.

%get(variable)

Retrieve the value of a config file variable. Refer to the
%put() function below.

%put(variable value)

Create a config variable named
variable and assign it the value of
value. The value can then subsequently be retrieved using
%get(variable)

%random(params)

This function randomly chooses one of the words which compose
params and returns that. The default themes that come with Eterm use this
function to choose random backgrounds, but backgrounds arent the only
things that can be randomized with this function. You can randomize
anything...colors, toggles, fonts, tinting, etc.

%version()

Returns the version number. Currently this
is the string
0.9.6.

PREPROCESSING

Eterm supports the
%include file directive to allow for separation of the configuration information into
multiple files. Eterm will load and parse
file just like any other config file, but will treat its contents as if
they replaced the directive itself.

You may also request that the config file be run through an external
preprocessor (such as m4 or cpp) before Eterm reads it. This is done
via the
%preproc command directive. You may specify anything you like for
command so long as it accepts input on STDIN and sends output to STDOUT. See
the
menus.cfg file in the default
chooser theme for an example.

SCRIPT FUNCTIONS

One of the action types which can be bound to keypresses, mouse
buttons, menuitems, or buttonbar buttons is a
script. The script must be a single word (i.e., containing no spaces or
enclosed in quotes) and consists of one or more calls to the script
functions below. Each call is separated from the next by a semicolon
(;). Function parameters are enclosed in parentheses; the parentheses are
optional if no parameters are to be passed. Commas and/or whitespace
separate parameters from each other.

copy(buffer)

Copies the current selection to the specified clipboard or cut buffer.
buffer is either a number
0-7, in which case the selection is copied to the cut buffer specified, or
one of the words
clipboard, primary, or secondary (or any initial substring thereof), in which case the selection is
copied to the specified clipboard. You may omit
buffer, in which case the default buffer is
primary (XA_PRIMARY in Xlib-speak).

echo(string)

Send the specified
string to the subcommand. Exactly equivalent to the
echo action.

es_display(cmd, params)Aliases: es_disp

This is a master function which permits manipulation of Escreen
displays through the use of a series of subcommands. The specified
cmd determines what, if any,
params are permitted. Available subcommands are:
goto - Switch to the specified display (0-9)
prev - Switch to the previous display
next - Switch to the next display
toggle - Toggle display
new - Create a new display. A name for the new display may be passed as a
parameter, or
ask to prompt the user for the name.
rename - Change the name of the current display. A name for the new display
may be passed as a parameter, or
ask to prompt the user for the name.
kill - Terminate the current (or specified) display.
watch - Toggle monitoring of the current/specified display for activity.
scrollback - View the scrollback for the current/specified display.

es_region(cmd, params)Aliases: es_reg es_win es_window

This is a master function which permits manipulation of Escreen
display regions through the use of a series of subcommands. The
specified
cmd determines what, if any,
params are permitted. Available subcommands are:
goto - Switch to the specified region (0-9)
prev - Switch to the previous region
next - Switch to the next region
toggle - Toggle region
new - Create a new region. A name for the new region may be passed as a
parameter, or
ask to prompt the user for the name.
rename - Change the name of the current region. A name for the new region
may be passed as a parameter, or
ask to prompt the user for the name.
kill - Terminate the current (or specified) region.
only - Maximize the current/specified region to the full display.
watch - Toggle monitoring of the current/specified region for activity.
scrollback - View the scrollback for the current/specified region.

es_statement(statement)

Execute an Escreen (screen/twin) command directly.

es_reset()Aliases: es_rst

Reset the Escreen session

exec_dialog(command)

The same as
exec/spawn, but this function presents the user with a dialog box in which she can
edit/confirm the command to be run and specify additional parameters
if needed.

exit(message)exit(code)Aliases: die quit

Exit Eterm with an optional
message or an integer return
code. Either parameter may be specified, but not both. If neither is
specified, a
code of
0 (zero) is the default.

kill(signal)

Sends the specified signal to Eterms primary child process (either
your shell, or whatever you specify for Eterm to execute). For the
time being,
signal must be numeric.
SIGTERM is the default if
signal is omitted.

msgbox(message)

Displays a small dialog box containing
message and waits for a keypress before continuing.

nop()

Does absolutely nothing except waste time. :-)

paste(buffer)

Pastes the contents of the specified clipboard or cut buffer into the
terminal window.
buffer is either a number
0-7, in which case the selection is pasted from the cut buffer specified, or
one of the words
clipboard, primary, or secondary (or any initial substring thereof), in which case the contents of the
specified clipboard are pasted. You may omit
buffer, in which case the default buffer is
primary (XA_PRIMARY in Xlib-speak).

save(type, filename)

Save the current theme/user configuration.
type can be either
user or theme; the default is
user.
filename is the file to which the settings should be saved. It may contain a
path which is either absolute or relative to the theme directory. The
default filename for
user is
user.cfg, and the default filename for
theme is
theme.cfg.

save_buff(filename)

Dumps the contents of the scrollback buffer to the specified file.

scroll(n)

Scrolls backward or forward in the scrollback buffer.
n is a floating point number followed by an optional unit specifier.
The unit specifier is one of:
lines or l; pages or
p; or buffers or b. The floating point number may be separated from the unit specifier by
whitespace or a comma, but it is not required. The floating point
number should be positive to scroll down (forward) and negative to
scroll up (backward). For example, the key sequence Shift-PgUp is
equivalent to
scroll(-1p). You may also specify fractional quantities, such as
scroll(0.5p) to scroll down half a page. The default unit if not specified is
lines.

search(str)

Presents a dialog box into which the user may enter a search term.
The default value is set to
str. All occurances of the specified search string are highlighted in the
scrollback buffer, and Eterm jumps back to the most recent one.
Searching again with the same keyword will clear the previous
highlighting.

spawn(command)Aliases: exec

Spawns a secondary child process to execute
command, or
Eterm if no value is passed.

string(string)

The specified
string is parsed via Eterm. This is exactly identical to the
string action.

Escreen is a screen/twin interface layer which allows Eterm to
interoperate with GNU
screen and with Massimiliano Ghilardis
twin software. This allows Eterm to support multiple subshell sessions
within a single window. On the surface, this feature works similarly
to the "tabbed" sessions offered by programs like
konsole and multi-gnome-terminal. However, Escreen has the advantage of being an interface to existing
software, thus providing additional capabilities like multiple regions
per display, detach/reattach capability, seamless remote session
support, firewall support, and more.

Escreen support is still somewhat experimental and is thus not
compiled into Eterm by default. To enable it, you must compile with
--enable-escreen and/or --enable-etwin (depending on whether you have screen, twin, or both). If you
installed from a package, you can use
Eterm --version and check for either
+ESCREEN (enabled) or -ESCREEN (disabled).

For best results, if you wish to use Escreen mode, do so by invoking
Eterm with the Escreen theme
(Eterm -t Escreen). This theme supplies default key bindings, the basic Escreen menu,
color definitions, etc. for use by the Escreen engine. Most
importantly, it supplies the required
url parameter in order to invoke Escreen mode.

Consult the README.Escreen file for more in-depth discussion of
Escreen mode.