Commit Graph

18 Commits

Author SHA1 Message Date
Michael Jennings d922e2ce53 Mon Apr 3 16:42:06 PDT 2000 Michael Jennings <mej@eterm.org>
Added a --buttonbar option to force on/off all your buttonbars.


SVN revision: 2423
2000-04-03 23:43:15 +00:00
Michael Jennings 94f00a7923 Thu Mar 30 20:34:10 PST 2000 Michael Jennings <mej@eterm.org>
Quick little option -q/--no-input.  It keeps Eterm from accepting
	keyboard input, and keeps the window manager from focusing it.  Useful
	for log tailers and such, maybe.  This feature was requested by
	Peter Ward <than@ilm.com>.  I will be adding an escape sequence to
	toggle this.


SVN revision: 2398
2000-03-31 04:38:01 +00:00
Michael Jennings 607268f595 Mon Mar 6 21:11:13 PST 2000 Michael Jennings <mej@eterm.org>
Added a new option.  -0 (that's a zero) or --itrans will invoke the
	immotile optimization for transparency, so named because it works best
	on windows that don't move around much on the desktop.  It works even
	better for windows that are sticky between desktops.  So if you have
	logging windows (running tail -f and the like) that are shaded/tinted,
	you definitely want to have this.  It will even benefit ordinary Eterm
	windows, provided you don't move them around a lot.  Eterms that do
	not change desktops may be better off with the other way; Eterms that
	are not shaded or tinted at all will not behave any differently.

	Here's the technical explanation for those who are interested.  The
	old (and still the default) behavior is for Eterm to check to see if
	any color modifiers are applied to the image_bg class, and if so, to
	make a copy of the *entire* desktop image which is then shaded/tinted
	appropriately.  It then snapshots a portion of that for the actual
	background.  This way, if the Eterm window is moved, all the shading
	and tinting will have already been done, so all it has to do is grab
	another portion of the desktop and use it.  However, this involves a
	LOT of calculations (one per pixel of the desktop pixmap) on startup
	and at every desktop switch.

	The immotile optimization is intended to reverse that logic by
	optimizing for windows that do not move (hence the term "immotile").
	It takes the snapshot of the desktop pixmap and applies any shading
	or tinting *after* taking the portion it needs.  This requires much
	fewer calculations on startup and when changing desktops, but the
	entire set of calculations must be repeated whenever the window is
	moved.  This is fine for small windows or windows that don't move
	very often, but that's not always the case.  So it is to your
	advantage to pick one or the other depending on how you use each
	particular theme or window.

	Two notes.  One, keep in mind that the -0/--itrans option doesn't
	*activate* transparency; you still need -O/--trans for that.  Two,
	this does not affect Eterms with no color modifiers applied to the
	background.  In that case, Eterm still references the existing
	desktop pixmap to save memory.


SVN revision: 2191
2000-03-07 05:30:33 +00:00
Michael Jennings d2ca8950e1 Fri Feb 18 21:09:29 PST 2000 Michael Jennings <mej@eterm.org>
Okay, I've added a new option to configure.  --config-buffer-size=NNNN
	will set the theme parser's line buffer size.  What does this mean?
	Well, this determines how big a line being parsed can get at any one
	stage of parsing.  So if you use %dirscan() on a large directory, or
	you use %random() on a large list, or you simply have some very large
	lines in your config file, making this buffer size larger will enable
	them to be handled.  The down side to this is that your Eterms will
	appear to take up more memory.  In reality they don't, since all that
	memory gets freed, but it isn't returned to the OS until Eterm exits,
	and the RSS won't go down unless part or all of Eterm is swapped out
	by the OS.  So you've been warned. :-)

	For those who didn't go digging by themselves, what I added yesterday
	were three new builtin functions:

	%get(variable)         Retrieves the value of a theme variable
	%put(variable value)   Sets the value of a theme variable
	%put(variable)         Removes a theme variable
	%dirscan(directory)    Returns a list of the files in a directory

	Everything here should be fairly self-explanatory.  The variables
	are internal to Eterm.  They will last until Eterm exits, so you
	can refer to them in later theme files, unless of course you call
	%put() with a variable but no value (which removes the variable).
	Also note that %dirscan() returns only the filenames, not the
	full pathnames.  This is for two reasons:  One, you already know the
	path to the file since you specified it.  Two, it enables handling of
	directories with larger numbers of files since the path isn't
	uselessly duplicated for each entry it generates.

	These new functions will be the backbone for a new random background
	system since the *.list files are rather clumsy in a lot of ways.  I
	am not yet sure how it will work exactly, but I know I'll need these
	functions to do it. :-)


SVN revision: 2104
2000-02-19 06:29:37 +00:00
Michael Jennings 5a2899ac7f Thu Feb 17 21:38:23 PST 2000 Michael Jennings <mej@eterm.org>
Fixed a bug in the menu code reported by Sung-Hyun Nam
	<namsh@lgic.co.kr>.  There's also some new stuff here, but I haven't
	tried testing it at *all*, so I'm not prepared to talk about it.


SVN revision: 2093
2000-02-18 05:39:39 +00:00
Michael Jennings 42fde9c99d Thu Feb 10 15:10:01 PST 2000 Michael Jennings <mej@eterm.org>
This is the first public availability of the work thus far on Eterm
	0.9.1.  There's quite a bit of new stuff here.

	* Added scrollbar thumb support.

	* Completely redid the terminfo/termcap stuff.  The terminfo file is
	now compiled (by tic) and installed by default (unless you specify
	--without-terminfo).  The config files still say xterm, though,
	because some programs (like SLang and GNU mc) use the silly algorithm
	of "Is $TERM set to xterm?" to detect mouse reporting support in a
	terminal. =P  But if you don't ever use xterm, you can use Eterm's
	termcap and just name it "xterm" instead.  Thanks to Marius Gedminas
	<mgedmin@takas.lt> for his patch that started this whole revamp.

	* Added the kEsetroot script for KDE users from Dax Games
	<dgames@isoc.net>.

	* You can now configure the Home and End emulation via --with-home=
	and --with-end= options to configure.  The --with-terminfo option is
	also new, and --enable-xim is now the default.

	* Added a new image state, disabled, for when Eterm loses focus.  This
	is supported by all widgets (well, all those that could possibly be
	on screen when Eterm lost focus), even the background image.  So you
	could actually have all your images darken on focus out and restore
	to normal on focus in.

	* Widget colors formerly dealt with as colors (menu text color,
	scrollbar color, etc.) are now handled by the imageclasses.  Each
	image state can have a foreground and background color defined.  The
	current exception is the background image; I hope to add that later.
	The foreground is the text color and the background is the object
	color (for solid color mode).  So menu text color is set by the menu
	imageclass.  And again, for unfocused colors, use the disabled state
	of the imageclass.

	* Proportionally-spaced fonts are now handled much better.  They are
	still forced into evenly-spaced columns (it's a terminal for crying
	out loud!) but at least you don't end up with Eterm's wider than your
	screen. :-)

	* Home on refresh is gone, as is home on echo.  It's now much simpler.
	There are two options:  home on output, and home on input, the former
	being a combination of echo and refresh.  Also, keypresses that don't
	necessarily have corresonding output can trigger a home on input,
	like Ctrl-End or whatever...ones that don't have special meaning.
	Credit to Darren Stuart Embry <dse@louisville.edu> for pointing out
	this issue and the one with "m-" in font names.

	* I finally got around to re-merging the new parser stuff from my
	work on the Not Game.  Closed up some old potential behavior quirks
	with theme parsing.

	* Added a new escape sequence to fork-and-exec a program.  Also added
	a scrollback search capability to highlight all occurances of a string
	in your scrollback buffer.  Use the new "Etsearch" utility to access
	it.  "Etsearch string" to search for a string, then "Etsearch" by
	itself to reset the highlighting.

	* And of course, the biggie.  Eterm now supports a completely-
	customizeable buttonbar.  Not a menubar, a buttonbar.  It can have an
	arbitrary number of buttons, and each button can perform an action,
	just like a menuitem.  So a button could bring up a menu (like a
	menubar) or launch a program (like a launchbar) or perform an
	operation (like a toolbar).  Each button can have an icon, text, or
	both.  And you can have buttons left- or right-justified in the
	buttonbar.  You will eventually be able to have an arbitrary number
	of buttonbars, but I'm still working on that.

	As with any change this big, things could very easily be broken.  So
	beware. :-)  I have tested this myself, and everything seems to work,
	but I can't test every possibility.  Let me know if you find anything
	that's broken, and enjoy!


SVN revision: 2048
2000-02-11 00:25:07 +00:00
Michael Jennings 0c66bab547 Wed Jan 5 21:23:56 PST 2000 Michael Jennings <mej@eterm.org>
Copyright date updates.


SVN revision: 1860
2000-01-05 17:34:32 +00:00
Michael Jennings 55ddc328cd Fri Dec 10 23:33:16 PST 1999 Michael Jennings <mej@eterm.org>
I finally got around to implementing double-buffering, although it
	seems to still have some issues with font changes.  But if you don't
	change fonts, it works great. :-)

	I also fixed the multibyte font stuff with help from Sung-Hyun Nam
	<namsh@lgic.co.kr>.  There seem to be some new issues here, though,
	with the background pixmap.  But I'm to tired to look deeper tonight.


SVN revision: 1588
1999-12-11 02:06:33 +00:00
Michael Jennings c58c7d411b Thu Nov 18 21:47:02 PST 1999 Michael Jennings <mej@eterm.org>
I've rewritten almost the entire scrollbar.  It mostly works, but it
	still has issues.  I've put an #error directive in so that it won't
	compile; take it out if you *really* wanna try it.  It's much more
	efficient than before.


SVN revision: 1333
1999-11-19 04:05:24 +00:00
Michael Jennings 1b2977a3d4 Fri Nov 12 19:37:35 PST 1999 Michael Jennings <mej@eterm.org>
Okay, I've fixed a lot here.  First off, I fixed the bug Gnea
	<gnea@rochester.rr.com> pointed out with toggling Max Size in E.
	Turned out to be a symptom of a much larger problem, but it should be
	fixed now.  Then I corrected the XIM issues pointed out by Sung-Hyun
	Nam <namsh@lgic.co.kr> and Jerome De Greef
	<jerome_degreef@hotmail.com>, as well as a stupid typo on my part that
	Jerome happened upon.  Next I fixed the bug Adam Lucas
	<ALucas@wcom.net> spotted with changing the scrollbar type.  While
	fixing that, I also fixed changing the scrollbar width.  Both
	operations are a lot smoother and cleaner now.


SVN revision: 1292
1999-11-13 03:15:18 +00:00
Michael Jennings dd84c6abab Thu Oct 7 18:48:31 PDT 1999 Michael Jennings <mej@eterm.org>
Shaved off around 100 KB of memory usage per Eterm by moving more
	code into the shared library, removing lots of unneeded variables, and
	fixing some small leaks here and there.


SVN revision: 710
1999-10-07 22:18:14 +00:00
Michael Jennings 3630db17ab Tue Sep 28 14:18:44 PDT 1999 Michael Jennings <mej@eterm.org>
Several fixes here, some of which I forgot to commit a couple days
	ago.  Oopsie. =)


SVN revision: 438
1999-09-28 19:38:43 +00:00
Michael Jennings e700e69dff Mon Sep 20 18:32:01 PDT 1999 Michael Jennings <mej@eterm.org>
Lots of changes here.  First off, this should fix the background draw
	bug with transparency that several people pointed out.  While I was
	at it, I also cleaned up a lot of other related stuff.  Three-state
	images should be a lot more robust now.

	Then again, some stuff may be broken entirely from this, so let me
	know. :-)

	For one thing, the various image modes should work as expected now.
	You can allow and disallow modes for the various widgets.  The
	fallback mode is "solid" now, rather than "image," so you can cause
	a certain widget to refuse to use an image if you want to.  If you
	specify an image without specifying a "mode" line that allows the
	"image" mode, your image will not appear. <-- READ THIS TWICE!  I
	had to go back and fix all the theme files because of this, so you
	will need to remove your current theme directory and allow Eterm's
	"make install" to put the new ones in place; otherwise, everything
	will go back to being solid colors. =]

	Anytime something changes this drastically, there are bound to be
	problems.  Let me know if you find any of them. :)


SVN revision: 348
1999-09-21 01:16:46 +00:00
Michael Jennings e4070d2075 Reverting last change for now. Something's very wrong here.
SVN revision: 347
1999-09-20 23:57:57 +00:00
Michael Jennings 933cb583be Mon Sep 20 16:08:41 PDT 1999 Michael Jennings <mej@eterm.org>
Lots of changes here.  First off, this should fix the background draw
	bug with transparency that several people pointed out.  While I was
	at it, I also cleaned up a lot of other related stuff.  Three-state
	images should be a lot more robust now.

	Then again, some stuff may be broken entirely from this, so let me
	know. :-)

	For one thing, the various image modes should work as expected now.
	You can allow and disallow modes for the various widgets.  The
	fallback mode is "solid" now, rather than "image," so you can cause
	a certain widget to refuse to use an image if you want to.  If you
	specify an image without specifying a "mode" line that allows the
	"image" mode, your image will not appear. <-- READ THIS TWICE!  I
	had to go back and fix all the theme files because of this, so you
	will need to remove your current theme directory and allow Eterm's
	"make install" to put the new ones in place; otherwise, everything
	will go back to being solid colors. =]

	Anytime something changes this drastically, there are bound to be
	problems.  Let me know if you find any of them. :)


SVN revision: 345
1999-09-20 23:08:00 +00:00
Michael Jennings 5ee36e0fd6 Tue Sep 14 16:41:08 PDT 1999 Michael Jennings <mej@eterm.org>
Worked around a XF86 3.9.16 (perhaps Xinerama) problem.  Also added
	some XIM changes from Sung-Hyun Nam <namsh@lgic.co.kr> to handle
	buffer overflows.


SVN revision: 274
1999-09-14 23:22:06 +00:00
Michael Jennings 661b1b9448 Tue Aug 17 18:06:01 PDT 1999 Michael Jennings <mej@eterm.org>
Now that we have a fixed CVS server....  This includes the old 0.8.10
	code, but it's now 0.9.  It also includes a timer subsystem.


SVN revision: 52
1999-08-18 01:12:47 +00:00
Michael Jennings 22b2a193d3 Initial import of Eterm 0.8.9 sources
SVN revision: 38
1999-08-17 23:01:18 +00:00