Ethan Gold 3/5/98 DISTRIBUTE THIS SOFTWARE UNDER THE TERMS OF THE GNU PUBLIC LICENSE. NO WARRANTY IS EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK. THE SUITABILITY OF THIS SOFTWARE FOR ANY PURPOSE IS NOT GUARANTEED. A copy of the GPL can be found at http://www.gnu.org/ Please read this document and the accompanying INSTALL document before asking me questions. This will facilitate troubleshooting immensely. Description: ------------ Tkchooser(2) is an interpreted, modular, extensible network browsing utility for Xwindows designed after the Macintosh Chooser. Motivation: ----------- There is no decent network browser for unix that I'm aware of. MacOS and Windoze both have reasonable interfaces to their respective LAN protocols. Unix increasingly has to live alongside Windoze and MacOS PC's and access their resources - especially if you are living in Linuxland. So I decided to model tkchooser after the macintosh chooser and give it multiple protocol capabilities. The idea is that thru a modular interface both Appletalk, SMB, and other (IPX?, IP?) protocols can be supported by reloadable modules. Functionality is provided by plugins which implement specific types of network operations such as mounting shared volumes, printing to shared printers, etc. Additionally, this interface could be used to set defaults for other tools as well. The tie between the plugins and the network modules is somewhat arbitrary. Plugins can register themselves with multiple protocols. In fact, the protocols do not even need to be network modules. My Primary purpose was to make it easy to mount AFS volumes, print to appletalk laserprinters, and send appletalk "broadcast" messages to other mac users. There is an old version of broadcast written for CAP which I hope to rewrite for netatalk soon. The modular nature of tkchooser makes it very easy for you to build your own modules if you wish. If you are interested in working on some existing modules - particularly enscript or SMB modules - please contact me. Requirements: ------------- * Tcl/Tk, probably version 8.0 or newer is best. * Netatalk 1.4b2 or newer for appletalk browsing, printing functionality Theoretically an appletalk module could be written for CAP if someone felt the need. As long as the API is adhered to it should drop in cleanly. (optional if you don't want to browse appletalk) * afpfs package if you want to be able to mount appleshare volumes * Broadcast for Unix if you want to be able to use appletalk BC - I'm working on a netatalk version * Samba if you want to access windoze network stuff (READ the samba notes in the INSTALL document carefully if you intend to use this feature!) Usage and Behavior: ------------------- Everything should be runnable just by invoking the tkchooser2.tcl binary. The installation procedure makes a link to this file called "tkchooser" (defaults to /usr/local/bin/). The configuration file in /usr/local/lib/tkchooser/chooser.cfg (default) sets up some basic characteristics for the chooser. The chooser ALSO looks to the user's home directory for a directory called ".tkchooser" (default, but configurable) and will load the contained file called "chooser.cfg" if it exists. This directory is also used for plugins that need to save persistant options which are not needed by anything other than the chooser or other plugins. Follow the global chooser.cfg file's example when writing your own ~/.tkchooser/chooser.cfg. Everything in the global config except for the library directory can be overwritten simply by redeclaring it. In fact, the library directory can be overridden too, but it won't take affect until after the global config is read. Installation: ------------- Please read the INSTALL document that came with the distribution completely before sending me email. This will make troubleshooting much easier for both of us. Configuration: -------------- Options may be set in the $libdir/chooser.cfg file. They may be overridden by individual users in their $userconfdir/chooser.cfg file (typically $HOME/.tkchooser/chooser.cfg). These files are straight tcl which is sourced early on in the main browser's initialization sequence. Personal .tkchooser directories should follow the structure of the main $libdir, i.e.: ~/.tkchooser/ ~/.tkchooser/chooser.cfg ~/.tkchooser/plugins/ ~/.tkchooser/icons/ Configurable options in $libdir/chooser.cfg and $userconfdir/chooser.cfg: Individual protocol families may be turned on and off by setting the appropriate flag in the config file: e.g: set miscflag 1 set appletalk 0 Verbose debugging information may be turned on (default is off): set debug 1 The default protocol may be chosen (only the last one will count): set defaultprotocol appletalk set defaultprotocol smb User configuration directories may be specified (prolly a bad idea to change this): set userconfdir "$env(HOME)/.tkchooser" The File where printer modules may find a filter commandline: set printfilterfile "$userconfdir/printfilter" The command to use on the end of a pipe for print previewing. Note that building this command correctly can be a sticky business, especially as ghostview and gv both read badly from standard in. #set printpreviewer "gv -" set printpreviewer "cat >! /tmp/prev.tmp | gv /tmp/prev.tmp" Font preferences (not used everywhere) may be set: set propfont "baskerville" set fixedfont "courier" Credits: -------- Thanks to the KDE folks for their postscript icon which I've appropriated for the enscript plugin. Thanks to the intrepid people who help me get this thing running on machines other than my own.