Settings and customization

The preferences in Snak are separated into the application preferences that are accessed from Preferences… in the Snak menu (Cmd-,) and the channel specific settings that are found under Channel Settings and Channel Management in the Edit menu. Changes to the preferences will usually take effect immediately and changes to the channel settings will take effect when the dialog is closed.

The application settings cover such things as the Appearance themes, message format, highlighting, window layout and more. The channel settings cover such things as the selected appearance, channel modes and visible activity.

As a shortcut you can also access the channel settings by clicking on the channel topic in the channel panel. To access the channel management dialog instead, hold down the option key when clicking on the channel topic.

In addition to the application and channel settings, the Script menu, the contextual menus and the Command Buttons are customized in the editor that is accessible from the Customize item under the scripts menu.

Menu and Command Button Editor

Contextual menus are popup menus that are displayed when you hold down control and click the mouse. There are contextual menus in several places in the application including the user list. The Command Buttons are located below the user list.

To open the editor choose Customize from the Scripts menu. The editor has tabs for each area that can be edited. On each tab are buttons to add, delete and edit the items as well as a button to restore the default setup. To add a new item press the Add button.

The description field contains the command that will be performed when you press the button or select the menu item.

You can use all the elements of the ircII scripting language, including variables, functions and other commands. Please see the scripting chapter for more information on scripting.

The popup allows you to select a number of the most common variables and see what they mean. The Insert button will insert the variable in the description field at the cursor.

Command buttons

Command buttons are located below the user list and are enabled when there is a selection. The order of the command buttons can be changed by dragging the items around.

Scripts menu

The scripts menu is intended to mostly operate on selections in the user list but the items can be used at any time. The scripts menu can contain hierarchical menus, and the description of each item may contain one or more periods to indicate the submenu level.
The default Scripts menu has a number of submenus, including multi-level submenus. If you look at the menu while comparing to the editor display the procedure for creating submenus should become clear.

In this image you see the item called "Other" which has no description attached to it.
That is a top level item that has a submenu. The following items are ".Whois" and ".Away" but with one leading period. That means they are item in the first level submenu of the “Other” item, and since ".Away" has no description that means it has a submenu.

Then comes "..Set Away..." and "..Set Back" with two leading periods. That means they are items in a second level submenu belonging to the ".Away" item.
Thus the submenu structure is directly reflected in the table by the number of leading periods.

Popup menus

Contextual menus, or simply popups, are displayed when you hold down the control key while clicking in the user list, channel list, channel, query or server message panels. To switch between the different menus use the popup button above the table. If you have a two button mouse, one of the buttons, usually the right one is used to display the menu.

The contextual menus use the same method as the Scripts menu to specify submenus.

Channel settings

The Channel Settings dialog is accessed from the menu item under the Edit menu, or by clicking on the channel topic.

When you join a channel for the first time no specific Appearance theme is set for the channel, and it will use whatever Appearance theme was set as the default. When the default theme changes, the appearance of the channel will also change. In order to use a specific appearance in a channel, it can be selected in the Channel settings. That will make the channel use that theme, no matter what the default theme is set to.

Each channel has its own record that can be edited independently.

If you are in a very large channel (200 members or so) then the coming and going of people can completely drown out the normal conversation. In that case you would open the channel settings and turn off the display of Join, Leave and Quit messages. If that's still not enough then you can turn off the last server messages, so that you are left with just the normal conversation.

If there's still too much traffic then you can start selectively ignoring channel members, especially if some of them are bots (automated IRC programs) that spew large amounts of text into the channel. You can also chose to redirect the bot output to a separate filter panel if you want to keep it but not have it clutter up the channel text. To do this, define an Action and enter the nicks of the channel members you want to ignore or redirect.

You can also use a highlight Action to colorize messages from certain channel members whose messages you care about. That way they stand out much more clearly from the channel traffic.

Channel Management

The Channel Management dialog contains functions of use to channel operators, such as the setting mode of the channel, the topic and the list of banned users.
In order to make changes in these characteristics you will need to have operator status in the channel. Channel operators have special privileges and are responsible for channel maintenance. You will only become a channel operator in an existing channel if the other operators have known you a long time and you are a respected member of the channel.


The concept of channel modes and the meaning of the various flags is fully explained in chapter intermediate IRC commands. When you make changes in the channel modes from this dialog, Snak will build a command that is sent to the server when you close the dialog. You can only do this if you have channel operator status in the channel.

Each channel mode checkbox has a helptag that provides additional information about the mode.
As explained in the intermediate IRC command chapter there can be many different channel modes and the dialog only provides access to the most common ones. If the server provides modes that are not covered here you can just use the /mode command to set or clear the flags manually.


Usually, changing the channel topic (the descriptor line that is displayed in the channel window) can only be done by a channel operator. If you are so lucky then you can change the channel topic from this dialog. The edit field support formatting, including text style and color according to the IRC protocols. There is no protocol for font changes so that option is not available.

To change topic text style or color, choose Outgoing text Style or Color from the format menu.
You can also set the channel topic outside of this dialog with the /topic command.
/topic new topic will set the topic to "new topic" if you have the right to do so. If not then the server will politely tell you that you are not a channel operator so you can’t do that.

Ban List

As explained later, in the IRC commands chapter, channel operators can ban certain people from entering a channel by issuing a ban command.
This command takes the form of "/mode #channel +b ". In Snak you can manage the ban list and, issue, edit and remove bans much more easily from the ban list in the channel settings. This feature only works if you have channel operator status.

You can also issue channel bans by using the command button under the user list after selecting the offender in the user list. That will bring up a dialog where you can define the ban mask, and select a witty kick message for when you send the offender on his way.


The General panel contains settings of a general nature. Each of the checkboxes has an associated helptag with additional information.

The Reconnect when disconnected option will reconnect once if you get disconnected. It will not automatically reconnect more than once to avoid you getting blocked from the server. Once you successfully reconnect manually, the automatic reconnect works for one disconnect.
Be careful about using the rejoin when kicked feature as it might get you banned from the channel outright. There was probably a good reason you were kicked in the first place. The other channel members are giving you a chance to cool off.

The "Open Query panel on private message" setting will open a panel for a private message exchange when you receive a private message from someone. Private messages and the query command is explained in private messages and the query command.

It can be problematic when a private message panel opens suddenly while you are typing a message to someone else. If the panel is set to become active (not the default choice) then the message will be sent to this panel when you press return.
The “Use crisp text on OS X” option turn off anti-aliasing of text on OS X.

Among the server messages you will receive are notices of a changed channel mode. The Translate Mode Changes checkbox determine how Snak presents this information. Mode flags are described in the intermediate IRC commands chapter.
For instance, when someone is opped Snak can either display the raw "mode change +o on Nick by AnOp" or translate it to "AnOp has opped Nick".


In addition to normal channel messages, you will also receive messages from the server as well as information or error messages from Snak. Normally these messages are not marked in the nick column, but you can make Snak use "***" or "Server" for server messages, "Info" and "Error" for information and error messages respectively.
Other options controls whether the nicks are bracketed by "<" and ">". The style display matches the layout of older IRC clients like ircII.

The timestamps option will add timestamps to the nick column like this: [9:54] pac_mania: was that a 1024x768 reduced to 800x600? [9:54] Nelluk: hmm where do i set the desktop picture?
This is normally not necessary because Snak remembers when a particular message was received, and will show a help tag with this information if you place the cursor over the nick and wait a few seconds.

Editing an Appearance Theme

To edit an Appearance theme, press the Edit button. A drawer will appear with all the settings of the theme. Any changes are reflected immediately in the sample text and the channels that use the theme.

The channel panels contains a column for the nicknames and a text area for the messages. Between them is a divider line that can be visible or invisible.

The “Show nick and text divider line in color" option will make Snak display a thin line in this divider to make it easier to see. The divider can be moved to allocate more or less room to the nick column.


The windows panel is used to configure the layout of Snak's windows.

Most of the settings in this panel will immediately affect the open windows so you can directly see the effect of a change.

The user list and input field can either be integrated into each window, or set to occupy their own windows. When the user list and input field is integrated into the window they are shared amongst the panels in the window. There is always an active panel, and if that is a channel panel, the user list will display the members of the channel. The input field will send its messages to that channel when you press return.

The windows can accommodate multiple panels in order to minimize the number of windows on the screen. You can see examples of the stacked and tiled versions of shared windows on this page. If you choose to use the stacked view the buttons can go above or below the panels.

The Open new panels in separate windows preference will control if Snak groups new panels together by network, or if it will give each new panel a separate window. An panel is the name for the text area and information bar that goes with each channel, query, DCC chat etc.

If there are no channel buttons in the window you can also click and drag in the topic area of a window and drop it onto another topic area to dock a window.
The panel bar is a window that contains a button for each active channel, query, console etc. It can be used to easily monitor the windows for activity and quickly switch between them.If you hover the mouse over a button with unread text, a help tag will come up with the time and text of the last message.
The "Inside Floating input field" option is only available when the input field is floating.


Highlighting of messages is done with an Action and this panel allows you to easily set up a highlight Action.If you press the "Make an Action" button Snak will open the Action dialog preset to an event of "On any normal message" and a response of "Highlight" .
If you want to highlight a message that contains a particular word, like "snak", just enter it in the message field.
The Action chapter has additional information on the support for wildcards. Wildcards are special characters that you can use to make the term match a particular pattern.

Behind the scenes Snak will interpret the text you enter in the message field as if it had a * character before and after the text.
The * characters are important as they are wildcards that stand in for any other string. That makes the highlight Action apply to any message that has "snak" somewhere in it.
The Action chapter has additional information, but if you only want the highlight Action to apply specifically to a message that is "snak", and not to any message that happens to contain "snak" then you can put quotes around the text in the message field.

You can also choose to highlight all messages from a particular nick by entering the nick in the nick field. Leave the message field blank in this case.
The highlight action can be set to use a particular color. If that is the case then the badge with the unread message count will use this color as the background so that you can easily see in which channel the highlight happened.


The "Allow speech" allows or disallow the use of speech throughout the application. This must be turned on in order for speech Actions to work.

Actions are used to control how Snak uses speech, and this panel allows you to easily set up a speech action.If you press the "Make an Action" button Snak will open the Action dialog preset to an event of "On any normal message" and a response of "Speak message".

If you want to speak messages containing a particular word, like "snak", enter it in the message field as "snak".
You can also chose to speak messages from a particular nick by entering the nick in the nick field. Leave the message field blank in this case.


DCC is an addition to IRC which allows you to send and receive files, and open a special kind of chat session that is free from the the lag and stability problems that sometimes plague an IRC connection. DCC stands for Direct Client to Client and refers to connections directly between your machine and that of someone else.

DCC is subject to some limitations and complications due to the common use of firewalls, routers and wireless access points.

You either act as a client and make outgoing connections, or as a server where your make your machine wait for incoming connections.
Being a client usually works without problems. That's when you receive a file that someone sends to you or accept a DCC chat request from someone else.

When you try to send a file or initiate a DCC chat, you are taking the role of a server and your IRC program will tell the other side which internet address and port he should attempt to connect to. The DCC preference panel allows you to set Snak up to use the correct public internet address and port range.

You can find more information about DCC in this chapter.

NAT routers and AirPort

Snak will attempt to automatically attempt to determine your public IP address if the "Auto configure" option is turned on.
The second step in making DCC send work from behind a firewall or NAT router is to restrict the port range that is used, so that you can configure the NAT router to route this well defined range of ports on to the machine that is running Snak.
The third step is the actual configuration of the NAT router or AirPort network to pass these ports on to the machine that is running Snak. That subject is impossible to cover here because there are so many different systems.

Autoaccept of incoming DCC chat requests or filetransfers

Autoaccept of DCC offers is done with Actions and this panel allows you to easily set up a DCC accept Action. If you press the "Make an Action" button Snak will open the Action dialog preset to an event of "On DCC chat offer" and a response of "Accept DCC chat".

You can change the event to "On DCC filetransfer offer" and the response will then change to "Accept DCC filetransfer".
To autoaccept DCC chat or files from a particular nick, fill out the nick field.
To autoaccept files of a particular name or extension, fill out the filename field. The field supports wildcards, so use "*.MP3" to autoaccept all files with the MP3 extension.

If you choose the "Accept DCC filetransfer" response you can select the save location for the transfer. By default the location will be the desktop.
You can provide another save location in each DCC accept Action so that you may chose to save MP3 files in one location, pictures in another etc.
If there is a filename conflict between an existing file and a file that is being automatically received the new file will be renamed.


In the Sound panel you can turn individual action sounds on and off and control the response to beep requests.

Selecting one of the checkboxes will play the sound so that you can hear what it sounds like. The private message sound is played whenever someone sends you a private message, and comes in two flavors. The (loud) checkbox is enabled whenever the Private message sound is enabled.
You can also control how Snak deals with sound requests that someone sends to the channel.

A sound request is sent with the command "/CTCP #channelname SOUND soundname.wav" and will cause that sound to be played by the other members of the channel, provided they already have the sound file. The command does not send the sound file out, only a request that the other channel members play their local copy of the sound.

If you receive a sound request and you do not have the sound file, it's a convention that it can be requested with a special private nick message. To enable this, select the last checkbox. If the other client supports this, it will send the file via normal DCC.
It's quite annoying to the senders if you turn this on and then neglect to accept the incoming filetransfer. You can set up an Action to automatically accept any MP3 or WAV file but nothing else.

If you want to use IRC to download MP3 files, you can use the MP3 request list to automatically keep a sorted list of all the MP3 requests that happen in the channels you are a member of. There are many channels dedicated to the exchange of MP3 files, and you can find then through the channel list.
The MP3 request list will appear as a tab in the list window, and can be opened with Cmd-P or by with the MP3 Request List in the windows menu.

The MP3 request list page has more information on how to use the request list, and how to use the Delete requests option.


In the Clicking panel you can select what happens when you double click in the user list and the contacts list.
For the user list the options are to either put the nick in the input line, or run a script or command that can do something with the selection. For the contacts list you can either open the edit dialog or execute a command.

By default the commands that are defined opens a private message panel, called a query panel. Anything you type in a query panel is sent as a private message.
In this case the fields contain a single command, but if you define an alias in one of the files in the script folder you can perform complex operations on a double click.

As explained in the scripting chapter $E and others are called scripting variables. When the script is run, these variables will be replaced by what they represent.
$E represents the nick of the selected nick in either the user list or the contacts list, and $* represent the contents of the input line.
query $E -- this will open a query panel to the selected nick msg $E $* -- this will send the contents of the input list as a private message to the selected nick.

An alias example:
If you defined the following aliases in a script file and loaded it, you could replace "query $E" with "OpenQuery" and "msg $E $* " with "SendInputField" in the panel above and the behavior would be the same. Then you could extend the aliases to do precisely what you need.

alias OpenQuery {
query $E

alias SendInputField {
msg $E $*


The Automatic logging feature is controlled from the Logging panel.

As the name suggest, the "Activate auto logging" check box turns Auto logging on and off.
Use the Select… button to choose the folder in which the log files are created. In this folder Snak will make a folder for each profile, and the day folders will be optionally be created inside each profile folder.

The log files will be called "#channel name month/date" and if there are duplicates Snak will append a '#' and a number in order to make the files unique.
The format of the log files can be set to either plain text or HTML 4. If you choose HTML than Snak will place a style sheet file inside each profile folder which controls the presentation of the log files. You can edit this file in order to change the way the log files look without changing the actual contents of the files.


The Guardian panel is intended for parents or teachers that want to limit the channels or functions that their children or students can access. Initially it can be freely accessed, but once you fill out the password you will have to provide it to access the panel. To remove the password protection and turn off the Guardian features, empty the password field.
Snak intentionally only asks for the password once per session, and will thereafter remember that you are the supervisor.

You can selectively turn each feature on and off with the checkboxes next to each feature if they have been activated by providing a supervisor password. You can specify that channels whose name contains certain words are off limits, and you can specify certain words that may not be displayed. If they do, the program will block the message unless the user provides the supervisor password.