Updated 2010-11-09 21:06:36 by tran

This page is a work-in-progress description of how to get Wikit running on a PocketPC using the Tk interface. Still plenty of room for improvement... :-)

Why would you want to do this? Well I like it because it means that I no longer have to use a notebook (i.e. pen and paper) at all. I take all my notes in Wikit, either on the PocketPC or laptop, and synchronise the two databases (a script to be provided later :-)).

The description below assumes some familiarity with Tcl...

My suggested steps are:

  • Get Wikit running on one of the more conventional platforms first, e.g. Windows. See Wikit and http://www.equi4.com/wikit.
  • Get Tcl 8.4.4 running on the PocketPC. See Windows/CE and iPAQ.
  • Install MetaKit (Mk4Tcl) as a package on the PocketPC. Thanks to jcw this can be downloaded from [1].
  • Unpack the source code from wikit.kit and copy it to the PocketPC. See TclKit, Starkit, [2] and [3].
  • Replace gui.tcl in the wikit library with gui.tcl for Wikit on PocketPC.
  • Modify main.tcl to not use Starkit or VFS, and set auto_path appropriately (see below).

This is from memory, so I will be looking for some verification once this page has sufficient detail.

I think this is enough to get it working now. All feedback appreciated.

Known Issues:

  • wikit.tkd always seems to be created in the root directory (\). I haven't looked into this yet.
  • The screen dimensions are based on an iPAQ 5450 and hardcoded in gui.tcl.
  • There are a number of limitations with the PocketPC Tcl port, see Known bugs in CE ports.
  • When scrolling, Tcl seems to display a blank selected area occasionally. I assume this is a problem with the PocketPC port, but haven't been able to narrow the conditions down sufficiently.

Many thanks to:

  • Jeffrey Hobbs for making the 8.4.4 port available on the PocketPC.
  • Jean-Claude Wippler for making Mk4tcl available on the PocketPC.
  • Everyone who contributed to Tcl, MetaKit and Wikit.


Modified main.tcl (modify auto_path to point to the actual directory):
 lappend auto_path /Tcl/samples/wikitce/lib

 if 0 {
     namespace eval tkcon {}
     set tkcon::PRIV(showOnStartup) 0
     ## set tkcon::PRIV(root) ./tkcon.cfg
     set tkcon::OPT(exec) ""
     source tkcon.tcl

     #tkcon show
     bind . <Control-c> {
         if {[winfo exists .tkcon] &&
         [winfo ismapped .tkcon]} {
             tkcon hide
         } else {
             tkcon show
             wm geometry . 230x200+0+5
             wm geometry .tkcon 44x18+0+0

 package require Mk4tcl
 package require app-wikit

This looks great!!!! Just waiting on the rest of the instructions. MPJ (10/09/03) Ok I just tried it out and got it to work. I did find that I needed a wikit.tdk installed in the root or I got a error related to stdout. Now we just need menus working ;-)

AKG (12 Sep 03) I thought that it automatically created wikit.tkd for me. It might have worked because I had Tkcon running, and it "fixed" the stdout problem.

[tran] - 2010-11-09 16:06:36

That's exactly what i want to do : using wikit on my Pocket PC IPAQ H220. My embedded tcl distribution is eTcl (latest version). I followed the steps but there is a problem using mk4tcl.dll (modification of main.tcl) - on eTcl on my desktop computer (xp) the wikit with new version of main.tcl works perfectly, although it is calling mk4tcl.dll - on my ppc : same launching main.tcl occurs an error :

load \wikit\mk4tcl.dll :
couldn't load library "\wikit\mk4tcl.dll":
invalid argument while executing "load \\wikit\\Mk4tcl.dll" 
(file "\wikit\main.tcl" line 22)

or :
load [file join [pwd] mk4tcl.dll]
couldn't load library "\wikit\mk4tcl.dll":
this library or a dependent library could not be found in library path
while executing "load [file join [pwd] mk4tcl.dll]" 

(the path is good)

it sounds as if mk4tcl.dll doesn't work on ppc or i don't know (i got the latest binary version available) please help (i'm quite a newbie)