IRCTK(1)

NAME
irctk - Internet Relay Chat client

SYNOPSIS
irctk

DESCRIPTION
irctk is a graphical IRC client, designed to be simple and extensible, with customizable transports and a powerful extensions system.

  Window
The irctk main window is divided into three parts:

•   The channels list on the left

•   The chat window on the center

•   An optional list of users on the right

The channels list shows all the networks irctk is connected to, along with all the public channels joined and all the private chats.

If a new message is posted in a channel, the channel's name changes color in one of the following, in ascending order of priority:

Blue
    An informational message from the server, like when a user joined the channel.

Orange
    A user sent a new message in the channel.

Purple
    The irctk user was explicitly mentioned by nickname in a message. The message itself, in the channel's chat window, is shown in purple.

Double clicking on a network name collapses, or expands, the list of channels associated with it. Other possible mouse actions on the networks list are:

Button-1 click
    Select and shows the channel.

Button-2 click
    If on a selected network name, causes the specific network connection to be restarted.

Button-2 double-click
    If done on a selected channel, simply leaves it. If done on a selected network name, all the channels are closed and the network forgotten, with it's configuration deleted.

Button-3 double-click
    If done on a selected network name, the configuration dialog is opened.

The chat window is composed by a read-only area showing the channel's topic, a messages area showing the channel messages and an, optional, text area used to write and send messages with the user's nickname on it's left.

The network related channel, named after the network the client is connected to, shows server related messages and all the messages not routable to any private chat or joined channel.

A remote user sending a direct message to the client, causes a new private chat to be opened automatically, writing the received message there.

Messages are showed in chronological order, with the most recent at the bottom of the main messages area. It's possible to scroll the messages by using the messages area scrollbar, the mouse wheel or the Page-up and Page-down keys. Selecting some text in the main messages area and clicking with Mouse Button 3 on it, causes a plumbing event to be fired, with the selected text sent to the extensions subsystem to be handled (Like opening a link, or sending a notification to the system).

Sending a message to a channel is just a matter of writing some text in the message area and press Enter. At the moment, only single line messages are supported.

On a joined channel, on the right side of the window you can find the list of users in the channel. Users are shown with different colors:

Black
    A normal user.

Red A founder.

Purple
    Protected user.

Green
    Channel operator.

Orange
    Channel half operator.

Blue
    Voiced user.

Double-clicking on a user's name opens a private chat with it.

  Configuration
irctk is designed to remember your configured networks and joined channels automatically. When irctk is started, all the configured networks and joined channels from a previous session are automatically joined for you. Of course, closing a channel or a network, makes irctk forget about it forever.

A new connection can be created by clicking on the “connect” entry in the file menu. Required fields are:

Network
    A name to give to the network.

Nick
    Your IRC nickname.

Real name
    Clear enough.

User
    IRC user sent with the USER command. Useful also to configure bouncers.

Password
    Your IRC password, used for authentication with NickServ.

Connection string
    The transport program to use. For example, connecting to libera.chat on OpenBSD using netcat, with TLS can be done with:

        nc -c irc.libera.chat 6697

    Of course, it's possible to use other programs to achieve the same result.

The font can be customized, application-wide, with the “font” entry in the “edit” menu.

  Themes
irctk supports the use of different themes. Themes can be loaded and selected from the “themes” entry in the “edit” menu.

The entry have two sections: on the top, the list of themes loaded in the application, with the theme currently in use being highlighted. To use a different theme, just click on it's name, it will be highlighted and the application layout will change to reflect the selection. The selected theme will be automatically loaded at the next application's startup.

On the bottom, there is a view of the TCL files used by the application to load the themes on the top. Adding new themes to the application, is done with the “Load” button, where you will need to select a TCL file containing the instructions for the new theme to be loaded. irctk will remember the list of loaded files at the following startup.

The “Unload” button, removes the files selected in the files list, both from the running application and from the saved configuration. However, this will not remove any available theme until irctk is restarted.

  Extensions
irctk extensions are programs that can be started by irctk to extend it's functionalities. Extensions located in the ${PREFIX}/libexec/irctk directory are loaded automatically at startup. This is useful for packagers that wants to provide a better experience on their platforms. Other extensions can be loaded by the user at runtime, through the “extensions” entry in the “edit” menu.

All the extensions loaded by the user are remembered by irctk when the application is closed, unless the extension's executable is deleted from it's location, or the extension is explicitly unloaded by the user.

An extension, to be started properly, must have the execution permission bit set for the user that tries to run it.

Extensions can create, so called, “read-only” channels, nothing more that fake channels used to convey extension-specific messages, or diagnostic errors from the extension itself (see the search extension for an example). It's not possible, for the user, to write to such channels, but they can be closed with the mouse like any other.

  Logs
Conversations logs are stored in the ${HOME}/irc/logs directory, with a subdirectory for every configured network. Logs are simple text files identifiable by the channel's name, that the user can navigate either with the canonical UNIX tools, like grep(1), or with a dedicated extension from the irctk interface.

Log files are formatted as follows:

    YYYY-MM-DDTHH:MM:SS <username>: message text

Conversations logging can be disabled or enabled using the “log chats” entry in the “edit” menu. Channels logging is enabled by default.

  Commands
irctk of course, can send all the RFC1459 commands to a server. IRC commands must be started with a forward-slash (‘/’) in the message box as the very first character with the command name immediately following it, followed by any argument separated by spaces.

Not starting the message line with a forward-slash, implies a normal chat message to be sent to the current channel (a PRIVMSG, in essence).

For example, the WHOIS command, used to see a user information:

    /WHOIS foo

Show in the GUI information about the user “foo”.

Commands are both sent to the server and to the extensions subsystem in order for one or more extensions to be able to perform any action following it.

irctk extends the list of standard commands with some custom ones:

/ME arg1 arg2 ... argn
    Derived from mIRC, used to send messages in third person talking about yourself.

/QUIET
    Enable or disable the quiet mode. Do not show informational messages in the GUI, but save those in the channel's log file.

    Toggling the mode affects all the networks and channels the user has joined.

/CHATMODE
    Show if QUIET mode is enabled or disabled.

/DND arg1 arg2 ... argn
    Do not disturb.

    Mark the user as “away” on all the server at once. Pretty much like sending an /AWAY command to any single network the user is connected to.

    To come back from “do not disturb”, send the /DND command without arguments.

    When the user is marked as “away”, the user's nick near the message box is greyed-out to notify the user of it.

/SWITCH channel
    Switch to a different channel. Implemented to let extensions command the GUI. Should not be used directly.

/RAISE
    Raise the irctk window in foreground. As for /SWITCH, it should not be used directly, but extensions may find a proper use for it.

Extensions commands are custom IRC commands handled by loaded extensions. Such commands are not sent to the IRC server. To send an extension command, prefix the command name with two forward-slashes (‘//’) as the first two characters. An example is the SEARCH command implemented by the search extension:

    	//SEARCH regexp

The command will be sent to all the extensions asking for it, but it will not be sent to any of the IRC networks the user is connected to.

FILES

${HOME}/irc/logs
    irctk logs directory.

${HOME}/.config/irctk
    irctk configurations directory.

${PREFIX}/libexec/irctk
    irctk default extensions directory.

SEE ALSO
irctk-extensions(7) irctk-themes(7) irctk-ext-sdk(n)

STANDARDS
J. Oikarinen, D. Reed, May 1993, RFC 1459, Internet Relay Chat Protocol.

The IRCv3 working group, New core protocol specification, https://modern.ircdocs.horse/.

AUTHORS
Andrea Biscuola a@abiscuola.com Omar Polo op@omarpolo.com