adventures logo
adventures in linux programming


microterminal (FPGA)
KeenView driver
Tiny Cobol


C básico
Linux sob medida
tclslides talk
FSL(P.Alegre) 2003
Forum linux I
Real Time Linux
Americano Batista Linux


GDI printers
SOS Linux
gimp tutorial
hardware projects
free photos
short commands
brazilian keyboard
personal info
html editing
favorite places (links)


Chapeuzinho Vermelho
Linux Pernambuco
Why Linux?
Day after

tdesk - A tcl/tk desktop environment

old news

March 22, 2005 -- Multiple file manager instances

Now we can have multiple file manager instances. To test, drag a directory into the desktop and double-click it.

March 21, 2005 -- More on Click to focus

Solved the problem with click-to-focus. Please, get your download below. Tk keeps fighting to move the focus from one toplevel to another, so I have to catch enter/leave events and change back the focus to where it must be!
But I'm slowly advancing in other areas too. You may now click an image to see it in the embedded browser, or a text file (including tcl source) to get it open in the editor (ml). If you drag items and drop into the desktop, the items there will also behave the same. There is no general mime type recognition yet, but I'm looking at fileutil::fileType (from tcllib) and McCormack's "mime type recognition in pure tcl" (published in Tcler's wiki).
I intend to let the user edit all dialogs and menus (both tk style menus and xml/html menus a la Windows-XP), so maybe this will get some priority to make tdesk usable faster.

March 20, 2005 -- Click to focus policy

It was not easy to get a "click to focus" policy implemented (tk understand focus differently from X), but here it is. There is a minor problem: you have to click in the decoration frame, or in a button of the taskbar to select the window that will receive input focus. I'll try to solve that later.

March 18, 2005 -- More window manager changes

The window manager became faster. It is a single process now, avoiding the communications back and forth of commands across a pipe. There is still a pipe, but to handle commands from the other components of the desktop (like the taskbar). And I became happier (also because I learned a lot coding this), as it seems more viable now.

March 17, 2005 -- One more...

To make sure we follow the advice "release often, release early", here it is another tdesk-20050317.kit. Maybe it is time to make a separate page for tdesk.

March 16, 2005 -- Proceeding with tdesk

To make justice to Tk code, which I unintentionally criticized (after many hours of debugging under xmon) before, I retreat myself. I really must study much more to get comfortable with Tk and X events. Anyway, I ever found in tcl and tk source pearls of software engineering that is a good source of inspiration. Really! Thanks to George Peter Staplin, that pointed out this.

Now, a new package for your pleasure: tdesk-20050316.kit. I'm going to sleep just now, but I'll try to advance on other things (menus editor, enable most of the actions on the file manager, add back the window to the taskbar,... an the list goes on).

March 15, 2005 -- A novel tcl/tk window manager

I needed a window manager to be integrated in tdesk. Most window managers in tcl are not suitable, or have problems. With some ideas of Panache, tkwm, and minimalistic window managers such as 9wm and aewm, I made it. Really, it is aewm modified to be interfaced to tcl, run as a separate process (but all inside the same starkit), which communicate back and forth with another (slave) interpreter of the main application. You may try it now, tdesk-20050315.kit, with full source code (C and tcl) included: please use the embedded browser (click in the globe at the taskbar), directory "source" to see. Try running your favorite applications and report to me any things you don't like, or better yet, help me to fix it!

Some details: open the console (tkcon, not xterm) from the taskbar, attach it to interpreter "wman" and look for the windows, all named .cliW<window_id>. You may change or add more decorations in this window (toplevel), but be careful... Use the source Luke!

March 12, 2005 -- More desktop musings

Many improvements on the tcl desktop (or as I call it tdesk, unless you suggest me a better name for it!). Now the window manager is integrated, there are tweaked versions of specTcl (gui builder), a small editor (ml), and the html viewer (tkhtml). Besides that, some other libs are added, at least during the experimentation phase. It looks great now! The starkit is "writable", so you may use the tools above to create a custom version of it. That's my central idea: to have something very flexible and simple, with the most needed tools already self-contained.

The window manager is simply aewm 1.2.5 with minor changes and a tcl interface to it. The way tk handle X events makes near to impossible to write a window manager as a regular extensions (many events are filtered out). So the idea is to let the window manager run as a separate process with its own X connection, and communicate with the other desktop components which needs Tk (for instance, when we are going to map a new window, the wm process ask the tk process to create a toplevel which will be the outer frame for the mapped window...).

Well, enough talk. Grab your tdesk-20050312.kit and send me suggestions, improvements, or just write to me your thoughs. I'd enjoy to receive comments on this project. Use the taskbar to launch the enclosed applications.

March 3, 2005 -- Desktop experiments 2

I found that the "wmx" extension was not linked as it should (stubs enabled), so here is another starkit with that fixed. Sorry for the inconvenience!

To start the (very experimental) desktop environment, please use a script like that:

X :1 &
export DISPLAY=:1
xfwm4 &
exec ./tdesk-20050303.kit

If you don't have xfwm4 (the window manager from xfce), you may try others, but in some of them you will have weird things like title bars in the desktop window, no buttons in the taskbar (running applications). If you have "metacity" (the gnome window manager), it works fine too. In the future, I plan to make "tdesk" include its window manager too.

As about the license for all this, it is free as Tcl's license. If you make improvements, I'd be happy to include here, please send me.

March 2, 2005 -- Desktop experiments

I'm doing some experiments with a tcl-centered desktop environment. It is very crude yet, but I plan to give it the (best) features of the most common desktops, but without the bloat, of course. The best of all, it will be scriptable in tcl, simple and very small. Here is a preview screenshot of what it looks like.

If you are adventurous, here is a starkit (new version, corrected) with the latest development (not released, I warned you!). Don't expect too much, but there are some things that already work, at least partially: the file manager can navigate directories and will show images if "xv" is present; you may drag any items from the right panel of the file manager and drop into the desktop, and also the other way (just to get a dialog to choose the action); the taskbar may activate and raise the selected window. You may get the tcl console by Control-clicking with the right mouse button anywhere, then you may start a regular xterm with the command "xterm &".

You may navigate inside the virtual starkit directory and read the source code for the extension "wmx", with some commands needed to make this beast operate! There is no window manager yet, so you must choose a suitable. I had success with xfwm4, metacity, lwm, icewm (with some bugs), and several others. Most really minimal don't work fully. I will have to tweak some code for a tcl-only window manager to integrate in this desktop yet, and to stay light and simple. By the way, many things are in portuguese, but don't be frightened, because it mimmicks *Win* stuff (to show my friends!).

Okay, many things yet to be done, but what you think? Would you like to help me? If so, please e-mail me at

Last updated: 2005/04/05 10:02:26