8.0: Here I (MC) leave off development of tkgoodstuff. Anyone who would like to adopt it is most welcome. 8.0b2: 8.0b1: - Hacked at some of the C stuff for compatibility with tcl/tk8.0b1. (5/28/97) - Ken Hornstein's netscape-remote doesn't work with Netscape 4.0 until b5, and it won't compile with tcl8.0b1, so I'm just doing "netscape -remote" for now (this doesn't work with Netscape 4.0 before b5 either, but it works with tcl8.0b1). (5/30/97) - Simplified some of the configure/install stuff. (6/11/97) 8.0a2: - Fvwm2's geometry management had been a little broken, which explained the odd stuff tkgoodstuff panels had to do to span a screenedge. I've sent a patch to the fvwm2 maintainer (Chuck Hines) for fvwm2.0.45; the patch is included in this distribution. In keeping with No-Backward-Compatibility, now you need to upgrade to fvwm2.0.45 (and use the patch) to get screenedge mode to work. I'm sure you can figure out how to patch fvwm95 similarly. (Sorry about that, but it relieves one of my biggest headaches.) (1/27/97) - Font preferences use a font selector. Relatedly, font handling is a bit saner. (2/3/97; more font stuff fiddling 2/6/97) - The default relief for buttons (globally or individually) is flat (for a sleek look). A preferences item still allows raised buttons. (2/6/97) - Bells are more distinctive: the alarm (and Ical) bells are a little louder and longer than your regular ^G beep, and in Biff and Watch, the pitch of the bell corresponds to the alert level. If you have several Watch'ed files and Biff'ed mailboxes, you can get a nice (?) little tune on tkgoodstuff startup. (2/10/97) - Bug fix: in revising the tkgbutton.tcl code we lost a level of substitution on the unix command. Thanks C. Roth (2/12/97) - Help "balloons" code simplified. Balloons no longer time out. (2/13/97) - Hierarchical listbox widget improved. For example, you can drop items "within" items that permit children. (2/14/97) - Bug fix: geometry handled improperly in restart caused panelbuttons not to work. (2/15/97) - Bug fix: tkgbuttons could freeze on doubleclick. (2/15/97) - Bug fix: switches like "-font" in a button's unix command would be modified. (2/16/97) - New client "Watch". Like Erik Kahler's "WatchDog" except it allows multiple files to be watched, as in Biff. Includes a lister that functions like "tail -f", and which allows you to view in one window all (or a selected group of) the files being watched. (2/12/97) + Added indications in multiple-file viewer of which files have changed and which one changed most recently. (2/15/97) - WindowList: + We use a "tkgframe" instead of a text widget. Somewhat zippier, and lets us put the panel tile image (if any) in the background (or another tile image of the user's preference). Looks a little bit different. (1/30/97) + (bugfix) A panel containing only WindowList wouldn't size properly, and windows wouldn't show up. (4/3/97) - Biff: + For MH folders, if folder or .mh_sequence doesn't exist, make the message counter (in menu or on button) zero. (bugfix; 2/6/97) + Brushed up IMAP mailbox checker. We keep the IMAP socket up between checks; otherwise it's very hard to reliably check for new mail. (2/17/97) + Added preference setting for IMAP port. (4/15/97) + If you choose "exmh" as the "unix command to execute instead of using tkgoodstuff's lister" for an MH folder, then if exmh is already running we direct exmh to the folder. + (bugfix) Standard atime method reset new-mail indicator at second check. - TkMan: + (bugfix) some button preferences were ignored (2/22/97). + Raise tkman window when using button <3> to view a manpage (if fvwm is used). - Webster: + Webster servers have disappeared (copyright issues, I guess). So now the Webster button directs your browser to look up the definition of a word at the Merriam-Webster site (a better dictionary anyway, but sometimes slow response). You can change the URL if you know a better one. + A. Burt contributes bugfixes and an entry dialog (which Webster should have had from the start). - Pager: (bug fix) really ignore the tkgoodstuff main panel (in tk8.0 this has the id [wm wrapper .main-panel]. (4/9/97) 8.0a1: - Ok, forget 4.2, we may as well work with 8.0. Get tcl/tk8.0a2 or later (a1 has relevant bugs). As always, we don't do backward compatibility (too much work). There probably are quite a few bugs. I'd appreciate your testing this, but beware. - Buttons and panels now can have tiled background images. - Rewrote the tkgbutton extension code around the tkButton.c and tkUnixButton.c in tk8.0. This code allows buttons, labels, etc., to have images as well as text. Added "-textweight" and "-imageweight" options (like the option to "grid row/columnconfigure). Also wrote code for "tkgframe" widgets (like frames/toplevels, but allow background tiles). - Color preference items use the new tk color selector. - Killed (or at least maimed) some bugs: + an old one that caused us to lose some preferences changes. + one that made "Fill" items cause errors. + one that abandoned your specified icon-side when the panel is dragged to another screen-edge. + one that made gcc choke when compiling on Solaris 2.4. + Text now gravitates to the bottom of button when below image. + A preferences label implied that leaving the button text field blank would give you text anyway (which would be silly). - Main Menu button can have icon on it and/or text. By default, it now has a pale blue "TKG" icon in the background (I'd welcome a nifty logo-ish thing if anyone out there is less art-challenged than me). - Now when you insert an item in the hierarchical list widget, the new item is always visible and highlighted. - Biff: + Menu indicating which mailboxes have new mail now can be a tear-off menu. + That same menu can now replace the Biff button on the tkgoodstuff panel. (For some reason this breaks the ability to drag windows from WindowList into Pager. Tk bug?) + When you click with button 3 in single-mailbox mode, or select a mailbox from the menu in multiple-mailbox mode, we allow an arbitrary unix command instead of calling up tkgoodstuff's new-mail lister (so you can start a mailer directed at a particular mailbox instead of using our lister). 4.2b1: - New versions are for use with tcl7.6/tk4.2. - Got rid of BLT fuctionality. This saves many configuration headaches. However, this means that drag&drop no longer is supported (you can't drag files onto tkgoodstuff buttons). Also, certain programs can fool tkgoodstuff buttons into rising before the programs actually exit (namely, programs that freopen() stdout). You can get around this by calling instead a shell script that simply runs the offending program: #!/bin/sh knews 4.1: - Auto-configuration now is more standard GNU: we assume you want to install in /usr/local/... unless you specify otherwise (with "./configure --prefix=/some/directory"), rather than assuming that you want to install wherever tcl and tk are installed. Also, we look for tcl/tk headers in more places. - Default is now to make tkgwish (to cut down on compilation gripes), but if you configure with "--enable-libs", then you get loadable libraries instead: libtkg (with image+text button code), libpixmap, libtkfvwm, libtkSteal, libblt, libtkNetscape. - Used "unprotoize" on tkNetscape.c so that SunOS's non-ANSI compiler doesn't choke on the function prototypes. - The preferences manager now uses tabbed notebooks to give you that warm'n'cozy GUI feeling, at no cost in added functionality! (The tabbed notebook widget, like the hierarchical list widget, is core tcl/tk only.) - New button option: "Fvwm button behavior". If set (and using the fvwm2 or fvwm95 window manager!), then the relief of the button (raised/sunken) is sensitive only to the existence of a window of the given name. This way, your unix command button will be sunken even if you start your application without pressing the button (e.g., with a window manager menu or on a command line), and even if you restart tkgoodstuff. - Incoporated the "netscape-remote" tk extension by Ken Hornstein, which makes for quicker visits to selected URL's with the WWW client. - Now you can use fvwm modules as swallow and menu items (just make the unix command, e.g., "FvwmPager 0 1"). - NOTE: Various code uniformization that (a) is certain to introduce a bug or two, and (b) unfortunately meant renaming some preferences variables, which means that some of your preferences will have to be redone. Sorry about that. - Biff: + New mailbox method "IMAP": check and read new mail at a remote IMAP server. Consider this feature ALPHA, since I'm the only one who has tested it (reports welcome). It should work on any IMAP-2bis or IMAP4 server. + Biff mailboxes are now individually configurable with an hlist widget gizmo. They can have different checking intervals, etc. + Mailboxes now are assigned "alert levels" of white, green, yellow, or red, which determines what icon is shown for new mail. + Fvwm: When going to a window we give it focus or not depending on whether the window has style flags set for ClickToFocus or SloppyFocus. This way we give a window focus whenever we can do so without warping the pointer. - Pager: + Clicking on the current page cycles through the open windows on the page. + Clicking on another page always goes to the window last selected on that page, if any. + Find some way of reminding people (everybody forgets this) that you can move windows between pages and desktops by dragging with mouse button 2 from the WindowList to the Pager. - Dialer: Oops: we had been sending the dial command twice, which could produce inexplicable "NO CARRIER" messages. 4.1b8: 6/9/96 - Incoporated bgexec and drag&drop from BLT, which means that the handling of executed programs is less kludgy, and that you can drag files from tkdesk to tkgoodstuff buttons. - Incorporated TkSteal, and added the element type "Swallow", which lets you put an external X application window in the tkgoodstuff bar. - Main panel is now just another panel. This helped kill a bug (which is tk's, I think) that was tweaked in the screen-edge dragging and resulted in segmentation faults. - Added a balloon help feature (annoyance? it's defeasible). - Added a commented example client "Example.tcl", which may take a lot of the mystery out of writing a simple client. - Added a preferences item for a list of tcl code directories to prepend to auto_path (so that you can use your own tcl code without writing a client). - Buttons now can have images as backgrounds (the text is written over the image): set the "side" of the icon to "background". - WWW and Fvwm handling much improved thanks to A. Burt (who contributed lots of bug fixes elsewhere too). - WindowList: + keep usual icon when iconified (foreground color still grayed out). Easier to tell what program is iconified this way. + Added default icons for file managers (xfm and tkdesk) and man page readers (xman and tkman). - PopImap: Keep track of fetch process and don't overlap (thanks T. Fries). 4.1b7: 5/22/96 There have been quite a few changes that are sure to introduce new bugs. Please inform me of any troubles, providing as much information as you can about your platform, your .tkgrc, etc. - The latest tkgoodstuff and the latest CHANGES file is now available at the web site. - The GUI installation tool has been replaced by a GNU autoconf thing ("./configure" then "make", then "make install"). Probably there are still importabilities, so please let me know how it goes. - The xpm and fvwm extensions are now wrapped into "libtkg", which is compiled and installed automatically at tkgoodstuff installation (this way you don't have to install, and I don't have to maintain, as many packages). If someone wants to pull them apart and maintain them individually, be my guest. - If the Tcl installation doesn't support loadable libraries, we make and use tkgwish. You can force this with "configure --enable-tkgwish". (Worth a try if the C compilation fails.) - The panel (including main panel) and menu configurations are now done with a point-and-click, drag-and-drop hierarchical list widget with little icons to make you feel safe-and-secure. It's harder to screw up your configuration or menu now (or it should be when the bugs get ironed out). - The image+text tkgbutton code is now done in C (and is part of libtkg). This simplifies and speeds up various things. - Dragging a (screenedge mode) main panel (by its border) to other edges of the screen now works without restarting tkgoodstuff. If you have used the defaults, the arrangement of icons, labels, etc, changes to suit the new orientation. - No more "Dismiss" buttons in panels produced by PanelButtons, since they can be dismissed by clicking on the PanelButton. - Clock now shows time only by default, and toggles to show the date temporarily when the mouse pointer enters the clock window. - The tkgoodstuff menu now can be used anywhere in the Menu client menu as a cascade (before it would pop up oddly). Also, for now there is only one Menu client menu (anyone sorely miss having 3?). - We take advantage of the /proc filesystem (e.g., on Linux): + Load now reads /proc/loadavg if it exists (and otherwise exec's uptime). + Net now by default reads /proc/net/route if it exists (and otherwise exec's ifconfig). 4.1b6: 4/30/96 - There is a new on-line preferences manager (so you don't have to edit the rc file by hand). Start up tkgoodstuff. You will get a default configuration. Select Preferences from the tkgoodstuff menu, and choose the "Configuration" section. Here, add, delete or move Client, AddButton, AddLabelBox, stacking, and panel-creating commands. Then, save the preferences and restart. Now you can set using the preferences manager the things you used to have to adjust with variables. - tkgoodstuff: + New options for icon scale and font scale (small or large). Also, where an iconfile is called for, you can specify "%biffnew" and tkgoodstuff will look, depending on whether the scale is small or large, for biffnew.xpm or biffnew-sm.xpm. + New option for standard padding inside buttons, etc. Adjust to 0 for very busy but compact look, to 2 or 3 for more roomy look. + Now you can specify a pathlist of icon directories in the preferences manager. You also can specify an icon that is somewhere in that path with just its name (full filenames work too). + In fullscreen mode, now you can "drag" the main border to move the panel to another edge of the screen. It's a quick hack (if we go from horizontal to vertical or vice versa we save a changed fullscreen-side preference and restart tkgoodstuff), but nothing wouldn't be better. We should really be able to do this on the fly (which means regridding, and resizing the auto-sized clients (Clock, Pager, Load). + Also there is a new option Auto-minimize which in fullscreen mode reduces tkgoodstuff to a line along the edge of the screen when the mouse leaves the tkgoodstuff panel. + Killed (I hope) bug without understanding why: sometimes in auto-minimize mode clicking on a panelbutton would cause an error whose entire stack trace is ("after" script). Since removing an "update" command from TKGPanelButtonInvoke, I no longer see this problem. Any speculations as to why would be welcome! - New Client: TkMan, by G. Dezern, interfaces with the tkman man page viewer the way our WWW client interfaces with web browsers. - WindowList: Shorten windownames before using scrollbar (patch from E. Kahler). - Biff: + Mail-checking methods now work as advertised (thanks R. Angiel and G. Dezern). I hope. + Optional on-button display of number of new messages (except for users of the mh method). (Thanks R. Angiel.) + Display of new messages was too fancy, or not fancy enough, to work right; now we just display the entire header with the message. + MH method much, much improved thanks to G. Dezern. + Multiple mailbox support thanks to G. Dezern. - Net: + Added elapsed-time-of-connection counter. + Deleted net-type from label. - Jots and Calc: respond sensibly to window manager DELETEs. - Icons: ruthless color-pruning. Now the icons use colors from a palette of 19 colors, and tkgoodstuff's default widget colors are among them. - tkxpm and tkfvwm: much tidier configure scripts (not using autoconf), relying on tclConfig.sh and tkConfig.sh. Also, fvwm source is no longer needed to compile tkfvwm (libfvwm2.a is now installed at fvwm installation). M. Beynon contributed bug fixes. 4.1b5: 2/27/96 Now tkgoodstuff assumes tk4.1b1 or later (we're aiming at supporting the ultimate 4.1 release, and backward compatibility is too much work). - tkgoodstuff: + We use the grid geometry manager rather than pack for almost everything. TKGPack is superseded by TKGGrid. Had hoped that this would make fullscreen mode easier, but no. + Added subpanels which are formed with StartPanel and EndPanel, can be linked to a button with PanelButton, or placed on the screen at startup with PutPanel. See the tkgoodstuffrc html docs for more. + Now xpm capability is mandatory. I hope Ioi Lam's xpm image type will get in the core before our main 4.1 release. + "create-label-box" renamed to "TKGLabelBox". NOTE!!! + AddButton and AddLabelBox no longer take a name as first argument. NOTE!!! + Clock_zerotrim moved to tkgoodstuff and called TKGZeroTrim. + Use "ps -p [pid]" if "ps [pid]" gives an error, and don't assume there's a STAT column in the ps output (thanks J. Robinson). + Implement TKGAddToHook and TKGDoHook (general hook utilities). Several hooks are defined (for client use) in tkgoodstuff, Fvwm.tcl, etc. + Change default fonts to non-italic, non-bold. - Biff: avoid tcl7.5b1's gets bugs by not doing "gets $f var". - New client "Pager" by Eric Kahler. Check out the current version in this distribution. Needs tkgoodstuff to be run as an fvwm module (from the fvwm window manager). - New client "Chooser" by Eric Kahler. Pops up a window at startup to let you choose among different tkgoodstuff configuration files. - New client in "alpha" stage: Calc (dec/hex/oct calculator). Has paper-tape-like scrollable history. Some features not implemented, but it's fairly usable. I'm not inclined to develop this further right now, so I'd be very happy if someone were to adopt it. - New client in "beta" stage: Webster (net dictionary client). Pops up a definition of the word you highlight (the current X selection). Can use unix "webster" command, but also has its own internal webster client code (using the new Tcl socket stuff, with a kludge required because Tcl strings can't yet contain NULLs). - The tkfvwm source is now included in the tkgoodstuf