Chatting


You can start talking in the channel when Snak displays the "You have joined the channel" message.
All channel members see the normal messages that you send, but you can also send messages that are only seen by a particular recipient. Those are called private messages and are explained in chapter Private messages.

Busy IRC channels can be confusing because there are usually several threads of conversation going on at the same time. Like at a party you will have people gather in small clumps and talk about something. The difference is that unlike a party you hear all the threads, all mixed together. It takes a little bit of practice to keep the threads separated but IRC does have the advantage that the text is preserved in your windows. That way you can scroll back and forth in the conversation that streams into your computer until you get a handle on what is going on.
You can turn on the Colorize the Nicks option in the Message preferences in order to assign a particular color to each speaker. That may make it easier to follow the threads.

When you join a channel you should probably wait in the background without jumping into the fray until you know what the other members are talking about.
In addition to public and private messages that are basically conversational you will see a third kind, called action messages that are used more for "environment". You can use those messages to describe moods or opinions that are intended for the whole channel. Action messages are issued by the /me command that is described in the chapter on basic IRC commands.

The input field


Depending on your preference settings the input field may exist in a single floating window or be attached to each of the windows that contains channel, queries or the profile list. The attached input fields will increase in height to make room for long messages and will shrink back to normal size after you send the message.
IntegratedInput

If the field contains more than 500 characters, the text will be sent in multiple messages as IRC puts a limit on the amount of text you can send in a single message.
The text in the field is sent to the active channel when you press return.

Up and down arrows


The input field remembers the last 10 messages that were sent and the up arrow key will leaf through the message history. The down arrow is used to store the current contents of the input field and clear it. That is done to make it easier to work with partial messages. If you are in the middle of writing a long message when something happens that require you to send a short message to someone, you can press the down arrow to store the current contents and clear the input field so that you can write the short message. Once that is sent press the up arrow until the long message is back. Then finish and send as if nothing had happened.
If you prefer to use the up and down arrows to move around in the channel text you can go to the general preferences panel and select the "Message history requires option key with up/down arrow" option. Now you can access the message history with option-up arrow and option-down arrow and use the up and down arrows by themselves to navigate the channel text.

Tab completion


The input field supports tab completion and stores a list of the last 10 people that sent private messages to you, or that you sent private messages to.
If you press the tab key while the input field is empty the program will step through the private message history.
If you have text in the input field when you press tab, the program will attempt the match the last word to the beginning of a nickname in the channel.

Shortcuts and tricks


The input field also supports the option key as a shortcut to making action messages (the "/me smiles" type of messages). If you hold down option when pressing return the outgoing message will be formatted as an action message.
You can separate text in the input field into separate lines that will be sent as individual messages by holding down shift when you press return. This does not send the text, but makes a new line in the input field.
You can drag and drop text onto the input field and it will be sent when you press return.

Styled text and colors


The input field supports certain formatting options including bold, underline and italics as well as color, according to the various IRC protocols. There is no IRC protocol to specify text font so that option is not available to the input field. You can change the channel font and the input field will match the font, but the messages you send out will not be displayed any differently when it is received by the other channel members.
To apply formatting to the text, select it and choose from the Outgoing Text Color and Style menus from the Format menu.

The user list


UserList

The user list shows the population of the channel. It's normally placed along the right side of a window that contains channels, but it can also be moved to the left side with the preference in the Windows preference panel.

When the user list is attached to a window it will show the members of the channel that is active in that particular window. Each window has an active channel but since only one window can be selected there is only one active and selected channel
It can also be moved into its own window so that there is only ont user list which then is shared among all the channels. In that case it will display the members of the selected channel.

The users in the user list are colored according to their status in the channel. A channel operator will be displayed in red, a voiced user will be green, an IRC operator will be purple, and regular users with no special privileges will be black. These colors can be changed in the User list preference panel. If you hold the mouse over an item in the user list you will get a help tag with additional information.

The term "voiced user" means that the user has the privilege of speaking in a moderated channel (channel modes are explained in chapter intermediate IRC commands). Normally the channel members are sorted alphabetically, but you have the option of sorting them by status as well. This way IRC operators come first, followed by channel operators, voiced users and normal users. An IRC operator is someone responsible for the maintenance of an IRC server.

On some IRC networks there are additional classes of operators. The person that founded the channel may have right above those of ordinary operators, and be called a SuperOp. Similarly, some channel members may be probationary operators, and have limited rights. Such users are called HalfOps. The colors for all these classes of users can be set in the user list preference panel.

The user list supports contextual menus. Contextual menus are menus that pop up if you hold down the control key while clicking on a user in the list.
You can select multiple users and the menu choice will then be applied to all that are selected.

In the Click preference panel you can control what happens when you double click on a user in the list. Normally the nickname of user that you double click on will be added to the input field but you can also specify a command to run upon the double click. The default command will open a query window which is a special kind of window, intended for a private conversation with that person.
XCommandButtonArea

The command button area is below the user list. Command buttons can be used to apply a command to selected users in the user list.
The command buttons are enabled when there is a selection in the user list. You can add, delete or edit the command buttons by using the Customize item from the Scripts menu.

The size of the command button area can be changed by dragging the divider. Snak will display as many command buttons as it can in the available area, but if the area is too small there may be buttons that are not shown.
The order of the command buttons is determined by the order in the table in the Customize dialog. You can change the order by dragging the table items around.

Shared windows


In order to use the screen space more efficiently Snak can dock multiple channels, server message panels and queries into one window. This is called window sharing. There are two different modes of shared windows. The first, called the stacked mode, stacks the channels, server message panels or queries on top of each other, so that the active panel uses the entire window. There is a row of buttons to switch between the panels. This row of buttons can be placed either above or below the stack. The second, called the tiled view, tiles the views so that they all can be seen but each of them has less space.
This picture shows the stacked mode with a window that contains two Undernet channels and a server message panel:
UndernetMacBeginnerStack

The button displays a badge when there is unread messages in the channel. The text color reflect the type of message that is unread. If you hover the mouse over the button for a few seconds, a help tag will come up and you can see the last unread message in the associated channel without having to switch to it.

This picture shows the the tiled view.
UndernetMacBeginnerTiled

Panels can be added or removed from the windows by dragging the gripper area on the left edge of the topic bar. You can switch between stacked and tiled mode in the Window preference panel.

If you prefer not to use shared window, you can turn off the Open new panels in separate option in the Window preference panel. That will make Snak open new panels in separate windows by default.

When you dock channels in a window they will share the input field and user list. The currently active channel is surrounded by a blue border and is in control of the input field and user list.

Private messages


IRC conversations can be strange indeed. Several topics seems to be going on at once; people are coming and going all the time, filling the channel with hellos and goodbyes; your screen will sometimes freeze for a while and then suddenly spew out more text than you can possibly read. Worst of all, you will see rejoinders to comments that were never made, or amused reactions to a joke whose punch line you never saw. It does not take long before you are asking yourself, Am I missing something here?

The answer is yes, you are – and it has nothing to do with the program you are using or the vagaries of the Internet. No, the point is that on IRC the public conversation is only some of what is going on. Underneath the general run of chat, like a discreet whisper lost in the rhubarb of a cocktail party, are private and semi-private conversations that you are not made aware of unless somebody wants you to hear them.

The command mostly responsible for this is: /msg nick text Example: /msg Perry Didn’t we meet yesterday on #chat ?
Perry sees "*YourNick* Didn’t we meet yesterday on #chat ?" You see "YourNick:->Perry: Didn’t we meet yesterday on #chat ?" No one else see anything.
When you receive a private message it will usually be colored red and be accompanied by a sound unless you have changed the Snak settings.
The /msg command has two useful variations: /msg . sends to the last person you messaged. /msg , sends to the last person that you received a private message from.
Using the period to stand in for somebody you are messaging can be very useful but the comma for "whoever last messaged me" can be dangerous. You could be concentrating on composing an affectionate message to Millie, and completely miss the fact that a new message comes in from DavyJ. You hit your enter key with a flourish, and off goes your Millie message to DavyJ. This usage is probably responsible for many misdirected messages, and misdirected messages can be embarrassing. Furthermore, messages that accidentally become public rather than private because you get the syntax wrong can be very entertaining (for the other channel members that is).

If misdirected private messages plague you then you may find the command /oops useful. /oops is an alias (see the chapters on scripting for more information) but it's used just like a built in command.

The syntax is: /oops intended-nick The result is that "Sorry, that wasn’t meant for you" is sent to the "misdirectee" and the original message is sent to the intended nick.
However, you can avoid misdirected private messages entirely by using the /query command which is described in the next chapter. The query command opens a special panel intended for private messages to and from one recipient only.

The query command


When you use the /msg function the display of the private messages is mixed in with the channel conversation. Additionally you have to remember to type /msg nick for every message can lead to potential embarrassment when you forget it.

If you prefer to have a separate panel for an extended private conversation with someone you can use the /query function. /query nick
This command will open a new private message panel and send messages that you write in that panel as private messages to nick. When replies come in then they are routed to that particular panel.
As a shortcut you can combine opening the panel with sending a message: /query nick text
In the query panel you do not have to type /msg nick. The panel takes care of sending the messages directly to nick.
There is an option under the general preferences to automatically open a query window when you get a private message, and there is also a Respond item in the Scripts menu to open a query window to the last nick that sent you a private message.

The panel bar


If you have multiple channels or query panels open it can be difficult to keep track of the traffic and see when hew messages arrive. Snak provides a panel bar to give you an easy way to see in when new text arrive and to quickly switch to that channel or query.
PanelBar

In this example you have two channels open and a server message panel (Undernet). You also have a window that contains panels for the Contacts list, the Actions list and the Profile list. The channel bar contains a button for each panel and their colors tell you which is the current panel and which panels have new messages. If you hover the mouse over a button for a few seconds you will see a help tag with the last unread message in the panel.

The panel bar is turned on and off in the Windows preference panel. In the example above the channel bar sits in a regular window, and will as such continue to be visible even if you switch to another application. It can also be configured to sit in a floating window that will then always be on top when you run Snak, but will disappear when you switch to another application.

The panel bar can also be combined with the floating input field so that you more easily can switch between the channel that the text in the input field will be sent to.
PanelBarFloatingInput


Logging messages


Often you want to keep a record of conversations in the channels or query panels. Snak can be set to automatically log everything into a text or html file that you can read later.
Logging can be started manually by using the Start Logging command from the file menu, or by turning on automatic logging in the Logging preference panel. In the case of manual logging you will be prompted where to save the log file, and for automatic logging you can specify the location to use in the Logging preference panel.
There are several options that can be used to control how the automatic logging works, like if a separate folder is created for every day.

Lag


The server to which you send your messages is responsible for passing them on to other servers which in turn send it to the IRC clients of the other channel members. Normally this happens almost instantaneously but sometimes you will experience what is called "lag". Lag means that one of the servers between you and the other channel members is overloaded and need to delay the messages.
When the delay clears up you will suddenly see a surge of messages in your window and you will wonder what happened. Normally conversations in IRC are pretty much real time but in a lagged situation a significant amount of time (10 seconds to a minute or more) will pass before your messages reach the other members and vice versa.

Server Splits


As mentioned above, the server you are connected to, is also connected to other servers so that it can relay messages. Sometimes that connection goes down, and if that happens it's as if the IRC world suddenly splits in two. Those people connected directly to the server can continue as usual, but their messages aren't going anywhere outside of the server. All the other channel members will suddenly seem to disconnect en masse and you may even find yourself completely alone in the channel. This phenomenon is called server splits or server desynchs. The connection can go down due to malicious actions or simple overload. You can try switching servers with the Cmd-E command to find a server on the other side of the split, but the connection will eventually be restored. When that happens there will be a stream of reconnects and everybody comes back.