Tkabber
Encyclopedia
Tkabber is a GPL
instant messaging
client
for the XMPP
protocol which uses the Tk
toolkit for the GUI
. It runs on anything to which Tcl/Tk is ported: almost any X
-based system (namely, any Linux
and *BSD
, Solaris, etc.), Microsoft Windows
, and Mac OS X
.
balls containing the code of its "core" and standard external plugins. Since Tkabber is written in an interpreted language, it does not require any "building" for a target platform. Nevertheless, Tkabber is packaged by most of known Linux
distros and FreeBSD
. Also special "all-in-one" packages for Microsoft Windows
are provided (they don't require separate installation of the Tcl/Tk runtime) in the forms of installer
and starpack. Starpack for Linux x86 is also provided.
XMPP
client which is feature-rich and is easy to hack. Tkabber is written in Tcl
allowing it can be customized without knowledge of a low-level language such as C++
and its build system.
A rough list of features is:
Tkabber also features a set of standard external plugins which can be installed to enhance functionality. Tkabber plugins include: several board games, multi-user whiteboarding, georoster, support for rendering mathematical
formulae using LaTeX
, Unicode
character picker, chat text completions
, floating transient log of new messages and more.
There are also several plugins created by the Tkabber community. They aren't distributed with Tkabber but may be downloaded and installed separately.
On the other hand, Tkabber currently lacks in some respects, namely:
XMPP server) in 2002. Several people contributed into it, notably Marshal T. Rose, Michail Litvak and Sergei Golovan, who is the current maintainer of the project.
In October 2004, Alexey Shchepin won an Honorable Mention for Tkabber in the ActiveState
Programmer Network's Coolest Tk Screenshot Contest. Coincidentally, another Jabber/XMPP
client was a Grand Prize Winner: Mats Bengtsson for Coccinella
.
An extensive summary of the Tkabber's history is available here.
The word "Tkabber" is built of two words: "Tk" and "Jabber" which alludes to the GUI toolkit used and the family of network protocols implemented. No one really knows how it is pronounced. Russian speakers (including the Tkabber's author, who invented this name) pronounce it as [t'kabber].
GNU General Public License
The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....
instant messaging
Instant messaging
Instant Messaging is a form of real-time direct text-based chatting communication in push mode between two or more people using personal computers or other devices, along with shared clients. The user's text is conveyed over a network, such as the Internet...
client
Client (computing)
A client is an application or system that accesses a service made available by a server. The server is often on another computer system, in which case the client accesses the service by way of a network....
for the XMPP
Extensible Messaging and Presence Protocol
Extensible Messaging and Presence Protocol is an open-standard communications protocol for message-oriented middleware based on XML . The protocol was originally named Jabber, and was developed by the Jabber open-source community in 1999 for near-real-time, extensible instant messaging , presence...
protocol which uses the Tk
Tk (framework)
Tk is an open source, cross-platform widget toolkit that provides a library of basic elements for building a graphical user interface in many different programming languages....
toolkit for the GUI
Graphical user interface
In computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...
. It runs on anything to which Tcl/Tk is ported: almost any X
X Window System
The X window system is a computer software system and network protocol that provides a basis for graphical user interfaces and rich input device capability for networked computers...
-based system (namely, any Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
and *BSD
Berkeley Software Distribution
Berkeley Software Distribution is a Unix operating system derivative developed and distributed by the Computer Systems Research Group of the University of California, Berkeley, from 1977 to 1995...
, Solaris, etc.), Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...
, and Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...
.
Availability
Tkabber is primarily distributed in the form of two tarTar (file format)
In computing, tar is both a file format and the name of a program used to handle such files...
balls containing the code of its "core" and standard external plugins. Since Tkabber is written in an interpreted language, it does not require any "building" for a target platform. Nevertheless, Tkabber is packaged by most of known Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
distros and FreeBSD
FreeBSD
FreeBSD is a free Unix-like operating system descended from AT&T UNIX via BSD UNIX. Although for legal reasons FreeBSD cannot be called “UNIX”, as the direct descendant of BSD UNIX , FreeBSD’s internals and system APIs are UNIX-compliant...
. Also special "all-in-one" packages for Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...
are provided (they don't require separate installation of the Tcl/Tk runtime) in the forms of installer
Inno Setup
Inno Setup is a free script-driven installation system created in CodeGear Delphi by Jordan Russell. The first version was released in 1997.- History :...
and starpack. Starpack for Linux x86 is also provided.
Mission statement
The goal of the Tkabber project is to create a cross-platformCross-platform
In computing, cross-platform, or multi-platform, is an attribute conferred to computer software or computing methods and concepts that are implemented and inter-operate on multiple computer platforms...
XMPP
Extensible Messaging and Presence Protocol
Extensible Messaging and Presence Protocol is an open-standard communications protocol for message-oriented middleware based on XML . The protocol was originally named Jabber, and was developed by the Jabber open-source community in 1999 for near-real-time, extensible instant messaging , presence...
client which is feature-rich and is easy to hack. Tkabber is written in Tcl
Tcl
Tcl is a scripting language created by John Ousterhout. Originally "born out of frustration", according to the author, with programmers devising their own languages intended to be embedded into applications, Tcl gained acceptance on its own...
allowing it can be customized without knowledge of a low-level language such as C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
and its build system.
Features
Tkabber implements anything found in the core specs and well-established XEPs (XMPP Extension Proposals) as well as some new important facilities such as PEP.A rough list of features is:
- Messaging:
- Simple one-on-one chat.
- "Normal" chat messages.
- Multi-user chat with full room administration support, invitations, history support and possibility to ignore certain users.
- "IRC-style" chat commands for room management, user info inquiry, etc.
- Chat state events.
- Nickname/keyword highlighting, stylecodes, clickable URLs, nick completion, etc.
- Chat history with searching and ability to export to XHTML.
- Roster:
- Conference bookmarks in the roster (with autojoin support);
- Roster annotations.
- Active chat sessions as roster items.
- Importing/exporting of roster items.
- Sending of contacts to other users.
- Misc features:
- Full support for server-side privacy lists.
- File transfers.
- User interface for service discovery.
- Support for message headlines.
- Extensive support for searching in many parts of UI.
- Support for gateways to legacy IM networks (AIMAOL Instant MessengerAOL Instant Messenger is an instant messaging and presence computer program which uses the proprietary OSCAR instant messaging protocol and the TOC protocol to allow registered users to communicate in real time. It was released by AOL in May 1997...
, ICQICQICQ is an instant messaging computer program, which was first developed and popularized by the Israeli company Mirabilis, then bought by America Online, and since April 2010 owned by Mail.ru Group. The name ICQ is a homophone for the phrase "I seek you"...
, .NET Messenger Service.NET Messenger ServiceThe .NET Messenger Service is an instant messaging and presence system developed by Microsoft in 1999 for use with its MSN Messenger software and used today by its current instant messaging clients, Windows Live Messenger and Microsoft Messenger for Mac...
, Yahoo! MessengerYahoo! MessengerYahoo! Messenger is an advertisement-supported instant messaging client and associated protocol provided by Yahoo!...
and so on).
- Admin/developer support:
- XML console that allows to inject custom stanzas in the outgoing stream.
- Ad-hoc commands.
- User interface:
- Windowed or tabbed interface (tabs are multiline and dockable to any side of the main window; tabs can be preserved across restarts).
- Localizable UI (translations to several languages including Russian, German, Ukrainian and Polish are included).
- Support for graphical emoticons (including jisp format).
- Customizable main interface iconsets.
- Support for changing the color/geometry of any aspect of the user interface (through the usage of the TkTk (framework)Tk is an open source, cross-platform widget toolkit that provides a library of basic elements for building a graphical user interface in many different programming languages....
option database). - Support for sounds bound to certain events.
Tkabber also features a set of standard external plugins which can be installed to enhance functionality. Tkabber plugins include: several board games, multi-user whiteboarding, georoster, support for rendering mathematical
Mathematics
Mathematics is the study of quantity, space, structure, and change. Mathematicians seek out patterns and formulate new conjectures. Mathematicians resolve the truth or falsity of conjectures by mathematical proofs, which are arguments sufficient to convince other mathematicians of their validity...
formulae using LaTeX
LaTeX
LaTeX is a document markup language and document preparation system for the TeX typesetting program. Within the typesetting system, its name is styled as . The term LaTeX refers only to the language in which documents are written, not to the editor used to write those documents. In order to...
, Unicode
Unicode
Unicode is a computing industry standard for the consistent encoding, representation and handling of text expressed in most of the world's writing systems...
character picker, chat text completions
Autocomplete
Autocomplete is a feature provided by many web browsers, e-mail programs, search engine interfaces, source code editors, database query tools, word processors, and command line interpreters. Autocomplete involves the program predicting a word or phrase that the user wants to type in without the...
, floating transient log of new messages and more.
There are also several plugins created by the Tkabber community. They aren't distributed with Tkabber but may be downloaded and installed separately.
On the other hand, Tkabber currently lacks in some respects, namely:
- No support for Windows XP and Vista theming engines.
- No avatars in chat windows/rosters.
- Multi-login works, but some parts of the UI don't know about it.
History
Tkabber was started by Alexey Shchepin (also the author of ejabberdEjabberd
ejabberd is an XMPP application server, written mainly in the Erlang programming language.It can run under several Unix-like operating systems such as Mac OS X, GNU/Linux, FreeBSD, NetBSD, OpenBSD and OpenSolaris...
XMPP server) in 2002. Several people contributed into it, notably Marshal T. Rose, Michail Litvak and Sergei Golovan, who is the current maintainer of the project.
In October 2004, Alexey Shchepin won an Honorable Mention for Tkabber in the ActiveState
ActiveState
ActiveState is a Canadian software company headquartered in Vancouver, British Columbia. It develops, sells, and supports cross-platform development tools for dynamic languages such as Perl, PHP, Python, Ruby, and Tcl, as well as language distributions and enterprise services...
Programmer Network's Coolest Tk Screenshot Contest. Coincidentally, another Jabber/XMPP
Extensible Messaging and Presence Protocol
Extensible Messaging and Presence Protocol is an open-standard communications protocol for message-oriented middleware based on XML . The protocol was originally named Jabber, and was developed by the Jabber open-source community in 1999 for near-real-time, extensible instant messaging , presence...
client was a Grand Prize Winner: Mats Bengtsson for Coccinella
Coccinella (Instant Messenger)
Coccinella is a free client for the XMPP/Jabber-Instant-Messaging-protocol.The software is written in the Tcl/Tk language, and it runs under BSD, Linux, Mac OS X, Solaris, Windows and all other platforms that support Tcl/Tk. Mats Bengtsson published it in 1999, under the name Whiteboard...
.
An extensive summary of the Tkabber's history is available here.
The word "Tkabber" is built of two words: "Tk" and "Jabber" which alludes to the GUI toolkit used and the family of network protocols implemented. No one really knows how it is pronounced. Russian speakers (including the Tkabber's author, who invented this name) pronounce it as [t'kabber].