414 lines
23 KiB

Release Notes
This document includes a summary of major changes for each revision of Eterm.
Changes made to rxvt 2.21 include
- Better (read: working) implementation of utmp logging and added security;
needs to be tested on different platforms;
- Support for Rasterman's Imlib - used for loading and scaling the background
- The command line option -pixmap now takes '@' as the delimiter between
the pixmap name and geometry. The old delimiter, ';', is NOT supported
any more. It was UGLY. Period. <g> ;
- A new command line option, --scale or -@, was added. It will scale the background
pixmap "to fit"; to fill the whole background of the Eterm window;
- The binary was renamed to Eterm;
- Several bug/annoyance fixes. For example, fixed a problem with DEBUG_UTMP
that printed garbage when running with the debugging messages enabled.
See also #define NDEBUG in feature.h;
- Minor speedups.
More changes for 0.3 (included in some 0.2 versions), as described by Michael:
- Installs signal handlers that, among other things, make core
dumps secure by revoking privs and changing its umask to 077.
It also prompts for whether or not it should dump core, timing
out after 10 seconds or if it gets a SIGT(STP|TIN|TOU)
- Changes stuff that said rxvt to Eterm (most places, but I probably
missed a few).
- Fixes SVR4/utmpx compile under HP-UX 10.X
Utmp logging support was fixed to work on FreeBSD (tested on 2.1.5 and 2.2.2)
for 0.3a. Thanks to Brian Gottlieb for doing it.
Changes made to 0.3b include a few portability additions and fixes (HP-UX,
OSF/1) and a few changed (commented out) #define's in feature.h.
Eterm DR-0.4x included a number of patches for bold fonts, security,
utmp logging, etc.
Several bugs were fixed for DR 0.5. Thanks to Michael Kellen for his
Solaris patch.
Thanks go to Steve <> for his help with security.
Changes in DR-0.6:
- Finally got the distribution tree cleaned up to remove most all traces
of left-over rxvt SPAM(tm). For now, however, credit for most of the
docs still remains with the rxvt people.
- No more .Xdefaults support. The X Resource Manager (Xrm) code has
several known security holes which make any program making
XGetDefault() calls insecure. Since Eterm generally runs as root,
this is unacceptable. So too is reading .Xdefaults directly, which
it had been doing up until now. From DR-0.6 on, it will read (in
proper Enlightened fashion) ~/.Eterm/MAIN, which will be a very
E-like config file. See doc/MAIN.dist for a sample.
- The config files support $ variable expansion, ~ expansion, single/double
quotes, and (if #defined) backquotes. PLEASE read the accompanying
notes in src/feature.h before #defining ALLOW_BACKQUOTE_EXEC. Also
supported is the %include macro.
Changes in DR-0.6a:
- Lots of bug fixes:
- The font options now accept font names starting with '-'
- Intense colors are no longer off by one.
- Scrollbar and cursor color configuration options now work properly.
- Eterm now changes back to the original directory after searching for
a config file.
- Command line options now take precedence over config file options
- -h and --help now work properly, instead of asking for a string value
- now contains a value for cut_chars that works right when
- The "video reverse" in is now "video normal", because I
got sick of people saying there was a bug in Eterm that caused their
foreground and background colors to be swapped. :^) More of a
cl00bie-didn't-read-the-comments fix than a bug fix.... ;)
- New features:
- A "magic number"-like identifier that will prevent Enlightenment config
files from being read by Eterm. See doc/MAIN.dist for details.
- Secure execution of backquote commands in config files, even if Eterm
runs setuid/setgid.
- Invalid contexts are skipped entirely with only one error message. For
example, if you don't compile in kanji support, you'll only get one
warning instead of 5 or 6.
- -H and --home-on-echo options, which will cause Eterm to jump to the
bottom of the screen when something is echoed there, if you're viewing
the scrollback buffer. There is also a new attribute "home_on_echo" in
the toggles context of the config file for this option. Thanks to Casey
<> for his help with this. Just in time, Casey. :)
- There is now a script which randomly chooses a pixmap from ~/.Eterm/pix
that can be executed in your config file. This script requires the
dorand program (source provided) and can be found in doc/
Changes in DR-0.7:
- Theme support. The options were changed to -t and --theme. Consult the FAQ for
more info on themes.
- Alternate config file option. This has been integrated into theme support, but
can also work independently thereof. If you don't like the name MAIN for your
config file, or want to run a certain Eterm with a different config file, use
the -X or --config-file option.
- Borderless Eterm windows. Use the -x or --borderless option to get a borderless
Eterm. Remember, you'll want to specify a geometry, since you won't be able to
move it, and something to exec. If your window manager supports it, it is
recommended that you use that functionality rather than Eterm's built-in option.
- Built-in functions. Several functions have been added to facilitate the building
of more robust config files. The currently-supported functions are:
- %appname() Returns the current application name. "Eterm-DR-0.7" as of
Eterm 0.7.
- %version() Returns the numeric version.
- %random(...) Randomly chooses one of its parameters and returns that.
- Other new options (consult the MAIN file and the --help screen for more info):
- -E and --home-on-refresh
- --pointer-color
- --scrollbar-right
- --scrollbar-floating
- -M and --menu (Menubar code is beta, so use it at your own risk)
- --term-name
- Config file support for all the above. Also:
- exec (context misc) For use with themes....
- Some major and minor bug fixes. Nobody noticed, so I won't go into details. :)
- Support for Window Maker's "docking", thanks to CmdrTaco (Rob Malda)
Changes in DR-0.8:
- Several experimental features are in, like active tags, fake transparency,
and threads support. Use them at your own risk; they are unsupported and
known not to work right. We chose not to fix them since we're going to
rewrite the whole thing anyway (see
- The FORCE_BACKSPACE feature introduce in 0.7 PL5 has been disabled for now;
you can't succesfully start Eterm as a background process with it
- The new fake transparency option, -O/trans, only works OK with a pixmap
the size of your root window / resolution. Test it with an exact image
of your root window for a neat effect :) Note that escape sequences for
changing the background pixmap will be ignored.
- Two new config file options, "trans" and "save_under", have been added.
Read themes/Eterm/MAIN for more information. The corresponding new
command line options are -O and --save-under.
- Fixed the pixmap handling code so that the menubar stuff works right now.
Thanks to Cliff Wright <> and keebler
<> for their help with finding and fixing this.
- The Xterm-style scrollbar feature (defined in src/feature.h) will actually
compile and run properly. The restriction on size to 15 pixels has
been removed as well. Thanks to Peter Norby <> and
Hal Black <> for supplying patches for
- Made several changes to the configure script so that hopefully it will
work for a larger percentage of the populace. :-) Some of the changes
were suggested by John Reese <> and Hal Black
- Added MIN_ANCHOR_SIZE to src/feature.h which allows you to specify a minimum
size for the scrollbar anchor. Good for large scrollback buffers and/or
small windows. Still a mite flaky at the bottom of the scrollbar, but it
works. Credit for the idea goes to Stephen Farrell <>,
though the actual code was largely rewritten.
- Added CHANGE_SCROLLCOLOR_ON_FOCUS to src/feature.h which makes the
scrollbar "disappear" (i.e., become the background color) when the window
loses focus. This feature was suggested by Scott Heavner
- Added option --menu-text-color and config file attribute menu_text,
which allow you to change the color of the menubar text. This feature
was suggested by Scott Heavner <>.
- Fixed a bug for FreeBSD that only allowed Eterm to open 16 tty's at
once. Thanks to Christopher Mann <> for finding this
- PL1
- Fixed bug which caused scrollbar not to redraw properly
- PL2
- Rewrote the string functions in src/misc.c to be faster. Also, support
for "\C" and "C-" to represent the Ctrl-key modifier was added.
- Added MENU_TEXT_FLOATING to src/feature.h which puts the menubar text
in the middle of the menubar buttons (which is, IMHO, where it belongs,
but apparently someone disagrees :-) -- mej).
- The pre-release stuff in RELNOTES.Eterm has been removed.
- Added an "emacs" theme for GNU Emacs or XEmacs in a text window.
- Got rid of that damned annoying preedit type error. :-)
- Added call counting for the malloc routines in libmej/mem.* thanks to
Michael Wolf (Elessar) <>.
- PL3
- Changed themes/ so that existing themes in
${prefix}/lib/Eterm/themes do not get overwritten by the "make install"
routine. Sorry, stupid oversight on my part. :( -- mej
- New "chooser" theme. Read the comments at the top of
themes/chooser/ for more details. :)
- New extended command "echo" in the ESC ] 10 ; set. See the chooser
theme for implementation examples. Basically, it echoes its parameters
and tacks a carriage return on the end.
- Fixed the bug introduced in PL2 which caused a border width < the shadow
width to not properly display the menubar. This was only noticeable in
the mutt theme or to users who specifically set border_width to 0 or 1.
- Eterm now sets the environment variable ETERM_THEME_ROOT to point to the
root directory of the theme it is currently using.
- PL4
- Made several portability improvements in the configure script and its
associated files.
- Moved the active.tags file into the themes directory, which is the
location from which it is installed.
- The configure script now builds src/feature.h instead of the make process
so that it will be there before the make is done. If src/ is
updated, however, src/feature.h will still be generated from it by a make.
- The installed Eterm binary will be Eterm-<version_number>, and Eterm will
be created as a soft-link to that file in the $bindir directory.
- Eterm will now guess the install prefix (${prefix}) based on where gcc is
located, unless you give a --prefix on the command line. This keeps me
from having to use it. If it makes you have to use it, tough break. =P
- Added the --with-imlib option to configure. If you specify
--with-imlib=/some/path, the compiler will look in /some/path/include
for Imlib's header files and in /some/path/lib for Imlib itself. You can
also specify --without-imlib, which will disable pixmap support entirely.
- PL5
- Fixed the problem with the Eterm -> Pixmap -> None menu item.
- IMPORTANT NOTE: One of the src/feature.h defines added in version 0.8 was
the MIN_ANCHOR_SIZE #define. There are KNOWN PROBLEMS with using this feature
and trying to scroll up from the bottom using Shift-Prior, the up arrow on the
scrollbar, etc. If this bothers you, COMMENT OUT that line in src/feature.h.
Fixing this problem will require a redesign of how Eterm looks at scrolling
and positioning the terminal window relative to the scrollbar and vice versa.
This may or may not happen in the current development cycle.
- Added the CTRL_CLICK_RAISE #define to src/feature.h which allows a mouse
click in the terminal window while holding the Ctrl key to raise the window
and steal keyboard focus. This is useful if you are stuck without a window
manager for one reason or another or for using Eterm as an X session manager.
- Also added an escape sequence, ESC ] 5 ; BEL, to perform the same task, and
added a menu item called "Steal Focus" to send that escape sequence.
- Fixed the "bug" that made command-line paths relative to the current theme
as well as paths in theme config files. Searching relative to the current
directory takes place after searching the directories in the "path" line
(from the config file). (I have "bug" in quotes because it wasn't really
a bug -- all paths were interpreted relative to the theme used -- but it
applied to command-line variables too, which was very confusing to some.)
Changes in 0.8.6:
- For starters, we changed the naming convention. No more "DR" and "PL" stuff.
We got asked too many stupid questions. ("What's the P 15 mean?") Starting
with this release, we'll be using numbers only. The third number will still
indicate the patch level, however.
- Added support for imlib-config script supplied with Imlib 1.8 and up. This
speeds and simplifies the calculation of CFLAGS and LDFLAGS for proper
linking with Imlib.
- Fixed problems with compilation on NetBSD thanks to Clifford Wright
- Redid the themes to support the new pixmap mechanism I'm working on. Once
the new pixmap archive comes out, you'll want to remove your themes
directory ($prefix/lib/Eterm/themes by default) and install the themes
contained in this distribution. Get the new Eterm Backgrounds Collection
at or a mirror near you.
- Reworked the transparency mechanism thanks to Gerald Britton
<> and Nat Friedman <>. It now takes a copy
of the root window's pixmap and uses that. It responds to all moves and
resizes by updating the pixmap. No requests for changing pixmap are
honored by a transparent Eterm (the -O or --trans options). Furthermore,
this will probably only work in Enlightenment. And for the full effect,
you'll want to run it without scrollbar/menubar and borderless (the
latter being done either through Enlightenment or with the -x option).
- Added the Esetroot program, which sets the root pixmap atom for those
who don't use Enlightenment as their window manager. There has been
mixed feedback on whether or not this program works. YMMV.
- Added a theme to demo some of the pseudo-transparency features. Use
"Eterm -t trans" to invoke it.
- Some pseudo-transparency toys are in too. The option --shade will darken
the portion of the desktop "showing through" the Eterm window. Results
in a "smoked glass" effect. This option can also be used with the
--tint option to provide a colored glass effect. See the man page for
more information. Also be sure to check out the effect of the
--scrollbar-floating option with transparency. :)
- Fixed compilation without pixmap and/or menubar support. The options
--disable-menus and --without-imlib can, when passed to the configure
script, be used to automatically disable menubar and pixmap support,
- NEW MAN PAGE!! At long last, the man page has been updated with the new
options. Many thanks to Shaleh <> for doing this.
- The values "yes" and "no" can now be used as boolean values in options
and config file entries, along with 0/1, true/false, and on/off.
- Eterm now changes the color of the scrollbar when losing focus. If no
unfocused scrollbar color is specified in the config file or on the
command line, you will not notice it. See the man page and the default
config files for more info.
Changes in 0.8.7:
- The old libmej is now built as a shared library as well as a static one.
Also, everything but the main() function has been moved into a library,
libEterm. Since most people use lots of Eterms at once, creating a shared
library will reduce the text segment of each Eterm significantly, saving
quite a bit of memory per Eterm.
- Removed MIN_ANCHOR_SIZE and added -a (--min-anchor-size) option. It is 0 by
default so ppl won't complain about the scroll-up "bug".
- Lots of fixes to Esetroot
- CygWin32 support. May take a little bit of effort, but it works.
- Escape sequences to toggle transparency and shading, as well as set tint,
are in. Toggling transparency works. The others don't yet.
- Newer Linux versions required a hack to open the display.
- Cleaned up privileges toggling.
- Changed the --watch-bg option to --watch-pixmap, which will hopefully make it
less tempting for people to think it has something to do with transparency.
- Added the --watch-desktop option which causes a pseudo-transparent Eterm to
monitor the desktop pixmap for changes and update accordingly.
- Several various parser cleanups.
- Transparency can now be done via Imlib rather than Xlib. It is markedly slower
but offers more configureability, like shading by percentage (--shade-pct) and
tinting masks (--tint <24-bit mask>).
- Shading now works for 8bpp pseudo-color displays. This formerly generated an
error message about the X server not setting the visual info properly. It is
not fast by any means, but that's what you get for having an 8bpp video card.
- Fixed the menubar code so that the menus aren't clipped by the window or screen
- Changed the shell_expand() function in options.c so that \' within single quotes
would insert a single quote. This differs from the shell behavior, but I prefer
it. :)
- More *BSD utmp fixes.
- Added debugging features configureable at configure-time. Also added stack
tracing on crash.
- Fixed the bug with dragging a transparent Eterm across E's desktop dragbar. It
reparents to the root window for a bit, but once you drop the window, it changes
backdrops right on cue. Also works when moving Eterm windows between desktops.
Note that this requires the use of the -W (--watch-desktop) option.
- \e[9n prints the pixmap filename in the title bar. In transparency mode, prints
transparency info to the title bar.
- New --home-on-input option which split off part of --home-on-echo
Changes in 0.8.8:
- Better, more detailed man page. Now if only people would read it....
- Shading is now done by percentage, and tinting by hex mask. See the man page for
more info.
- Lots of new options: --menubar-move, --anim, --pause, --viewport-mode,
--xterm-select, and --select-line. See man page for details.
- FORCE_BACKSPACE and FORCE_DELETE have been fixed.
- KS_DELETE (the strings associated with pressing the Delete key) is now set to ^?
by default. If you don't like that, you can set it back, or use the keysym
attribute in the config file, or whatever.
- --with-cc=prog argument to ./configure to specify an alternative compiler. The
default looks for egcs, then pgcc, then gcc, etc.
- Eterm-specific escape sequences:
Syntax: ESC ] 6 ; <op> ; <arg> BEL
where <op> is: 0 toggle transparency
1 set shade percentage
2 set tint mask
3 forced update of pseudo-transparent background
30 Do not use
40 Do not use
and <arg> is an optional argument, depending
on the particular sequence being used. It
(along with its preceeding semicolon) may or
may not be needed.
- X errors are handled more gracefully and with more helpful information.
- The --disable-stack-trace option to ./configure, whose use is obvious.
- Added an icon and associated option/attribute.
- As always, lots of bug fixes. See the ChangeLog for details.
- The -center option for Esetroot. Centers the pixmap.
- Eterm is now FHS compliant, meaning that the theme and image directories are
now under ${prefix}/share/Eterm instead of ${prefix}/lib/Eterm. See the
move-themes script included in the distribution.
Changes in 0.8.9:
- Support for scrolling with mouse wheels.
- New --version switch to display compile-time configuration.
- Tinting and shading have been sped up by about 30% thanks to Michael Pearson
- Scrollbar type and width is now customizeable at compile-time *and* run-time.
Support for NeXT-style scrollbars has also been added.
- Three *major* bugs have been fixed. Tiled desktop images no longer cause
crashes when tinting or shading. The resize crash bug has also been squished.
The secure system() call replacement which was accidentally removed has been
added back.
- Ctrl-Button1 now grabs input focus. Ctrl-Button2 toggles the scrollbar on and
off. Ctrl-Button3 toggles the menubar on and off. NOTE: If you used to
disable the menubar by commenting out the loading of the menubar file, or
loading a fake one (e.g., '-Mx' or '-M /dev/null'), don't. Simply add "off" to
the end of the menu line (e.g., 'menu off'), or use the new boolean
command-line option --menubar (e.g., '--menubar off'). Then you can toggle the
menubar using Ctrl-Button3 like you would expect.
- Popup scrollbar support has been added.
- New -D (--desktop) option for choosing a desktop to start on. Your window
manager must be GNOME-compliant for this to work. See the documentation at for info on the _WIN_WORKSPACE property.
- The Eterm Technical Reference has been completely rewritten. It is now an HTML
document located in the doc/ directory.
- Lots and lots and lots of new escape sequences. See the Technical Reference for
details on them.
- Oodles of small bug fixes, as always. :-)
- Debugging output is now runtime configurable. Use the --debug option and supply
a number. 0 (the default) gives no debugging output. 1-5 give increasingly
more output, up to 5 (which I don't recommend using) which synchronizes X events
(and slows things down bigtime).
- You can now save your current Eterm settings from the menu.
- New --app-keypad and --app-cursor options to set the startup mode for
application/normal mode for the keypad and cursor keys.
- Three new utilities in addition to Esetroot, all of which are located in the
utils/ directory. Etbg is a tool for manipulating Eterm's background image on
the fly. demonstrates all the different combinations of your
current color settings. lets you send menu commands to Eterm's
menubar subsystem without having to type the escape codes yourself.
- Borderless Eterms now attempt to use the Window Manager to become borderless
instead of bypassing it altogether.