Tkoutline discussion
Not logged in

Feel free to add any discussion below. If you have a lot to say that might result in much discussion, then add a link to a new page here and place your comments in the new page. Alternatively, you can join the mailing list 1 and conduct the discussion there.

2008/02/07 Backup in subfolder instead of folder msel: Is it possible to change the backup mode of tkoutline. Now every time the file is copied in a file named with the ending ~. Is it possible to create a backup instead in a subfolder.

Yes. See Change backup file functionality.

2008/01/20 Mac OS X problem

Putting together two entries on this page I have traced the issue that Mac OS X has with the v.0.93 StarPack. Like Windows, but unlike X, the Aqua tk implementation uses <Control-`> instead of <Control-grave> at line 573 of lib/outlinewidget/treeops.tcl I'm not sure how to amend the code to reflect this as the platform that the switch statement uses to decide which key identifier to use is 'unix' on Mac OS which is presumably the same as unix platforms running X.

Brian Theado 2008/01/20: The latest unreleased code has the Mac OS X fix:

2007/05/29 - 2007/08/18 HTML export requests

2007/07/17 Edit Menu

msel: It is possible to add a "right click" menu which everybody can adapt for his purpose (like in notebook wiki)? So one can add commands for wikify words etc.

2007/05/29 Expanding outline links

msel: Can you adapt the skript which is described in here to the last development version? Thank you.

2007/04/23 Exporting top level without bullets etc

2007-03-06 allowTclSourceDataFiles msel: What is the meaning of the parameter allowTclSourceDataFiles? What, if I set the value to 1?

Brian Theado - That is an unused relic. The first versions of tkoutline stored outlines as a runnable Tcl script and loaded them using a safe interpreter. Later and current versions store the outline as a Tcl list. There was an intermediate time where I couldn't get the loading of the old outline format to work in the safe interpreter. Therefore I added this parameter to allow loading of the old outline format only if you knew what you were doing. Since then I restored the safe interpreter functionality and forgot to remove the parameter.

2007-02-21 File extension

msel: Is it possible to define a default file extension for Tkoutline files? It would be helpful, then you can define a default action for those files.

2007-02-24 Brian Theado: It is possible to change the code to do this and I'll look into it. An old fork of tkoutline at 2 has this functionality.

2006-01-15 Word count

2006-12-30 Tkoutline Mac OS X problems

2006-09-22 Tkoutine and categories

2006-09-18 Tkoutline and checklists

2006-09-15 Importing browser bookmarks into tkoutline

2006-09-12 msel: I want to add images in tkoutline which are shown if you export the file to html. Example: TKOutline <img src="test.jpg" alt="Test"> When exporting it to html the source code looks like this: &lt;img src="test.jpg" alt="Test"&gt; The signs < and > are change to &lt; and &gt;, so that the link to the picture doesn't work in the html file. Is it possible to change this behaviour (in the source code or in the startup script?) so that the signs < and > are not replaced?

2006-09-12 Brian Theado: Changing your startup script to override the function ::treeconvert::htmlEncode should work. Currently it is defined as follows

 proc ::treeconvert::htmlEncode string {return string map {& &amp; < &lt; > &gt;} $string}

You could make it a null function so nothing gets escaped:

 proc ::treeconvert::htmlEncode string {}

This could result in malformed html if there are cases where the <> signs really do need to be escaped. In that case you could try the following which will do the normal escaping unless you put a percent sign next to it:

 proc ::treeconvert::htmlEncode string {return string map {<% < %> > & &amp; < &lt; > &gt;} $string}

So you would write <%img src="test.jpg" alt="Test"%>. I guess if you only rarely want escaping it would be better to use the null function and manually replace your < and > signs that you want escaped with &lt; and &gt;.

2006-07-12 Recruiting tkoutline developers

2006-07-09 Roger Johansson: Trying out version 0.94. I have opened 10 pages now and want to close most of them. Must I go into the file menu, go down to "Close", every time I want to close an open page? Why is there no Close button in the tool bar?

When I click on an internal link I want to jump to that location, that means close the old location and open the new location. But the program keeps the old location open and opens a new page instead, which is why I have a lot of open pages after a while, which are difficult to close because there is no close button in the toolbal, or on the tab.

I would like TKoutline to allow me to jump back and forth, sideways and backways, up and down, flying free as a bird between locations via hyperlinks, but now I feel like a bird that leaves a long line of dead birds behind me every step I make, so I have to go back and bury long lines of dead birds left in my tracks all the time.

2006-07-10 Brian Theado: To some, those dead birds are like the Phoenix, dead in the ashes, ready to be born again into usefulness. Having more web browser like navigation has been on the list and nothing has been done towards it. I haven't been spending as much time on tkoutline in the past 1-2 years and it is starting to smolder in the ashes.

If it helps, the 'ctrl-w' keystroke will close the current tab. 'Ctrl-PageUp' and 'Ctrl-PageDown' will go to the previous and next outlines respectively.

Adding a close button to the toolbar is pretty trivial. Changing a link clink to replace the current outline may not be too bad. Keeping a history for forward and backward navigation might be a bit more work.

2006-07-04 Jo�o Brito: Dear Brian - I think you made a great program, better than most outliners I tried - and I tried lots of them, It's perfect for planning and brainstorming. But as I am not a programmer, and I'd like to know how coould I open many outlines at the same time in Windows XP. Is it possible to make a shortcut for that? I tried to make one and it didn't work.

Brian Theado - Only the latest development version contains support for multiple filenames on the command line (version 0.93 and earlier does not have this). You can download the development version from (or if you use the starkit version). With this you should be able to put the multiple outline names on the command line in the shortcut. Let me know if this works for you.

Hi Brian! - It worked! But I was doing an error: I was putting outline's filenames inside the quotes in the command line - they must be outside (duh!). But version 0.93 only accepts the name of one outline at a time, and development version accepts many. Great. I believe "leigos" (newcomers) like me would really appreciate an option for opening many outlines at the startup, as well as a list of "most recently opened files". Thanks a lot. And congratulations, again.

2006-03-20 Jon P.: Is there any way to increase the amount of vertical space that is displayed (i) before each node; (ii) within the logical lines of each node when the lines wrap; and (iii) after each node? For example, I would like to use the equivalent of 1.5 line spacing within a given node (that is, between the logical lines of a node that have wrapped) and a full logical "blank line" between each paragraph. (I know that there is a way to insert non-bulleted blank lines into an outline but I am interested in an approach that does not involve inserting blank lines into the outline).

Jon P.: From reviewing the other entries on the discussion site, I was able to do what I wanted (on an outline-by-outline basis) by entering the following commands at a console (after pressing F2): "text configure -spacing2 3p" and "text configure -spacing3 9p". Is there a way to make such changes automatic (that is, without having to manually enter them at the console)?

2006-03-22 Brian Theado: Sorry for the delayed response. Nice tip on the spacing. Here's how to do it (untested):

2006-03-01 - discussion moved to Tkoutline and non-ascii characters

2006-01-25,Komgart Prakobphol: I am a sidekicks user, a single pane outliner for a foxpro program coding. I could not find any substitute editor. A week ago I try Tkoutline,it is great. I can easily import any *.prg file ( file import ascii) into tkoutline after edited then (file export ascii) exported to ascii file.Problem is open the ascii file with notepad every line start with '*' character which is not accepatble by foxpro. How can I have a saved file with text only.

Brian Theado - new page: Plain text export

2005-09-05, Svenn Bjerkem: I find myself opening the same 6 to 10 tkoutline pages every time I restart it. This can be hardcoded in the startup file, but it could also be solved by some kind of session management, which is what my suggestion is all about: The possibility to group different outlines in a session and then switch between sessions and have the respective outlines opened depending on which session is currently active.

Brian Theado - new page: Session management functionality

2005-08-26 SEH : I would prefer that tkoutline NOT create the backup file with the tilde at the end of the name when saving files. Is there an easy way to turn that function off?

Brian Theado - new page: Disable backup file functionality

2005-08-26, Svenn Bjerkem: During work I discover that a sequence of 4 dashes, asterisks, underscores or slashes and more gets replaced with their respective formatting. This may be a nice way to create fat dividing lines or fat stars etc. in an outline, but I was trying to make an ascii graphic where it is definitively disturbing. I have not found a workaround around this problem. There should be some kind of escape character at the beginning of a line in order to tell that the rest of the line should not have any wiki formatting. This character itself could be visible.

Brian Theado - I'll have to think about this one. This might be pretty easy. Each formatting syntax has a callback in which the window and start and end indices are passed in. Each of the callbacks could check the first character of the line and return early if it is the escape character.

As a workaround, you can disable style markup entirely in the preferences file. Edit->Edit Preferences, then change the following line:

 *wikimarkup: wikilinks urls style


 *wikimarkup: wikilinks urls

2005-08-26, Svenn Bjerkem: I am running tkoutline 0.93 on unix and wonder if there is a way to send a tkd file to an already existing tkoutline process from the command line. I use midnight commander and have included an entry in the extension file for tkd, the problem is just that I have a new instance of tkoutline every time I open a tkd file. Maybe this kind of feature must be built into tkoutline and then use client / server technology like nedit and gnuserver do.

Brian Theado - new page: Send commands from an external process

24/12/2004 Roman Oops!

Your outliner is wonderful. While it obviously lacks a few features, I find the easy raising/lowering, and promotion/demotion of nodes most useful, similar to MaxThink (old DOS thought processor). After all, what's important in an outliner is the ability to organize (think) at the speed of... thought! The easy ability to link is another great "plus."

Unfortunately, I run Windows 98 and so was using the standalone Windows executable. Because the configuration file appeared to offer opportunity to change the forground and background colors, I tinkered with this setting, with the following results:

   1 unknown color name "White"
   2 (database entry for "-foreground" in widget".mbar")
   3 invoked from within

Anyhow, I fouled things up running Tkoutline from a directoryo on one hard drive. So I tried running the originally downloaded file from my download directory on another drive. Same problem! Next, I deleted both instances of Tkoutline and downloaded a fresh file from your website. Same problem! Assiming Tkoutline writes somewhere to Windows Registry, I looked around. I'm not an expert there, but I could find nothing and no clue as to where such a setting or entry might be located.

Now what? Thanks for the great program, by the way; I hope I can get it working here again.

25Dec2004 - Brian Theado - Thanks for all the feedback on what you do like! And thanks for letting me know about your problem and I apologize for it. That's a pretty bad one and I definitely need to add better error handling for the preferences file. The language that tkoutline is written in has a notion of a home directory on all platforms and that is where the plain-text preferences file is stored. The file is stored as ~/.tkoutline.def and if you can delete that file (or edit it to remove the error), then tkoutline will run again. I don't know what the home directory is for Win98 and if you were able to run tkoutline, then it would be easy for me to tell you how to find the ~/.tkoutline.def file. Ugh! I think the easiest thing is for you to download the single file tclkit interpreter from and run it. You should see two windows and one of them should be a Console window. In the console window type:

 file rename ~/.tkoutline.def ~/tkoutline-broken.def

Now you should be able to run tkoutline. If you want to take a look at your old preferences file, then type the following in the Console window:

 exec notepad glob ~/tkoutline-broken.def &

If you want to find the real path to that file, then type:

 file normalize ~/tkoutline-broken.def

and you will be shown the full pathname that can be used in another program like Windows Explorer.

If you need help debugging your preferences file, then let me know. My first thought is that the color is case sensitive and that "white" should be used instead of "White". However, on my system (windows XP) both work. If you send me more details on what your prefences file looks like, I may see a clue as to what is wrong or at least be able to tell you some things to try.

03/11/2004 Ulrich Is it possible to move within the node text using cursor keys? By display line rather than by physical line? Otherwise I am quite impressed with Tkoutline. Imported 220k from indented text and everything works without problem.

Brian Theado - With a little work it is possible to do what you want. Tkoutline is written in Tcl/Tk. The windows standalone executable is shipped with version 8.4. By default in version 8.5 (which is in early alpha), the up/down cursor keys in a text widget scroll one display line at a time instead of one physical line at a time. That sounds like the functionality you are looking for.

Let me know what platform you are on (Windows, Unix, Mac OS X) and which tkoutline file you downloaded and I should be able to help you get tkoutline up and running using Tcl/Tk 8.5.

04/11/2004 Ulrich This is exactly what I am looking for. Running standalone tkoutline-0.93.exe on Win2000 at the moment.

Brian Theado - I have made a single file executable version of Tcl/Tk 8.5 alpha available at 3. Download that file and download tkoutline-0.93.kit. Run it from the DOS prompt by typing:

 tclkit-8.5.exe tkoutline-0.93.kit

Ulrich - It works! Thank you very much for the extra effort. This makes a big difference in usability for me. 11/11/2004 Later comment: Cursor movement by display line in Tcl/Tk 8.5 alpha is still quite slow and jerky once the files get bigger. Hopefully to be speeded up. But it is functional. And I like Tkoutline a lot. P.S.: I edited my earlier posts in this thread to save space. Hope that's okay.

Brian Theado - no problem with the editing and thanks for the feedback on the slowness. I haven't started using 8.5 and maybe I should. My largest outline files are only about 150K and I usually try to break them down and interlink them so they don't get nearly that big.

Ulrich - It is slow only when scrolling with the cursor by display line over more than 20 lines or so. Within one screen it is fine. I have not noticed any other problem or difference to 8.4 so far. I am considering breaking down my outlines as you suggest, and Subtree Extract and Link is great for that. But I need to be able to print my full text to give to people for feedback, and exporting the master outline to HTML does not include the content of the linked outlines. Meaning I would need to copy and paste several HTML files together manually. Or am I missing something here?

Brian Theado - The functionality to do the reverse of the Extract and link doesn't exist and I think it is a good idea to have it. When I get a chance (hopefully in the next few days) I will post a script that will allow all nodes that contain only a link as its text and has no children to be replaced by the contents of the link. That way you can make a copy of the master outline and end up with an expanded outline from which html can be generated.

16/11/2004 Ulrich K�stner - Such a script would ge great. Looking forward to it. I am not sure how you can deal with nested outlines in a web of interlinks, as some people may have. Ask for link depth? For me just going one link deep as default would be enough.

While you are at it: I have been studying the Wiki discussions on columns and filtering. Great ideas, but a lot of work I suppose. Seems to me that the above script could be easily expanded to do some simple filtering. Suppose I would mark some of my nodes by putting in a user-specified special character on the start of the first line, like "�This is a marked node". And then your script would allow only those nodes to show in the outline and be exported, copied, or whatever. Is this doable? It would amount to what in MORE is called Mark-and-Gather and not many outliners have it. Application example: Useful for work on texts with many revisions. I could leave in all the old and still potentially useful bits in my working copy and extract only the current versions of each paragraph to a new, clean outline. A bit like Leo, but much easier to handle for the non-programmer.

21Nov2004 Brian Theado - Here's the code I promised for Expanding outline links. Mark and Gather - I don't have anything to say on that just yet.

24 Nov 2004 Ulrich K�stner Thanks for the Expanding links code. Works without problems.

30/09/2004 carlos I've got a problem running Tkoutline on debian, clicking Edit Preferences shows error ::Topdir::Starkit:: no such variable. Anybody has a clue?

Brian Theado - That is a bug with the non-starkit version. Thanks for pointing it out. This will be fixed in the next release. Until then, here is a workaround:

same day - sorry it doesn't :( full error message follows:

 can't read "::starkit::topdir": no such variable
 can't read "::starkit::topdir": no such variable
    while executing
 "file join $::starkit::topdir .tkoutline.def"
    (procedure "::tkoutline::editPreferences" line 3)
    invoked from within
    (command bound to event)

Brian Theado - From the console, what does the command "file exists ~/.tkoutline.def" return? (Don't type the quotes). If the file copy command (file copy $::tkoutline::topdir/.tkoutline.def ~) worked, then it should return 1. If it returns 0, then something went wrong with the file copy.

In the "Edit Preferences" code it is checking for the existence of a preferences file in your home directory. If it doesn't exist, then it is trying to copy the default preferences file to your home directory and then it will edit that file. The code that copies the default file is the code with the bug and it shouldn't get executed when the ~/.tkoutline.def file exists. Since you are in Unix and you are using the plain source version of tkoutline, maybe it will be easier to copy the preferences file from a shell. From within the tkoutline directory, "cp .tkoutline.defs ~" should do the trick.

carlos - Thanks Brian for explaining it, I've got it working copying it in shell. I must say that I really appreciate this program cause its something I've been looking for since I moved from Palm OS (I was using Progect) to iPAQ running Linux Familiar (kind of Debian ARM). Remaining discussion moved to Running tkoutline on a PDA.

27/09/2004 Svenn Bjerkem - Running Tkoutline without starkit On the unix machines at work, tcl/tk 8.4 is available but no starkit. I tried the third option on the download page, the source, but tkoutline still wants to access starkit. Is this a bug or is it a feature? I would like to run tkoutline on a machine with vanilla tcl/tk, tcllib and nothing more fancy.

Brian Theado - same day - Try executing bin/tkoutline.tcl instead of main.tcl. I just updated the instructions at Download and installation to reflect what I mean. Let me know if it works for you.

30/09/2004 Svenn Bjerkem Following Download and install leads to success. I only had to be careful about which wish I use. On my Solaris there is a /usr/local/bin/wish that is not usable so I had to go looking for a wish8.4 which I found in a different place.

03/09/2004 Brian Theado - Tkoutline and non-ascii characters

03/09/2004 Iain Cheyne Problem launching tkoutline as an external editor from Xnews newsreader

01/09/2004 Auriel Manolson

I would like to say I really like tkoutline. I have been playing around with it a bit today, and am in general impressed, as it is very light and fast, and for several years I have been using old Claris Works for my outlines, and more often have been simply writing plain old text files (using ultaedit) . .. for lack of a light weight simple outline application. I was even considering developing something of my own... but tkoutline outline shows a lot of potential for being my outliner of choice

I may be interested in getting involved in helping develope it. I do not know the Tk language, but have programmed a lot in perl (included object oriented stuff) and a bit in C++, and a got fairly deep into javascript once, so I imagine I could pick it up pretty easily... .. I have left some (redundant - sorry) feature requests on the sf project page, so you can contact me through that. or email me at FirstName @ LastName .NET

BTW: why are we not using the tools for discussion, and feature requests etc, I mean, this Wiki stuff is pretty neat and all, but sf provided great tools for managing features, and discussion forums.

Any how, *tkOutline is off to an awsome start!!* br:am.

Brian Theado - same day - I'm glad you like tkoutline and I welcome development help. I learned Tcl 5 years ago from a combination of the man pages and Tcltutor (4 , installation free download from 5). The Tcler's wiki is also a gold-mine of information (

RE: tools for discussion. I prefer the wiki and the mailing list 6 for discussion. I have never needed the feature request functionality before and I will take a look at the non-redundant entries you have made. BTW, do you know if there is a way to monitor for new additions to feature requests and bug reports? I just now discovered that a bug report had been entered back in January. Since I only monitor the wiki for activity, I never saw that and if you hadn't let me know about the feature requests you entered, I would not have seen them for a long time.

24/08/2004 Roger

Autoimport-export of files based on extension discussion - moved from this page

This discussion leads to command line switches also. Are there any command line switches available already? For example if I could start tkoutliner with switches and file names, like "tkoutline-093.exe -i myfile.txt" and that would result in starting the program and importing this txt file, instead of trying to open it, which does not work.

Brian Theado - there currently aren't any command-line switches

To be more concrete I would like to save outlines as html files, maybe using a special extension like tkml, and when I click on such a file tkoutliner would start and open (actually importing) this file.

Discussions about searching outline titles, searching inside of outlines, tkoutline as a sticky notes application all moved from this page.

As you can see I am not yet sure exactly what I want to use tkoutliner for, or how, but I am very satisfied that it exists and may be developed further. I think it is useful both as a simple html editor and as a text outliner already.

Roger J again:

Another small problem is that to close one outline we need to use the File menu and choose Close. It would be more convenient if there was a Close button beside the New, Open and Save Icons in the toolbar. (after clicking on a number of links in one outline there are a number of open outlines, and it is a bit awkward to use the file menu to close each one of them)

When I click on a link in one outline a new outline,a new tab, is opened and the old one is still open. Is there a way to create links which jumps to another outline, in the same tab, instead of opening a new one, so only the new one is opened. It would be useful to have backward and forward buttons in the toolbar, just like in a web browser, for going back to previous location, inside the same tab. (there are many similarities with web browsers here, because of the hyperlinking, so we need similar capabilities for navigation, like a choice to open a link in a new tab or jumping to it in the same tab)

Brian Theado - 27Aug04

Reply by Roger J.

Thanks for the plans for a Close button and keyboard shortcut, and better navigation capabilities like web browser, that will make it a lot easier to create documentation, help files, etc where the user can jump back and forth between section through hyperlinks.

19/08/2004 Iain Cheyne

I just wanted to say that this program is very nice - thanks! I have not found anything like it before and am very impressed. I have tried Treepad and Keynote etc, but I much prefer this. What is the Meta keyboard shortcut in Windows? I have tried all combinations of CTRL-ALT-DEL, but can't make it work. The Winkey does not seem to do it either. An Undo would be great too.

There is some discussion about Tkoutline here:

Brian Theado - same day - Thanks for the kind words and for the pointer to the alt.comp.freeware discussion. The question about the Meta-key is a good one. It turns out that I don't know. I recommend changing any with Meta to something else in your preferences (Edit->Edit Preferences). If you come up with some good replacements, then let me know I can use these as the defaults. Which keybindings were you looking at specifically? See undo and redo functionality for information about my initial undo implementation.

01/09/2004 Iain Cheyne

Thanks for the reply. I'll change the keybindings appropriately. It would be nice if WinKey and function keys could be used, but it's probably more bother to implement than it is worth. It might be best to delete the Meta key bindings for the next release and comment in the fact that the functions have not been assigned key bindings yet. The only key binding I *really* wanted was *closeKey: <Control-w>, as there is no toolbar icon that closes outlines, without exiting.

Brian Theado - same day - The WinKey and function keys can be used (see 7 for details). Preferences file example:

 ! Either left or right WinKey followed by 'd' will demote, or hit F6 function key
 *demoteKey: <Win_L><d> <Win_R><d> <F6>

I agree about the close key. <Control-w> is exactly what I was going to choose as the default. I am also going to add <Control-t> as a default binding for creating a new outline (I frequently use these same keystrokes for similar functionality in the Firefox browser).

02/09/2004 Iain Cheyne

Thanks for the tips about WinKey and function keys. I like Firefox too, so <Control-t> would suit me.

12-May-04 Svenn Are Bjerkem - Magic buttons

I find the magic buttons extremely useful, and wonder if it is possible to add a magic button menu in the menuline or attach a magic button script to the toolbar. Reason is that I would like to separate my data from the magic button script. I want to use my script on different node hierarchies.

Brian Theado - If you don't mind storing your data in a separate outline, then you can do it without any tkoutline changes. Just make a call to ::tkoutline::sourceOutline in each node hierarchy where you want to source your shared code. Does that meet your needs?

Svenn Bjerkem - Before I can really answer I need to get the tree walk to work. With basis in the sort and scramble examples in tkoutline I have a top sibling to my tree-of-information:

 # helper functions
    proc traverseTree {tree node} {
        $tree walk $node -order pre -type dfs -command list treeCallback %t %n %a
    proc treeCallback {tree node action} {
        puts "$tree $node $action"
 console show
 set topNode lindex [tree children [tree parent [getnode current]] end]
 traverseTree treecmd $topNode

Problem is that all I get in the console window is

 %t %n %a
 %t %n %a

etc. In a tk-console alone I got the code to work properly, maybe there is some magic in the way tkoutline expand the % parameters?

Brian Theado - The newest version of tkoutline uses the latest struct package version 2.0. In that version the API for tree has changed. See for the latest API and for the changes. Your tk-console alone must be getting an older version of the package. With 2.0, your walk command should look like:

 $tree walk $node -order pre -type dfs {action node} {treeCallback $tree $action $node}

For more tree walk examples see

05-May-04 Svenn Are Bjerkem - User Manual

In About Tkoutline I notice that there are some nodes where the bullet is missing. I searched the User Manual in order to find how to get this effect, but I could not find anything. A cut-and-paste from one document to another, gave me the bullets back.

For a larger chunk of text containing linefeed the bullets in front are disturbing so I was really happy to see this functionality, but I can't figure out how to use it...

Brian Theado - Control-b will toggle bullets on an off. Sorry I left that out of the documentation. The bullet toggle is not preserved across cutting and pasting as you already noticed.

Headline vs body text discussion moved from this page 16Dec03.

18-Aug-03 Laurent Duperval - Color coding

While working on one of my documents (a long one) I noticed that periodically I would mess up some of my outlines because I wasn't indenting enough or I was doing too much. Do you have plans for adding color coding to different levels? That way, it's much easier to have immediate visual feedback

Brian Theado - Per-level configuration is on the todo list (see Future Plans). You can easily do this right now by pasting something like the following code into the console (Hit F2 to bring up the console):

 foreach {level color} {1 black 2 {dark blue} 3 {dark green} 4 purple} {
    text tag configure level$level -foreground $color

The drawback of this is you have to do it for every outline, every time you open the outline. So the work that needs to be done is provide a way to persist the per-level configuration and provide a GUI for the user to choose the settings. I don't know when I'll be getting around to this.

18-Aug-03 Laurent Duperval

Again! Is there a way to expand the current node and subnodes only? For example, I'm writing a summary of a book and I want to show the current chapter only. So I use Ctrl-whatever to show only the chapter titles then I have to go to a specific node and click on it to expand. There doesn't seem to be a shortcut for it. Am I just not looking correctly?

Brian Theado - Ctrl-0 through Ctrl-9 keys set the global expansion level. Alt-0 through Alt-9 keys set the expansion level relative to the node currently containing the cursor. So if you take turns hitting Alt-0 and Alt-9 the affect will be expanding and collapsing the current node and subnodes. There is also Ctrl-` which is the same as Alt-9 but would also work if there are more than 9 levels. In the unreleased version of code available in CVS, the keys Alt-+ and Alt-- incrementally expand and collapse. Does that help?

Laurent Duperval - Yes, it does, thanks.

15-Aug-03 Laurent Duperval - Another idea or two for HTML export:

Then again, maybe it might be better to apply a stylesheet or something to the XML export. I don't know, I'm not an XML expert.

18-Aug-03 Brian Theado - I will likely add some functionality to make things like this fairly easy to do. In the short run, using this type of functionality will involve executing some commands from the tkoutline console (F2). It won't likely have a GUI interface for quite a while.

An XSL transformation to acheive the above would be much more concise than the resulting Tcl script (using the tree walk command). XSL/XPath is very powerful when it comes to querying/transforming tree structures. It would be nice to have some equally powerful querying/transformation functionality available for Tcl trees. I might take a stab at it if I get any bright ideas on what it should look like.

Same Day Laurent Duperval - I also had a thought that the mappings should be done on a perdocumetn basis so the info would have to travel with the document. That makes things more complicated.

20-Aug-03 Laurent Duperval - Here is a quick hack for this. It shows one way of doing it. The maxHeader is hard-coded here, but it could conceivable be an option for the document, that is carried along with the outline. I haven't looked at how this could be done elegantly.

Brian Theado - Moved Laurent's code to Map levels to html headings

11-Jul-03 Laurent Duperval - Hi. I was looking for a simple outliner and I think I may have found it, but I'm but sure yet. Here are a couple of things I'm looking for:

Same day Brian Theado

  1. Html tree with bars - If you can find some example html on the web of a tree with bars, then it should be pretty easy. Translation between various tree formats is not hard. Post a link to an example here and I'd be willing to tackle it.
  2. Html frame - Same as before. If you provide some specifics on what the html output should look like, then I'd take a look at this. It might even make sense to just write an XSL transformation that converts from OPML to the html. That way you can use the same transformation with any outliner that exports to opml
  3. Importing OPML files into tkoutline

30-Apr-03 Bryan Ogawa - Hi. I'm very happy with tkoutline. Here are a few success reports.

I'd like to report success starting up tkoutline on Mac OS X 10.1 using the Aqua TCL/TK Batteries Included distro from .

I've been able to run tkoutline on Linux and FreeBSD but it required a one-line patch. Apparently, all X versions of TK don't like ` as a key-name. So, on line 573 of lib/outlinewidget/treeops.tcl the line

    bind $win <Control-Key-`> "namespace current::hideChildrenBelowLevel \$outline tree depth \[$outline getnode insert] $tree"

should become

    bind $win <Control-Key-grave> "namespace current::hideChildrenBelowLevel \$outline tree depth \[$outline getnode insert] $tree"

and after that it seems to work.

Features I'd like to see include printing (i don't know how hard it would be under windows but is doable under Unix), a keybinding to toggle expand of the current bullet versus just hide for the current Control-`, the ability to import non-native formats (especially OPML / XML) so that it would be easier to trade documents with others, and the ability to do round-trip upload/download via something like webdav or something.

thanks for making such a promising and useful program!

Same day - Brian Theado - Thanks for the error report and the report of success. I actually have the error fixed in CVS, but I neglected to release it. Since it is such a show stopper, I will release it soon.

16-Apr-03 Telmo Amaral ( - Hello. This looks like promising cross-platform work. Just a note to say I use Ecco and find the columns and filter functionality very useful. When developing an application, I use two filtered views of my tree: To Do and Done; when an item gets marked as Done, it vanishes from the To Do's and gets "archived" in the Done's; this keeps the To Do view clean and comfortable. I also use a User Documentation filtered view, to display items marked as UserDoc; most importantly, I can also have items marked as Bug (describing unsolved bugs) conveniently appearing both on To Do and on User Documentation; needless to say, when such a Bug item gets marked as Done, it vanishes from both views. Cheers.

17-Apr-03 Brian Theado - Thanks for the comments. I took the liberty of copying them to columns and filter functionality. I have been toying around with Ecco recently. See Tkoutline and Ecco.

31-Mar-03 Michael Jennings - Readers should note that the web page Related links is so humble that it may be misleading. The other outliners mentioned are not nearly as nice as Tk Outline, if you want a single-pane outliner.

TreePad has a quirky interface. For example, to edit an entry, it is necessary to place the cursor in the entry and press F2. Tk Outline is much easier. Merely place the cursor in the entry and start typing. The Enterprise edition of TreePad gave error messages. TreePad is not open source. TreePad is a double-pane outliner.

Leo is not a simple outliner, and is complicated to learn how to operate.

Java Outline Editor has a menu choice for setting the font, but it doesn't honor the setting for all documents. The user manual presents itself in very tiny type, and there is no explanation anywhere of simple actions like how to make a child entry. JOE suffers from the non-standard primitive GUI interface that cripples Java.

31-Mar-03 Brian Theado - RE: TreePad. The body pane for the free version of treepad I used for a short while could be hidden making it more like a single-pane outliner. Separate modes between editing and navigating was a big drawback. The most important features for me in writing tkoutline were: single-pane, cross-platform, and modeless editing. The ability to easily hyperlink outlines together has since become an indispensible feature to me.

31-Mar-03 Michael Jennings - Thanks, Brian, for the instructions about how to change the font and font size. However, the instructions are far easier than they initially seem to be. Here they are, re-written:

Font Change How To - instructions moved to Change tkoutline fonts

Thanks for the clearer instructions -- Brian

28-Mar-03 Michael Jennings - Using v 0.92. on Win XP Pro. Works Great! I need a larger font for use with my 1600 x 1200 monitor, and it is not obvious how to 1) Choose the font, and 2) Choose a larger size.

28-Mar-03 Brian Theado - Changing the font can be done with a little work. It involves editing a text configuration file. Here's the procedure step-by-step.

  1. Hit <F2> to open the console window
  2. Type file copy $starkit::topdir/.tkoutline.def ~/.tkoutline.def
  3. Type exec notepad file normalize ~/.tkoutline.def &
  4. Now edit the configuration file(*) by setting the *Text.font setting to whatever font you want.
  5. Save the file and restart tkoutline(**)--it should read the new options

* Any line in the configuration file that starts with a '!' is commented out and has no affect. The commented out lines serve as examples. Just find a *Text.font example line and remove the comment. Then change the font to something like "Times New Roman" 24.

** If you'd rather try several setting without restarting tkoutline, then you can just type option readfile ~/.tkoutline.def. Then any new outline you open will get the adjusted font.

Obviously, this could be a lot friendlier. Ideally there would be a GUI interface to the options. That's not likely to happen anytime soon, however, it should be a bit easier and better documented. Thanks for the feedback.

06-Mar-03 Marty Backe - Using 0.91 on WinNT, I cannot export any user created outlines to HTML. I get the following error:

 invalid key "bulletType" for node "root"
 invalid key "bulletType" for node "root"
     while executing
 "error "invalid key \"$key\" for node \"$node\"""
     (procedure "::struct::tree::_set" line 33)
     invoked from within
 "::struct::tree::_set tree2 root -key bulletType"
     ("eval" body line 1)
     invoked from within
 "eval list ::struct::tree::_$cmd $name $args"
     (procedure "::struct::tree::TreeProc" line 14)
     invoked from within
 "tree2 set root -key bulletType"
     ("uplevel" body line 1)
     invoked from within
 "uplevel $tree $args"
     (procedure "outlinewidget::updateTreeDisplay" line 121)
     invoked from within
 "$tree set root -key bulletType"
     (procedure "treeToHtml" line 4)
     invoked from within
 "treeTo$format $tree"
     (procedure "export" line 2)
     invoked from within
 "export $tree $fileName $format"
     (procedure "exportOutline" line 5)
     invoked from within
 "exportOutline .nb.ftree2.o.t .nb.ftree2.o.tree Html"
     (command bound to event)

07-Mar-03 Brian Theado - Thanks for reporting this. I will get this fixed. For a temporary workaround, you can do the following:

If you'd rather have numbering then replace "bullet" with "number".

06-Mar-03 David S. Cargo - I downloaded version 0.91 tkoutline.exe onto my Windows XP Pro system. When I tried to see the manual (under the Help/User Manual menu) I got an application error; I clicked on the details and to this message, which I pasted in:

 wrong # args: should be "openOutlineTab nb ?fname?"
 wrong # args: should be "openOutlineTab nb ?fname?"
     while executing
 "openOutlineTab .nb C:/Documents and Settings/David Cargo/My
     (command bound to event)

Maybe there's a problem with the StarKit versus plain code in finding a file....

07-Mar-03 Brian Theado - Thanks for this report. It appears to be a quoting problem and only happens because the directory path of tkoutline.exe contains spaces, something I've never tested. I will fix this. As a workaround, just copy tkoutline.exe to a directory path without spaces and try again.

28-Feb-03 Al Christians - I started using this with good results (WinNt, running the StarKit) for about an hour, then hit a bad bug. Somehow, as I was trying to create a new top-level item at the top of the list, I wound up with my original top-level item lost, and the outline started with a sub-item. This causes all kinds of trouble. For example, you can't exit the program. You can save and open the fouled-up file, and it comes back in the same way, with no top-level item at the top. Even if I try to exit without saving, it won't let me exit because of the error. I tried to get a top-level item back at the top of the outline by promoting the top sub-item. It goes off somewhere into space when you do that.


-- Al Christians Update about 2 hrs later:

I just got the version 0.85 executable, and that has a different (and better for me) UI (bigger font), so I guess that the starkit that crashed on me (downloaded from the Starkits examples page) is not current. IDK if the 0.85 version has the bug I describe above. Maybe just an update of the Starkits examples link is all that's needed.


-- Brian Theado later the same day:

Thanks for the report. I just checked the version at the starkits example site (I presume you mean and it is version 0.77. I have fixed some bad bugs similar to what you describe (see version 0.91 at Changelog) so hopefully they are fixed. There is going to be a new release of tkoutline within a week (maybe by this weekend). In addition the bugfixes, there have been significant internal changes. Hopefully no new bugs like this. You can download a preview of what I will be releasing from

I will be sure to get the starkits example site updated with the new release.

21-Jan-03 Brian Theado - Here are some informative links:

Feature requests from John Buckman ( sent to me (Brian Theado) via email 11-Nov-02 - he maintains a large collection of windows outliners, with a discussion of each product's merits, at My responses are in italics

In another email John requests:

My top feature requests would be (in order):

  1. cut/copy/paste - see cut/copy/paste functionality
  2. hotkeys for collapse/expand (current/all/to-level) - see Additional expand/collapse functionality
  3. font choice - The font is configurable via the .tkoutline.def file. Are you after something more? Multiple fonts per outline? Gui font selection? (john: fonts defined on a per-level basis is useful, so headlines are very large, also bold/italic inside the text can be useful.) 15-Nov-02 - brian: I agree per-level fonts would be useful. FYI *bold*, /italic/, _underline_, and -strikeout- is already available inside the text
  4. undo (not vital)
  5. ability to dynamically switch between single/double/triple pane outline display mode (see for a definition of these display modes). The "treepad" program does two-pane outlining well, and there's a screenshot at

john mentions some other ideas:

  1. a common request (and feature) in other outliners is the ability to hold graphics. I personally haven't used this feature, as it doesn't work well with a one-pane outliner (the graphics make the outline (when expanded) huge. But, with a 2 or 3 pane outline view, graphics are very useful.
  2. absolutely essential for me are keystrokes for all commands -- think emacs <grin> -- this is already mostly the case, but just a reminder. Brian Theado - I have played around a bit today with getting a subset of Curses based Tkoutline functionality working. If I pursue this, it would further drive the addition of keystrokes
  3. many outliners support hyperlinks to other parts of the outline. I used that feature in the old days in an outliner called 'grandview', and it could sometimes be useful. - Explained at Hyperlinking to parts of an outline''
  4. in addition to URLs, hot 'file' links are useful, so that if I specify c:\docs\mydoc.doc or /opt/docs/mydoc/txt this is linked and clicking on it brings up the document. This is currently supported with the file:// URL scheme. Were you hoping to get away with not typing the file://?
  5. sort highlighed content (the 'nedit' editor on unix does a nice job of supporting text-processing plugins, and uses the unix 'sort' command to do this job, and others)
  6. numbering of items in the outline is essential, otherwise it's hard to have a conversation about a printed outline. Usually, outliner support several outline formatting styles. I personally prefer plain numbers on each level, though alternating numbers and letters is also useful. Tkoutline used to support bullet numbering until I broke it several version back. I do not use it much and have not been motivated to fix it yet. The keystroke used to be ctrl-b to toggle to bullet numbering. This keystroke does still flag an outline with bullet type of numbering, which does affect the html export command. So as a workaround, if you want a numbered printed copy, then hit ctrl-b, export to html and print the html.
  7. full text search (grep)

He also mentions a desire for having a plug-in architecture so tkoutline can be easily extended.

And he mentions that his favorite outline feature is "columns w/filters" -- which is from Ecco, and it really helps control outlines as they get bigger - see columns and filter functionality

Hi, this looks like a very promising outliner. I downloaded it to my Windows desktop (Windows 98) and got an lengthy error message when I tried to run it. "Error in startup script" was the title of the message box, then it said something about permission denied. If anyone can help me with this, I'd appreciate it. You can e-mail me directly to Thank you.

Brian Theado 11-Nov-02 - I seem to have goofed. This error seems to occur if you download the source and run it with your own Tcl/Tk installation. I have also duplicated it by running the windows executable on windows 95 (works fine on windows xp). I should have this fixed within the next couple of days.

Thank you. I'm glad it isn't just me. - Steve Zeoli

Brian Theado 12-Nov-02 - New version 0.85 released with the problem I saw fixed.

Older discussion - pre-2002

I've used it and works great for what I need...But that lasted a short while and made several changes to enhance it...

it support multiple documents (using mkwidgets 8)

colorized the text

expanded the XML support

sort and edit attributes for each nodes

database access and ldap been added...

james garrison <>

please post new entries at the top of this page