Chat-O-Matic Documentation

Chat-O-Matic is a multi-protocol chat program based on Caya, which has its own roots in the IM kit project. Several protocols are supported, including IRC, XMPP, and more through libpurple.

Main window

Room list

Lists all joined chats that are attached to the current window, ordered by account. Clicking a chat will select it, changing the text buffer, user-list, and room header. If you click on an account's list item, then that account's logs will be shown instead: This might include anything from MOTDs to error messages, depending on the protocol.

Room options

If you right-click on a room's list item, you can toggle several per-room options, including:

FlagDescriptionDefault
Auto-join If the room will be joined after every start-up
Log messages Whether or not messages will be logged to disk
Notify on every message Notify if any message is sent to the room
Notify on direct-messages Notify if the user is mentioned, or if message received in one-on-one chat

Room header

This little section displays a room's name, topic, and icon.

If you have permission to, you can also change a room's topic by clicking on the topic text, typing what you'd like it to be, and hitting ENTER. After hitting ENTER, the text will change back to the previous topic, pending the protocol or server— after which it will update to the new topic.

Here, the room name is “#haiku” and the topic “Open-source operating system […].”

User list

This area has a calm, undemanding job— show a list of users in the room. On right-clicking a user item, you'll see a pop-up menu with at least User info….

Moderation

Depending on your user's permissions, you might see more than User info… in the user-list pop-up menus: Ban user, Kick user, Mute user, Deafen user, and their reciprocals (Unmute user, Undeafen user).

By moderating through this right-click menu, though, you can't attach a message— sometimes, for example, it's useful to give the victim a reason that you've kicked them in the shins. For that, you can moderate through commands as well.

Chat input

With the text-box, you can send messages and run commands. Type what you like, and hit ENTER to send. If you're typing someone's username or nickname, hitting TAB can auto-complete it.

Messages don't necessarily have to be only one line long— hence why you can resize the text-box. ALTENTER starts a new line. If you get lost, Page↑ and Page↓ are your friends.

Commands

Commands let you perform some special action— they vary by protocol, but there are some standard ones you can expect to work:

CommandDescription
/helpList all commands for the current protocol
/invite USERInvite a user to the current room
/kick USER MESSAGEDisconnect a user from the current room
/ban USER MESSAGEDisconnect a user and prevent them from re-joining
/unban USERUndo a user's ban
/deafen USERPrevent a user from receiving any messages
/undeafen USERUndo a user's deafening
/mute USERPrevent a user from sending messages
/unmute USERUndo a user's muting

As you might be able to tell, most of these are just aliases for moderation through the user list.

Status area

In the status area, you can see your avatar (how cute!), change your nickname, and update your current status.

Clicking on the nickname text-box (here it's “jaidedim”), you can then edit your nickname, hitting ENTER to update. After hitting ENTER, the text will change back to your previous nickname, pending the protocol or server— after which it will update to the new nickname.

The status drop-down menu lets you change the status for the currently selected account (here it's “Available”).

There is, next to the status menu, an account menu. By default “All” (the asterisk) is selected, meaning that any changes to status or nickname will apply to all accounts. If you'd like to change the nick or status of only a single account, you can select it from this menu.

In the Program menu, you'll find:

In the Accounts menu, you'll find a list of your accounts for easy management. Through this menu, you can also select the Accounts→Manage accounts… item to see the account management window, which lets you add and remove accounts.

In the Chat menu, you'll find:

Chat→Find… (ALTF) will open a TextSearch window for searching the current room's logs (so long as logging is enabled). The other items are related to room creation/joining.

In the Roster menu, you'll find:

  • Edit roster…
  • Invite user…

In the Window menu, you'll find two items that make switching between rooms faster— Window→Up (ALT) and Window→Down (ALT).

Preferences window

Selecting Program→Preferences through the menu-bar (ALT ,), you'll see the Preferences window. Most of the options should be self-explanatory, but there a couple that are noteworthy:

The Notifications tab lets you toggle whether or not you receive message-related notifications and whether or not you'll be notified on a connection/disconnection.

You can also attach specific sounds to notifications through Haiku's Sounds preferences, brought up through the Edit sounds… button. The beeps configurable through Sounds are Chat-O-Matic mention and Chat-O-Matic message.

Roster/user windows

Roster and user-selection windows (as in Roster→Edit roster…, Roster→Invite user… and Chat→New chat… from the menu-bar) display a list of your contacts, allowing you to select one.

Through the account drop-down menu in the bottom-left corner, you can filter the list, showing only contacts of a specific account. In this example, “jaidedim-xmpp“, an XMPP account, is selected.

By typing into the text-box at the top of the window, you can search through the shown contacts— here, all contacts matching “Ash” are shown. If you have an account selected, you can also use this text-box to manually type in a username for selection. In this window, since a specific account is selected, “Select user Ash…” is an item in the list.

Room creation/join windows

With Chat→Join room… and Chat→New room… in the menu-bar (ALTJ and ALTN, respectively), you'll see a window like the one above. For each protocol, the options and text-boxes shown will differ— for IRC, as in this image, the only option is the channel-name.

You can select the account to join/create from through the account drop-down menu in the bottom-left corner. Here, the account “oftc-irc” is selected, an IRC account.

Chat→Create chat… (ALTM), in contrast, is used for creating one-on-one chats, and opens a user-selection window instead.

Room directory

The room directory (accessible though Chat→Room directory… in the menu-bar) lets you browse and join publically listed chatrooms— a feature used extensively for IRC, XMPP, and some libpurple add-ons.

Like other dialogues in Chat-O-Matic, you can select a specific account to act on though the bottom-left account dropdown menu. In this image, “All” accounts is selected, so rooms available to all the user's accounts are shown.