aplsimple's home page

And as all choice and reasoning can be really calculated -- because there will some day be discovered the laws of our so-called free will -- so, joking apart, there may one day be something like a table constructed of them, so that we really shall choose in accordance with it. If, for instance, some day they calculate and prove to me that I made a long nose at someone because I could not help making a long nose at him and that I had to do it in that particular way, what freedom is left me, especially if I am a learned man and have taken my degree somewhere? Then I should be able to calculate my whole life for thirty years beforehand.

Fedor Dostoyevsky ("Notes from the Underground")


color picker

The native Tcl/Tk color picker (tk_chooseColor) is used in Unix platforms as they have no default color picker, while Windows and Mac OS have.

The proposed changes to tk_chooseColor are the following:

  • The resizing of window is locked (supposedly the resizing makes no sense, at least in the current version of tk_chooseColor).
  • The default sizes of Tcl/Tk color picker are changed a little for more usability.
  • The 'Move all' checkbox is added allowing to move all (R, G, B) selectors simultaneously.
  • The 'Tone moves' checkbox is added allowing to implement the toning feature for a current color.
  • The RGBCMY and their tones are added, in separate color boxes.
  • The -moveall (0 by defauls) and -tonemoves (1 by default) options are added.
  • The chooser is themed now. The themed choosers of font and color are shown beside on the above screenshot.
  • A stand-alone Tk color chooser is available (see its screenshot above). Invoked with: tclsh tkclr.tcl.

Further details:


This little thing provides multi-line replacements in text files. Also, it provides in-memory replacements, on a list of strings.

Although there are tons of similar utilities, maybe the mulster has its own goods.

It would be useful when you need:

  1. replace periodically some bunches of strings in some texts;
  2. modify periodically a snapshot of some software without its forking;
  3. share your little modifications with your colleagues, without resorting to those great GIT, MERCURIAL, FOSSIL etc.;
  4. customize files generated by document generators;
  5. prepare a Tcl source file to be processed by freeWrap;
  6. use multi-line replacement functions in your software.

Further details:


The doctest allows you to doctest Tcl scripts.

To say shortly, the doctests are special comments inserted directly into a Tcl code. The doctest blocks are closely related to the code of module and used for testing and documenting it. You run this doctest on them and get the results of testing (OK or FAILED). Just so simple.

This allows you to keep your code in a working state each time you modify it.

Further details:


The hl_tcl package is a syntax highlighter for Tcl/Tk code.

The hl_tcl can be applied to a Tk text widget or to a static html page.

The Tk text widget may be made read-only or editable. Also, the hl_tcl may take an argument, sort of command to watch the viewing / editing.

When applied to html pages, the hl_tcl highlights Tcl/Tk code snippets embedded between <code> </code> tags.

The hl_tcl has highlighted its own code in Reference.

Further details:


The baltip is a Tcl/Tk package providing tooltip and balloon facilities.

It's a Tcl/Tk tooltip widget inspired by:


The original code has been modified to make the tooltip:

  • be faded/destroyed after an interval defined by a caller
  • be enabled/disabled for all or specific widgets
  • be displayed at the screen's edges
  • be displayed under the host widget
  • be displayed as a stand-alone balloon message at given coordinates
  • be displayed with given opacity, font, paddings, relief, colors
  • have -image and -compound options to display images
  • have configure/cget etc. wrapped in Tcl ensemble for convenience

Further details:


The bartabs package provides Tcl/Tk tab bar widget.

The bartabs package provides Tcl/Tk widget containing tabs that are

  • scrollable
  • markable
  • moveable
  • closeable
  • disabled and enabled
  • static and changeable
  • selectable and multi-selectable
  • configureable
  • enhanceable with popup menu

Further details:


The aloupe is a Tcl/Tk small widget / utility allowing to view the screen through a loupe.

The aloupe allows also

  • to make screenshots of magnified images
  • to pick a color from the images

Further details:


The ale_themes is a batch of Tcl/Tk themes used in alited editor.

The batch contains a bit modified themes made by rdbende:
  • azure light and dark
  • forest light and dark
  • sun-valley light and dark

The modifications are mostly about:

  • focusing widgets (with Tab key)
  • colors of widgets
  • colors of menu
  • treeview's behavior
  • corners of widgets

Further details:


The playtkl is a Tcl/Tk package to make GUI testing scenarios and key macros

It is Tcl/Tk package:
  • to make a testing scenario for a Tk application
  • to run a testing scenario for a Tk application
  • to record a macro containing mouse / keyboard actions
  • to play a macro

Further details:


The transpops is a Tcl/Tk package to display popup messages. Fit for demos, though may be used otherwise.

The messages are read from a text file and after pressing a hotkey are shown one by one, in transparent mode.

The transpops package contains also drawscreen.tcl (sort of subpackage) that allows drawing on the screen.

Further details:


The apave package provides a sort of geometry management for Tcl/Tk.

The apave isn't designed to replace the existing Tk geometry managers (place, pack, grid). Rather the apave tries to simplify the window layout by using their best, by means of:

  • joining the power of grid and pack
  • uniting the creation of widgets with their layout (and mostly their configuration)
  • minimizing a coder's efforts at creating / modifying / removing widgets
  • setting a natural tab order of widgets
  • theming both ttk and non-ttk widgets
  • centralizing things like icons or popup menus
  • providing 'mega-attributes', right up to the user-defined ones
  • providing 'mega-widgets'

Further details:


The e_menu provides a menu system bound to an edit / file managing session.

A text editor / file manager with plugin or context facilities allows to use e_menu as "a plugin of plugins" that raises a whole environment of commands & menus around it.

By now e_menu is implemented for alited editor, TKE editor, Kate editor, Geany IDE, Wing Python IDE and PyCharm IDE. Though the usage of e_menu is mostly independent on an editor / IDE, a few demonstrative details for alited, TKE, Kate, Geany, Wing and PyCharm are described.

Also, e_menu can be used in file managers that provide scripting facilities.

Further details:


The alited is a lite editor for developing Tcl/Tk applications.

The main features of alited are:

  • structured code
  • easy access to the code
  • born for Tcl/Tk development only

Further details:


Trimming a Tcl source file off comments and whitespaces.

It's a CLI utility that trims Tcl source files off comments & whitespaces.

By this, you can get a working Tcl code stripped of needless stuff and, as a side effect, of some Tcl's freaks (the most notorious are “supposed comments” inside list and switch commands).

Also, the trimmed code:

  • performs a bit faster
  • needs less a disk volume
  • if necessary, impedes modifications

Further details:


The screenshooter is a Tcl/Tk small utility allowing to make screenshots.

It uses a grid window covering a target spot of the screen.

This is a bit modified code made by Johann Oberdorfer, see:
A Screenshot Widget implemented with TclOO

Further details:


The booksum allows to make summaries of Tcl code snippets cut from books.

You might want to save such snippets in a summary file, in order to review them afterwards for refreshing your memory ... or to test ... or to play ... or even to publish your own code samples.

Most certainly, you'd like to save the code snippets along with their output.

Further details:

plugins for TKE

I've made a batch of plugins for TKE editor. The editor and its plugins are all written in Tcl/Tk.


How to chisel at chiselapp.com

It's a little talk about Fossil SCM and ChiselApp.com.

The excellent Fossil SCM is so distinguished against the general background (most often for the better) that it is incomprehensible why this system is still underestimated in the IT community.

Many Fossil fans are looking for a place to apply their fossil skills and often find it at chiselapp.com - a hosting service that is good in almost all respects - where, however, you don’t find a word about “how to chisel at chiselapp.com”.

Further details:

Minimum Mercurial history of binary files

All of VCS including Mercurial SCM have a common problem with binary files of repository, namely:
If the files were being changed, their versions (even mistaken or stale) are all present in VCS history - nearly 'as is', with minimal packing if any.

In the course of time, this accumulation of binaries would involve the terrific size of remote repository and its local clones.

A method proposed below allows to minimize the binary overheads for a bitbucket site managed by Mercurial SCM.

Further details:


FVords is a language learning program. It's free of charge and designed mostly for Russians who learn English and, partially, vice versa.

An Englishman (believe it or not) found it very good for learning Russian.

Other languages are also present in FVords, but not so good in their contents and learning modes. The program interface can be chosen between English, Russian and Ukrainian.

The program runs with MS Windows and, with some restrictions, can be used under Linux's Wine. It is 32-bit and need Windows-1251 charset coding.

FVords installer is available through this link:

You might get an antivirus warning - be not afraid, it's rather standard warning for downloaded '.exe' files.

For details, see a demo sort of documentation available in "Help" menu of FVords.


APLinkee is an archivist and a launcher of links to various resources. It can be also used as a small organizer that keeps scheduled affairs. The program is freeware.

APLinkee provides a standard set of actions to do with a tree of records, i.e. adding records and groups, changing, deleting, mouse moving etc.

Other features:

  • calling not only Internet pages, but nearly all you can run in MS Windows or Linux;
  • calling a group of links;
  • calling links at MS Windows or APLinkee startup;
  • viewing a list of last runs and re-running them;
  • searching links in the tree, including word-by-word searching of key words;
  • executing a batch commands that are stored in APLinkee database;
  • calling links for assigned time with subsequent break ('curriculum' for weekdays);
  • reminding of events in date intervals;
  • minimizing to the tray;
  • saving and restoring the program options, window sizes, last link's selection etc.;
  • three languages of interface (English, Русский, Українська);
  • using many files of links independent on re-installations of OS (presuming you backup the files more often than installing OS);
  • fine work under Linux's Wine
  • it is 32-bit and need Windows-1251 charset coding.

The APLinkee installer is available through this link: You might get an antivirus warning - be not afraid, it's rather standard warning for downloaded '.exe' files.

For details, click  ?  in APLinkee's menubar.

Eng-Rus dictionary

It's an English-Russian and Russian-English dictionary.


  • ~87000 words in English-Russian part
  • ~45000 words in Russian-English part
  • runs under MS Windows and Linux's Wine
  • is 32-bit and need Windows-1251 charset coding

Its installer is available through this link: You might get an antivirus warning - be not afraid, it's rather standard warning for downloaded '.exe' files.

For details, see fvdict.txt in the installation directory.