Tcl/Tk Extensions

Purpose: This is NOT intended to be an authoritative list extensions. Unfortunately, there is no one such list. The best I can offer is http://www.purl.org/NET/Tcl-FAQ/ , where I maintain a list myself, as well as pointers to lots of other such lists. The one thing we do NOT need in the Tcl community is yet another authority list.

Then, what IS the purpose of this page? I view this page as an opportunity for us to evolve a list of must have extensions. Extensions that one is very likely to look for soon after beginning to use Tcl or Tk.

An extension in Tcl and Tk is a group of files which add new functionality to one's Tcl environment. New commands are added, or current commands are enhanced. Besides extensions, there are what are called patches which modify existing code to either fix bugs, or enhance functionality.

Often, a Tcl extension is also known as a package (due in large part to the package command, used for indicating to the tcl interpreter that it should load in the appropriate shared library or script code that makes up the package.


  • Script based extensions
  1. BWidget is a script only Tk extension that many people recommend. It provides support for more than 20 new Tk widgets, such as progress bars, button boxes, notebooks, combo boxes, spin boxes, tabbed notebook, etc.
  • C code based extensions for general use
  1. incr Tcl/incr Tk/incr Widgets from http://sf.net/projects/incrtcl (formerly http://www.tcltk.com/itcl/ ) is one such extension for me. This provides an excellent framework for developing reusable code, an an Object Oriented fashion. incr Tcl (aka iTcl) is hopefully going to be an extension shipping with Tcl in the near future.
  2. Tktable, found at http://www.purl.org/net/hobbs/tcl/capp/ , provides Tk support for two dimensional tables.
  • Unix users
  1. TclX from http://tclx.sf.net/ is an extension providing a number of general capabilities, such as key lists, string scanning, etc. But Unix users will find it for its additional commands to access various Unix system calls.
  • Windows users
  1. tcom
  • Macintosh users
  1. MacGoodies
  • Other important extensions, oriented towards specific hardware or software platforms
  • Miscellaneous patches

Probably the most used patches are what are termed the Plus and Dash patches. These patches provide a wide variety of enhanced functionality for Tcl and Tk. The plus patch at http://purl.oclc.org/net/nijtmans/plus.html improves support for static and dynamic libraries, modifies the event handling of Tcl so that Tk can be dynamically loaded, adds to Tk the ability to perform what is known as 'elided text', applies fileevent handling patches to Windows Tcl, and more. The dash patch at http://purl.oclc.org/net/nijtmans/dash.html began as a set of patches to add dash outlines to Tk canvas. It now includes adding postscript support for canvas graphics under the X based Tk implementation, new canvas objects, new bind and event functionality, improved canvas performance, hooks for enhanced canvas add on extensions, objectified Tk, spline drawing, and Boolean tag searching.