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

tdesk news

April 20, 2005 -- Bypass a tcl/tk bug

I found an annoying bug in specTcl that prevented me from using BWidget widgets (like ComboBox) in the embedded gui builder (based on specTcl). It generates the right tcl gui code but it could not run from inside specTcl. What specTcl do is to create a slave interpreter and load Tk in this interpreter. The problem happens when we try to bind something at the startup code, so I commented out the bind . exit line, at proc run_app source file SpecTcl/ and it works now.

I have rewritten this as a small code snippet and the problem really happens, so it is not specTcl fault, but seems to be a bug in tcl (or tk) core. If you are reading this and knows how to report the bug, I'd be happy to send you more details, so please e-mail me.

April 08, 2005 -- Bug fix in the file manager

When I changed the file manager to open multiple instances, I introduced a bug solved now, which prevented it to navigate controlled by the lateral (left) folders tree.

April 06, 2005 -- Drag-n-drop support in the taskbar

You may drag an icon from both the file manager or the desktop and drop it in the taskbar (at the bottom of the screen). The added icon will behave the same as the original, but with a boring icon (gears), because we do not manage icons yet. Left-click on the added icon to see the original default action being invoked. Right-click to remove an icon, and the taskbar will be redrawn, rolling the other icons to the left, if needed. It's not much, I know, but I have been busy with other matters. There are some other bugs fixed too.

This is only available in the latest release, tdesk-20050406.kit, see downloads below.

April 05, 2005 -- Changes in SpecTcl

Now our gui builder, SpecTcl (enclosed in tdesk.kit), supports better the new tk widgets: labelframe, spinbox and panedwindow. This last (panedwindow) does not make much sense, until I add commands to control the creation/destruction of panes. You may use interchangeably frames and labelframes with the same commands (with sub-grids inside them). I have added also BWidget's combobox, but for an yet unknown reason, it does not run from inside specTcl, but compiles fine the dialog/gui.

Please, grab your starkit below, and don't forget to send me comments, enhancements, or just a message telling me your interest in this project. Thank you!

April 02, 2005 -- Support some Motif(TM) hints

I was still not happy with the way XMMS worked with our window manager, so I added support for "has title" Motif hint ("no border" is checked also, but no provision for handling it). Then I found a way to make a better handling of focus, without the need to capture Enter/Leave events (that was really ugly, arg!). Now the window manager don't allow other windows (including its own Tk applications) to steal the focus so easily!

April 1st, 2005 -- More bugs fixed.

There was still a couple bugs that prevented double click and menu posts in specTcl. Unfortunatelly, I only found it when restarted to work on more dialogs. Now this is fixed, and I have tested several programs both external (eg. gimp, sodipodi, firefox, blender,...) and embedded, and nothing strange was found. Let us cross the fingers...

As I said before, I removed most code snapshots, leaving only some of possible interest. If you need any other version (why?! But who knows?) please ask me.

March 31, 2005 -- Bugs chasing.

When trying to push harder the window manager, I found a lot of annoying bugs. Now it seems much more robust. If you find a bug, please report to me. In particular, now it handles correctly iconified windows.

In a few days, I will remove most of the code snapshots in our downloads, and begin to number releases (still pre-alpha!). The project will enter a more interesting phase...

March 30, 2005 -- Some beautifying changes.

I have had not much time free today to advance tdesk, but I made a couple changes in the window manager to make it look nice. Also, the specTcl function (to call the gui builder from a script) now accepts an (optional) file name, as the mlEditor, so both can be called from a menu or any other script, without the need for a "open file" dialog.

March 29, 2005 -- File types handlers, dialogs editing.

Now we have a way to edit our dialogs with specTcl (all inside the starkit, directory "dialogs"). Some widgets, such as NoteBook (from BWidget) are not supported by specTcl, so to use them, we must first write a small wrapper (see dialogs/folder_options.tcl, as it is really simple!).

You may check the file types that the file manager understand, by selecting the menu "View->folder options". Then, you may edit the GUIs with specTcl (use the embedded, modified and corrected version). To reload all dialogs, use tdesk::load_dialogs. All .tcl files in the directory dialogs will be sourced again. If you create new dialogs, remember to copy your clone with another name...

March 27, 2005 -- Window manager changes, other advances.

I have added the remaining "expected" buttons in the window manager decoration frame. Some improvements in file and desktop managers as well. Now it acepts drops from kde's konqueror. Better handling of uri-lists.

March 24, 2005 -- More changes to the file manager

Before proceeding with mime detection and menus, here is a cleanup on some issues. Get your today downloads below.

To avoid crowding this page with many news items, I'll keep old news in other pages, as in our main site.

Previous tdesk news

About tdesk

Current desktop environments are hard to customize and far bloated in my opinion. I ever wanted to have something small, configurable (or best yet, scriptable), and easy to install. When tdesk is finally ready, I will have this need fulfilled, and with my favorite scripting language under control, Tcl, of course. Here you will find my latest experiments, and some news items, moved from my main page.


  • Simplicity, all in a single file. Everything else you need is tclkit to run tdesk. No hard to comply library dependencies.
  • User configuration inside, as a clone of the program.
  • Easy deployment, just copy the starkit.
  • Light on resources. Ideal for small Linux distributions.
  • Configurability. You may edit everything, even system dialogs and scripts.

How to start tdesk:

You must have installed, or my modified tclkit-Xft (gunzip and chmod it first). Tdesk only works under Linux, or maybe other unices. I only have Linux. The only other requirements are a recent glibc (it was compiled against glibc-2.3.2), and the X11 libraries. It will not work if another window manager or desktop manager owns the root window.

A suitable start procedure is to add the command "exec /path/to/tdesk.kit" near the end of your "$HOME/.xinitrc" and start your X server with something like "xinit ./.xinitrc -- /usr/X11R6/bin/X :1". Click the buttons at the taskbar to have some of its components (embedded), or a couple of other (external) applications (xterm and gimp).

Here there are sample files .xinitrc and start-tdesk and also the command to issue. Place both files in the same directory, along with tdesk-20050405.kit (replace with the name of your current code snapshot) and voilá a new desktop will popup in your display.


exec ./tdesk-20050405.kit


xinit ./.xinitrc -- :1

Start tdesk with (command line):

sudo ./start-tdesk

If for some reason tdesk don't work, you may try first to run tdesk.kit under your current desktop environment (without the window manager and background window). Just run it with ./tdesk.kit or /path/to/tclkit tdesk.kit. If even that don't work, you will fill me a bug report, but before make sure you can run something else with the same tclkit binary.


  • tdesk-20050420.kit
  • tdesk-20050408.kit
  • tdesk-20050406.kit
  • tdesk-20050405.kit
  • tdesk-20050402.kit
  • tdesk-20050401.kit
  • tdesk-20050331.kit
  • tdesk-20050318.kit
  • tdesk-20050303.kit

Last updated: 2005/04/20 17:50:36