The Daily Journal

The Daily Journal

fltdj manages daily notes, appointments, alarms to upcoming appointments, contacts, holidays and to-do list.

What is fltdj?

fltdj is a PIM program in the making.

What does PIM mean?

Personal Information Manager (I think), a program which manages daily notes, appointments, to-do lists, contacts, addresses, alarms, etc.

What can it do, in its present form?

If you need a program to keep track of daily notes, (or a diary, or a journal of your activities), along with daily appointments and alarms for them, an address book of your contacts and a list of holidays (or anniversaries) as well as things to do, fltdj keeps them organized and accessible.

That’s not very useful.

If it were, do you think I would be giving it away free?

One of the reasons I enjoy developing it is because it is quite removed from the nature of my daily work. When it is complete I will find it totally useless.

Well, not totally…

Will it ever do anything else?

Nope, there is no guarantee that it will do anything else. But, there is every probability of the version number increasing in the future as and when I get the time to add more features (especially if anyone asks).

How do I use it?

The user interface is a nice looking calendar. See the screenshot? You can store your thoughts for a particular day by clicking on the appropriate date. An editable window to the right of the calendar is where you enter the text for the days notes. To retrieve the notes for a particular day, click on the desired date. The same editor window appears, and you can add to or modify the notes if needed.

You can search for a particular string of text in the notes There’s a nice clock displayed as well, so you can see what time it is. And the current day and date is shown at the bottom of the window.

A bar of tabs allows you to choose the activity you want to manage.

Clicking the “Appointments” tab brings up your appointment list for the current day. You can make changes to or add or delete any appointment.

Clicking the “Contacts” tab reveals a window where you can enter, modify or delete your database of contacts and addresses.

A click on the “To-do” tab brings up a window where you maintain your Things-To-Do list.

fltdj is a small program, and takes up very little space on the desktop, as well as your hard disk.

What do I need to compile it?

You need Fltk (pronounced ‘full-tick’), the Fast Light Tool Kit, from

FLTK logo

See the README in the fltdj source package for more details. You will also need the GNU C-compiler and the development libraries that are supplied as standard with all Linux distributions.

What else does it use?

fltdj uses the ‘cal’ utility to generate the calendar display, and the ‘date’ command to show the current date. These are part of all Linux distributions.

How do I compile it?

First download the source file from here.

Then copy the file fltdj2-xx-src.tar.gz to your home directory (xx is the version number).

Type ‘tar -zxvf fltdj2-xx-src.tar.gz’. Press Enter. This will decompress and extract the files to a directory called ‘fltdj-xx-src’.

Change to that directory, ‘cd fltdj2-xx-src’.

Type ‘make clean’, and that’s it.

If there are no errors, type ‘make install’ as root.

Contact me if there is a problem. It would be nice to hear from you even if there are none. But do contact me, especially if you find a bug.

Are there any bugs?

If you don’t see any at first, something will surface eventually. Did you really have to ask?

The code compiles cleanly with Gcc version 4.4.xx on Debian Squeeze, which is what I have at present, along with FLTK 1.3.1. Reports of any errors you encounter while compiling, as well as bugs during execution, will be greatly appreciated, (and fixes, too, if possible!).

But I dont want to compile it. Why can’t you just provide a pre-compiled binary?

Well, it’s better to compile it on your machine, because then you are sure that it is optimized for your Linux installation. Besides, you can also check and modify the source if you wish.

However, if you just want a pre-compiled binary, then RPM files for fltdj-0.7 are available on the Internet in various places.

If you don’t believe me, search for “fltdj RPM” on Google and see for yourself.

The source package of fltdj2, available from here,  contains a pre-compiled binary for 64-bit Linuxes.

A pre-compiled binary of fltdj-0.7 is also available from the same link.


Many, many thanks are due to:

Robert Kesterson, for his excellent FLTK editor widget, which was used in earlier versions but which is now superseded in the current version by FLTK’s inbuilt editor.

Juraj Ziegler, who reported errors and also sent the required modifications.

Lance Perry, who suggested putting the data files in a hidden directory in the user’s area, and supplied the patches.

Greg Sjaardema, who urged me to enable the program to save the notes file without exiting.

Don van der Haghen, who sent error messages encountered on his system.

Joe Krahn, who suggested that the program should check for multiple instances on startup,  and that file access operations should be verified, in case the hidden directory ~/.fltdj is absent. Apparently some users may do an “rm” on it by mistake! One of his other suggestions is still not implemented. It will be, Real Soon Now…

Torquil Gault, who wanted to use parts of the fltdj code for a (quote) “quick & dirty GUI set date pgm for the ipaq” (unquote). Be my guest, the program is released under the Gnu GPL. I hope you were successful.

Benjamin Long, you never told me if you succeeded in cross-compiling fltdj for your iPaq Handheld!

R. K. Marwah, for valuable, live, actual user feedback, and constructive suggestions

Richard Holt, for catching the date not changing after midnight.

Rajesh Deshpande, for catching the errors with new versions of FLTK.

Tom Brown, for the bug reports and error messages.

Janet Casey for putting fltdj in the GNU software directory, and for pointing out that the GPL license as supplied with fltdj in not quite complete.

Darald Bantel, just for mailing me that he could successfully install fltdj.

Leslie H. Watter, Jeremy M. Dolan, Luke Th. Bullock, Szabo Peter and SG for alerting me about the broken links on the web page containing the download files.

Alexey Parshin for the excellent Multitabs widget.

Brent for detecting that the declaration for Select_Browser in the Fluid-generated header file “fltdj.h” is “Fl/” instead of “FL/”. This gives a compilation error on his machine and is now corrected. His suggestion regarding auto-repeating appointments will be implemented in version 0.8.

What is the copying policy?

While it is copyright, (c) Kartik Patel the program is also free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by  the Free Software Foundation; either version 2 of the License, or (at your option) any later version.  This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.

You will receive a copy of the GNU General Public License along with this program; for more information, write to:

The Free Software Foundation, Inc.,

675 Mass Ave,


MA 02139, USA.

Last updated: 18 November 2012

Copyright (c) Kartik Patel, letapk AT gmail DOT com