This is the command Eterm that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator
PROGRAM:
NAME
Eterm - the Enlightened terminal emulator for the X Window System
SYNOPSIS
Eterm [options]
DESCRIPTION
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.
OPTIONS
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_color light_color. The opposite effect, a carved-out look,
can be obtained with carved dark_color light_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.
--cmod brightness [ 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-red brightness [ contrast [ gamma ] ]
Same as above, except that the modifier applies to the red values of the image.
--cmod-green brightness [ contrast [ gamma ] ]
Same as above, except that the modifier applies to the green values of the image.
--cmod-blue brightness [ 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.
--alt-mod num
Same as --meta-mod, but for the Alt key.
--numlock-mod num
Same as --meta-mod, but for the NumLock key.
--greek-keyboard mode
Use Greek keyboard mapping (iso or ibm).
--app-keypad
Start Eterm in application keypad mode (as opposed to normal keypad mode).
--app-cursor
Start Eterm in application cursor key mode (as opposed to normal cursor key mode).
-L num, --save-lines num
Set the number of lines in the scrollback buffer to num.
-a size, --min-anchor-size size
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 separators 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
THEMES
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/share/Eterm/themes/<theme_name>.
Eterm now supports the existence of a user configuration file as a supplement 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/share/Eterm/themes/Eterm/theme.cfg). The next section contains
details on the format and usage of the configuration file.
CONFIGURATION
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.
foreground color
Use color for the foreground (text) color.
background color
Use color for the background color.
cursor color
Use color for the cursor color.
cursor_text color
Use color for the cursor text color.
pointer color
Use color for the mouse pointer color.
video { normal | reverse }
normal will not reverse the foreground and background colors. reverse (meaning
reverse video) will.
color num color
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 num font
font 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_color light_color. The opposite effect, a
carved-out look, can be obtained with carved dark_color light_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.
mode initial_mode [ allow allowed_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 fg bg
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.
cmod { image | red | green | blue } brightness [ contrast [ gamma ] ]
colormod { image | red | green | blue } brightness [ contrast [ gamma ] ]
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 } param
action 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.
bind [ modifiers ] { keysym | button } to { string | echo | menu | script } param
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.
button [ text ] [ icon filename ] action { string | echo | menu | script } param
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 num font
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 boolean
immotile_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 keysym string
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.
alt_mod num
Same as meta_mod, but for the Alt key.
numlock_mod num
Same as meta_mod, but for the NumLock key.
greek boolean { iso | ibm }
Turn on/off greek keyboard support, and set which greek mode to use.
app_keypad boolean
Turn on/off application keypad mode on startup.
app_cursor boolean
Turn on/off application cursor key mode on startup.
MISC CONTEXT
This context contains miscellaneous attributes that really didn't belong anywhere
else.
print_pipe command
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 occurrences 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
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.
AUTHORS
Michael Jennings (mej@eterm.org)
URL(s)
Eterm Home Page -- http://www.eterm.org/
Author's Home Page -- http://www.kainx.org/
Use Eterm online using onworks.net services