# The &kopete; Handbook

## Introduction

### &kopete;, the &kde; instant messaging client

#### Before starting...

If you're not familiar with Instant Messaging, please read the Getting Started section to learn about this wonderful world before continuing.

#### What is &kopete;?

&kopete; is the &kde; instant messaging (&im;) client. It allows you to communicate with your friends and colleagues using various instant messaging services. A single program is easy to learn and convenient if your friends or colleagues use more than one &im; service.

&kopete; is designed to integrate well with your &kde; desktop; to make it immediately familiar. The user interface is clean and simple, without any frills to distract the user. At the same time, &kopete; aims to make communication the focus of &im;, by removing the differences between different &im; systems. One feature &kopete; introduced to support this is the Metacontact, combining the various means there are to contact someone into a single person in your contact list. Other multiprotocol instant messengers list the same person's various &im; accounts separately, making it confusing for non experienced people. &kopete; makes life easy: a metacontact is a person, and contacts are ways to communicate with that person. You will recognize contacts in a metacontact easily as small icons representing the &im; services you could use to communicate with that person.

&kopete; is intended for all levels of users. Out of the box, it supports a minimal set of functions to make chatting as easy as possible. More advanced users can add extra functions such as Statistics with &kopete;'s plugin system.

#### More &kopete; Information on the Web

If you need to contact the team, the &kopete; developers' mailing list is hosted at https://mail.kde.org/mailman/listinfo/kopete-devel.

If you want live support, there is an Internet Relay Chat channel for &kopete; where you can find the team discussing technical (well, not always) issues or just hanging out. You can use any IRC client to join the channel (including &kopete;), just add an IRC contact and use `irc.freenode.org` as the server and `#kopete` as the channel name. See you there!

### Introduction to Instant Messaging

What is Instant Messaging (&im;)? &im; is a way for you to communicate instantly with your friends over the Internet. That might not sound so different to email. Have you ever noticed how cumbersome it is to have a brief conversation via email? You have to click Reply to each message, then find the right spot in the message to type something new, then send it. Then you have to wait for the next message to arrive! &im; lets you to have a conversation almost as naturally as on the phone or face to face, by typing messages into a window shared between you and your friend's screens.

Another difference between &im; and email is that with &im; you can see your friends' presence, that is, whether they are actually on-line at the same time as you. This lets you send messages truly instantly, instead of sending off a mail and having to wait for your friend to check their mailbox. An &im; message pops up on the other person's screen as soon as you send it. Of course, if you'd rather not be interrupted, you can change your own presence so others will know not to disturb you.

There are lots of other fun and useful &im; features you can explore with &kopete;, like group chats, file transfers and emoticons that reflect your mood. Read on to find out more!

## Getting Started

To use &kopete; you need to set up one or more accounts for the instant messaging services you wish to use.

You've probably already chosen a messaging service, either because you already use &im;, or you need to use the same service as your friends. If you don't fit into either of these categories, please consider using a messaging service based on open standards, because these are designed for use by Free Software. Other messaging services are prone to changing the underlying technology without making the details freely available, making them harder for Free Software developers to support.

The messaging services that &kopete; supports that are based on open standards are Jabber and IRC.

The following section assumes you are registered with an &im; service already. If not, you can register with Gadu-Gadu, and Jabber from inside &kopete;; for other services, you'll have to register using their respective web site before creating an account in &kopete;.

### Creating Accounts

To create an account, use Settings Configure... to display the Configure window.

The Configure window is the main way to set up and customize &kopete;. On the left a column of icons control which aspect of &kopete; is being configured. Click the Accounts icon. The main pane will change to display the account management pane. This is currently empty, but will soon list your &im; accounts. Click Add Account to display the Account Wizard.

The Account Wizard helps you create an &im; account. On the first page, you are asked to select the messaging service that you'd like to use. Click one of the services shown and then click Next. On the following page, you should enter your registration details for that instant messaging service.

Most services just require you to enter a username or unique identifying number (UIN) and password. The special purpose services Winpopup and SMS work slightly differently, so please see their specific sections. There are a couple of other options that apply to most services that you should look at:

Remember password

- When this is checked, &kopete; will store the password for you, so you don't have to enter it every time you connect to the &im; service. If you are security-conscious or want to limit access to the &im; account you can leave this unchecked.

Connect at startup

- When this is checked, &kopete; will try to connect to the &im; service as when it starts. If you use a LAN, DSL or other always-on connection, this is appropriate; dial-up modem users should turn this off and connect manually when you have dialed up.

Once you've entered your &im; details, you can proceed to the Finished! page and then dismiss the wizard and the Configure window.

### Go Online and Start Chatting!

Now you'll notice that an icon representing the account has appeared in the status bar at the bottom of the &kopete; Contact List window. This represents your current presence for this account. Right click on it and you can go online from the menu that appears. The status bar icon will animate while &kopete; connects to the &im; service.

Once you're online, if you've used this &im; service before, your contacts will be fetched from the server and displayed in the Contact List. To start a chat with a contact, just click their name and a Chat window will appear. The upper part of the window is where the conversation appears - to say something, type into the bottom part of the window and click Send.

If you've just created a new account you won't have any contacts. See Adding Contacts for details on how to add contacts.

The shortcut for Send is set to &Ctrl;&Enter; by default; you can change it in the Chat window using Settings Configure Shortcuts....

## Using &kopete;

This chapter gives an overview of &kopete;'s basic features. We will look first at the contact list, where your contacts are displayed, and then at the Chat window, where you carry out a conversation.

### The Contact List

The Contact List appears when you start &kopete;. It's the main window where you can set your presence, start a chat, organize your contacts, configure &kopete; and quit.

#### Layout of the Contact List window

##### Menu

You will usually find the menubar at the top of the contact list. If it is not there, you might have turned it off; you can re-enable it with &Ctrl;M. Details on each menu item can be found in the chapter on menu structure.

##### Tool bar

The toolbar holds the most frequently used &kopete; actions. You can customize it with Settings Configure Toolbars.... Notice the Show Offline Users and Show Empty Groups buttons. With these you can hide contacts and groups that are offline.

&kopete; makes it even easier to set a status message to let your contacts know about your mood or why you're busy at the moment. Click on the Set Status Message button and start typing to enter a new message, or choose from one of the previous messages you have used.

The Quick Search Toolbar quickly filters the contact list, by typing a few letters from a contact's name.

##### Contact List

The Contact List takes up the main part of the window. All your contacts are listed here, in the groups you have chosen for them. You can open or close groups by clicking the plus symbol adjacent to the group. You can reverse the order the groups are sorted in by clicking the Contacts label above the list.

The context menu in the Contact List changes depending on the item under the mouse. Groups, Metacontacts and &im; system specific contacts have their own options. In empty areas of the Contact List, the context menu allows you to add contacts or groups, or change the viewing options for the list.

##### Status bar

The status bar shows an icon for each &im; account you have created. The icons represent the current presence of each account, which can be changed by right-clicking the account icon.

&kopete; also shows your current status message in the Status Bar>. By clicking on the note icon in the corner, you can change or clear the status message as well.

#### Setting Your Presence

We introduced you to setting presence in the previous chapter. 'Presence' determines how visible you are on the &im; network. To use the network at all, you have to connect to the network, so you can send and receive messages and see others' presence. Once you are connected, most &im; systems allow you to indicate what you're doing and whether you want to chat by setting special types of presence such as Away or Free For Chat. The difference presence settings are particular to each away system; but &kopete; allows you some control all your &im; systems at once by setting them to Away or Available at the same time.

You set your presence for individual &im; accounts by right clicking the account's icon in the status bar at the bottom of the Contact List. The context menu for each account lets you choose the possible presence settings for each &im; system.

To change all your accounts' presence together, click the Status, or use the File Status menu.

#### Start A Chat From The Contact List

To start a chat from the Contact List, simply click a contact. A Chat window will appear.

You can also right click a contact and select either Send Message or Start Chat. Send Message works differently in that it just sends a single message without opening the Chat window, using a simple dialog. Use it for fire-and-forget messages.

#### Send A File

You can send files from the Contact List, using the context menu on the person you want to send to. If &kopete; supports file transfer on their &im; system, there will be a Send File... item. Alternatively, you can drag a file from anywhere else in &kde; onto their name to start a file transfer.

#### Organizing Contacts

##### A Word about Metacontacts

One of the principles behind &kopete; is that it offers a standardized way to use &im; systems. Differences between &im; systems are smoothed over, making it easier to communicate. We follow this principle in the way contacts are organized. When you use &kopete; you just find contacts by name; the actual &im; system used is less important. Some people have more than one &im; account - &kopete; puts the person using the account first.

To support this, &kopete; introduced Metacontacts, which represent the person you want to chat with. One Metacontact contains all the different &im; IDs they may have, making it easy to see with a glance at the Metacontact 'smiley icon' whether someone is available, regardless of which &im; system they are using right now.

##### A Word about Grouping Contacts

&kopete; lets you create groups to sort your contacts. A contact may be in more than one group. Where possible, groupings are saved on server side contact lists, so if you use other &im; programs, group memberships are kept in sync. However, if you change groups in another &im; program, &kopete; cannot know to move a metacontact automatically; it is up to you to resolve this by hand.

To change the group a metacontact appears in, you can use its context menu to move it or copy it to a new group, or remove it from a group. You can also use drag and drop here - just drop the metacontact on a different group name.

##### Adding Contacts

To add a contact, either select File Add Contact or click the Add button on the toolbar. This brings up the Add Contact Wizard.

The Add Contact Wizard creates a new Metacontact using one or more &im; systems, by leading you through the following pages.

1. Welcome Page. Here you can choose whether you want to use the &kde; Address Book for this contact. Storing &im; information in the &kde; Address Book will enable other &kde; &im; programs to share contact information with &kopete; and in future &kde; applications may use &kopete; to send information via &im;. If you prefer to keep your &im; contacts separated, clear the check box here.

2. Choose &kde; Address Book entry. By choosing an entry from your &kde; Address Book, you can use its name as a Display Name in &kopete;. You can also create a new entry here. This page doesn't show if you chose not to use the &kde; Address Book.

3. Select Display Name and Group. Here you can enter a Display Name (the name used for this person inside &kopete;), and choose the groups they are a member of.

4. Select &im; Accounts. Here you can choose which accounts you want to use to chat to the new contact. If you only have one &im; account, you won't see this screen.

5. Account-specific Add Contact Pages. For each account, you'll get one page where you can enter the UIN, buddy name or Email address, depending on the &im; system in use.

6. Finish Screen. All done. Except if the &im; system requires authorization (such as ICQ) to add a contact to your list - in which case, you'll be prompted after the wizard exits.

You can add contacts to an existing Metacontact using its context menu.

##### Renaming Contacts

You can rename a contact using Edit Rename Contact or with the same item on the metacontact context menu.

Some &im; systems allow you to set a Display Name that is different to your username, such as Alice loves crypto!. If you change a contact's name manually, this will override their Display Name. To get it back, open the Properties dialog for that contact and check the Use the name given by the server checkbox.

##### Removing Contacts

If you no longer want a contact to be in the contact list, you can remove a Metacontact and all the contacts under it with Metacontact context menu Remove Contact.

##### Moving Contacts between Metacontacts

You can change the metacontact a contact belongs to. In practice, you only have to do this when you have just added multiple accounts to &kopete;, and you know that HotDog76 and mikejones@hotmail.com are both the same person.

There are two ways to do this:

Drag and Drop

- The contact icon to the right of the metacontact name may be dragged from one metacontact to another.

Contact Context Menu

- The context menu for contacts (Right-click the contact icon) allows you to choose the new metacontact from a dialog.

If the move would leave a Metacontact empty (with no contacts), you'll be asked if you want to delete this contact.

##### Removing Contacts from Metacontacts

To remove a contact from a Metacontact, choose Contact context menu Delete Contact....

#### Configure &kopete;

You can configure &kopete; using Settings Configure.... See the next chapter for details.

#### Exiting &kopete;

To exit &kopete; you should use File Quit, &Ctrl;Q, or the &kopete; System Tray icon's context menu. If you just close the Contact List window, &kopete; will continue to run in the &kde; System Tray.

#### Keyboard shortcuts

The following keyboard shortcuts are supported in the Contact List window:

Keyboard Shortcut | Action
Up Arrow | Select the previous item in the contact list.
Down Arrow | Select the next item in the contact list.
Left Arrow | Close the current group.
Right Arrow | Open the current group.
&Enter; | Start a chat with the selected contact.
&Ctrl;M | Show/Hide the menu bar.
&Ctrl;U | Show/Hide offline users.
&Ctrl;G | Show/Hide empty groups.

### The Chat Window

#### Layout of the Chat Window

##### The Chat View

The Chat View usually takes up most of the Chat window and is where the conversation between you and your contacts takes place. Messages appear in the order they are received, with the earliest messages at the top of the view.

You can control the appearance of the Chat View, making it look like other &im; clients or create a completely individual look.

##### Chat Members List

Since some &im; systems allow you to chat as a group, it is useful to see who is chatting at the moment. The Chat Members List appears to the left or the right of the Chat View. You can change this using Settings Chat Members List. The contact context menu is available in the Chat Members List.

##### Input Area

The Input Area is below the Chat View. This is where you type messages before sending them. You can change the font and color of the message using the usual tools on the toolbar. If the &im; system supports this, your messages will appear in color when your contacts read them.

By default, the keyboard shortcut to send messages is &Enter;.

##### Status Bar

The Status Bar contains temporary messages, such as notification that someone else is typing, as well as the Send button.

##### Tabbing

&kopete; lets you carry on multiple conversations in one window, by putting each one in its own tab within the window. The tab titles change color to show when a new message has been received:

Red

- Someone typed a message.

Green

- Someone is typing a message.

Blue

- Someone typed a message containing your nickname.

There are several different ways to control grouping. To configure this behavior, go to the Chat tab of the Behavior page of the Configure &kopete; dialog. You can also move chats between windows using the Tabs menu, and control the placement of the tabs in the window.

#### Group Chats in &kopete;

You can use &kopete; to chat one to one, or in a group, where the &im; system supports this.

To invite others into a chat, drag them from the Contact List into the chat window, or use Chat Invite<contact name>.

#### File Transfers

Some &im; systems allow you to send and receive files. You can access this function from the contact's context menu. If you're already chatting, and want to send a file, simply drag the file from any other part of &kde; into the Chat Window, or select the Chat Send File menu.

#### Keyboard Shortcuts

The following keyboard shortcuts are supported in the Chat window:

Keyboard Shortcut | Action
&Enter; | Send the message in the Input Area.
&Ctrl;P | Print the contents of the Chat View.
&Ctrl;S | Save the contents of the Chat View.
&Ctrl;W | Close the current Chat View. The Chat window will close unless there is more than one tab in the window.
&Ctrl;, | Change to the previous tab.
&Ctrl;. | Change to the next tab.
&Ctrl;&Shift;B | Detach a tabbed chat into a separate window.
| Complete a partially typed nickname belonging to someone you're chatting with.

## Configuring &kopete;

To configure &kopete;, look in the Settings menu.

### Global Shortcuts

&kopete; defines some shortcuts which are valid in any &kde; application.

Global Keyboard Shortcuts | Action
&Ctrl;&Shift;I | Read Message. This is useful if you have hidden the Contact List window and the system tray icon is animating to tell you you have a new message.
&Ctrl;&Shift;C | Show/hide (Dock) the Contact List window. Warning: If you have disabled &kopete;'s System Tray icon or don't have a system tray, this can make the Contact List vanish - the only way to restore it is to repeat this shortcut.

### The Configure &kopete; Dialog

#### Adding and Editing Accounts

We briefly showed you how to add an account in Getting Started. To change an account's settings later, open up the Configure &kopete; dialog, with Settings Configure.... Much like the &kde; &systemsettings;, the configuration is separated into sections. The icons on the left side of the dialog switch between sections.

On the Accounts page, you can Add, Remove, or Modify accounts. Editing accounts is much the same as adding them, but note that you cannot change the UIN, buddy name, or whatever account identifier your &im; system uses. This is intrinsic to the account. If you want to change this, you will have to add another account with the new account identifier and (optionally) remove the old account.

You can quickly distinguish between multiple accounts using the same &im; system by giving a custom color to each account's status bar entry and contact icons. To do so, select the account and click the color selector on the right side of the page.

You can control the priority of accounts using the Up and Down icons on this page. If you have more than one way to message a contact, this determines the &im; system &kopete; will use to communicate them.

#### Global Identity

&kopete;'s Global Identity lets you set your own nickname and photo once for all your &im; accounts. You can read these details from the &kde; address book entry for yourself, from a single one of your contacts, or add a completely new nickname or photo. If you have an exciting dual life, you can create multiple identities and switch between them in the Identity section.

#### Behavior

Behavior covers the way &kopete; integrates with your desktop, Away settings, and chat user interface options.

##### The General tab

Here you can customize &kopete;'s desktop integration, and control the way the contact list is laid out.

Show system tray icon

- By default, &kopete; places an icon in the &kde; System Tray. If you prefer, you can turn this off here.

Start with hidden main window

- This causes &kopete; to start with the Contact List window hidden (docked). You can make it visible by clicking the system tray icon or with the Show Contact List global shortcut.

Open messages instantly

- New messages open chat windows as soon as they arrive.

Use message queue

- The message queue is where &kopete; puts messages when there is no chat window open. This allows you to be notified of new messages with popup speech bubbles; or by animating the System Tray icon. If you choose to disable the message queue, chat windows will open as soon as you receive a new message.

Use message stack

- If you use a message stack, &kopete; shows recently received messages starting with the last message received.

###### Notifications

Show a bubble on new message

- This option shows a speech bubble; coming from the System Tray icon when you receive a new message. You can start a chat or ignore the message. &URL;s are extracted from the message; if you click a link, your preferred browser will open the link and the message will be dismissed.

Flash the system tray on new messages

- This option causes the System Tray icon to animate when you receive a new message. Clicking the icon will show the message in a chat window.

Enable events while away

- If you do not wish to be distracted by these notifications while you are set Away, uncheck this box.

Configure Sounds & Events

- Sounds, flashing taskbar entries, passive popups and more exotic notifications are supported in &kopete; using the &kde; notification system. Type `help:/kcontrol/kcmnotify` in &konqueror; or select the Help tab in the System Notifications section of the &systemsettings; for more information.

  To add custom notifications for a contact, right click that contact in the Contact List and select Properties. This lets you start chats, play a custom sound effect, or display a message for that contact or group. Otherwise you can use the Execute a program notification to perform custom notifications. As an example, if you have XOSD (X On-Screen Display) installed, you can get OSD online notifications by executing the following command when the User goes online event takes place:

  `echo %s | osd_cat -o 100 -p bottom -A center -f -*-helvetica-*-r-*-*-24-*-*-*-*-*-*-* -O 2 -c gold`

  OhReally at the &kde; Forum suggests having your online notifications read out by a speech synthesizer, using MBROLA like so:

  `echo %s | sed -e 's/online/onlaain/i' | /usr/local/bin/mbrdico.dutch.female`

  The 'sed' in the middle phoneticises &kopete;'s output to so the synthesizer has a better Dutch pronunciation.

##### Away Settings

Notify all open chats when I go away

- Be careful if you enable this item; it will cause a message to be sent to open chats when you become away, which some people may find intrusive.

###### Auto Away

Here you can choose to have &kopete; set you away after a period of inactivity.

###### Predefined Away Messages

You can define as many custom away messages as you like here, and choose from them when you go Away using the Status button on the main toolbar.

##### Chat Settings

Raise window/tab on new messages

- This causes a chat window to pop up when it receives a new message.

Show events in chat window

- Some &im; systems can give extra information, like people joining or leaving chats. This option lets you receive these messages in your chat window.

Highlight messages containing your nickname

- This simply emphasizes messages in a chat that contain your nickname. For more powerful control over highlighting and other events, see the Highlight plugin.

###### Interface Preference

&kopete; can send messages using either a fire and forget interface that does not wait for a reply, or a chat window where the conversation is visible as it unfolds. Here you can choose which style to use by default.

###### Chat Window Grouping Policy

If you wish to group chats within tabs in a single window, &kopete; lets you choose several ways to determine the grouping.

- Open all messages in a new chat window

- Group all messages from the same account in the same chat window

- Group all messages in the same chat window

- Group all messages in the same group in the same chat window

- Group all messages from the same metacontact in the same chat window

###### Chat Window Line Limit

Maximum number of chat window lines

- This limits the number of lines of text the chat window can display.

#### Appearance

Appearance governs the style of the Chat window, its colors and fonts, and lets you choose your preferred emoticons.

##### Emoticons

Emoticons (also known as smileys) are combinations of characters such as `;-)`that look like a face, and communicate moods or expressions. &kopete; can optionally use graphical emoticons in place of the characters themselves.

On this tab, you can select which emoticon set you prefer, or turn off graphical emoticons altogether.

##### Chat Window

###### Styles

The style of the chat view can be altered to look like other clients. Installed styles are shown in the list on the left and are previewed in the main panel. See Chat Window Style guide for a document how to make your own style.

Third party styles are available at the KDE Store. &kopete; 0.12 now supports styles from Adium(an &im; program on &Mac; OS X). So you can download styles from Adium here: Adium Xtras and select Message View Styles.

To install a style, click Install.... Select an archive file containing the style. To delete a style, select a style in the list and click Delete.

Group consecutive messages is a useful option to make your chats more readable. If you receive several messages in a row from the same contact, they are grouped without repeating the sender name.

##### Contact List

Arrange metacontacts by group

- By disabling this, &kopete;'s groups are hidden, and contacts are divided only into Online Contacts and Offline Contacts.

Show tree branch lines

- Usually &kopete; displays contacts and groups as a tree, where group members are indented. For a simpler appearance, you can disable this, so the contact list becomes a flat list. You can also control whether branches are indented here.

Contact Display Mode

- There are several ways you can present the contact list here. Of particular interest may be the Use contact photos when available option, that shows the contact list using photos chosen by your contacts or the &kde; Address Book

Contact List Animations

- This controls the degree of animation of the contact list. Turning this off will make &kopete; more responsive on slower machines.

Contact List Auto-Hide

- By enabling this, the contact list will automatically disappear a few seconds after the pointer leaves the window.

Change Tooltip Contents...

- You have a lot of control over how much or how little detail appears in the tooltips shown on the contact list using this dialog.

##### Colors and Fonts

###### Chat Window Colors

Here you can alter the base font and text colors used for chatting.

###### Formatting Overrides

If your contacts tend to choose fonts and colors that you dislike, you can tell &kopete; to ignore these and use your regular font.

###### Contact List

Some &im; systems let you see whether contacts are idle at their computers. This option enables you to change the color used for idle contacts.

#### Devices

The Devices section allows you to choose and configure which multimedia devices are used for A/V chatting. Whether this works for you is highly dependent on the hardware you have and how well it is supported by your operating system.

##### Video

&kopete; uses the Video4Linux 2 system for video. This shows a blue square if no video device is found, or a preview if the camera is working. For up-to-date information on &kopete; webcam support, see the Kopete Webcam Support wiki page.

##### Audio

Audio support in &kopete; is at an experimental stage. If you have an Audio tab, you are probably using a preview build of &kopete;.

### Loading Plugins

You can customize &kopete; with special functions that may be useful or just a bit of fun. Bring up the Select and Configure Plugins panel with Settings Configure... and then the Plugins entry.

Plugins can be turned on or off in the list on the left side of the page. Each plugin may be configured on the right side. See the chapter on plugins for details on each plugin.

## &kopete;'s Protocols

&kopete; calls different &im; systems 'Protocols'. When you add an account, it is specific to a single protocol. Although &kopete; tries to make instant messaging appear the same, no matter what protocol you use, there are some differences in the level of support for advanced features such as file transfer and multimedia.

### Protocols

#### AIM

AIM supports chatrooms. Use the Join Chat... command on the AIM account menu to join a chatroom. Contact pictures and custom emoticons are also supported.

#### ICQ

ICQ has an Invisibility feature which allows you to hide from selected contacts. You may also search the ICQ user folder when adding a contact. A wide range of contact details can be set using the Properties option.

#### Jabber

Jabber, also known as XMPP, supports file transfer, conferencing and any other services supplied by the Jabber server. For example, many Jabber servers have a user directory, and some provide transports to other messaging systems. To access services, use Services... on the account menu. Jabber file transfer can work without port forwarding, but enjoys better performance where a direct connection is possible. By default, port 8010 is used for port forwarding, but this is configurable in each account's settings.

#### Google Talk

Since Google Talk is based upon Jabber, it is well supported in &kopete; with the exception of voice chat, which is worked upon.

To configure &kopete; for Google Talk: Use your complete Google Mail address as the user name. Check Use protocol encryption (SSL), Allow plain-text password authentication and Override default server information. The server is talk.google.com or gmail.com and ports 443 or 5223 should be used.

#### Novell GroupWise

GroupWise Messenger is an enterprise messenging system from Novell Inc. The full range of features are supported, including privacy, group chat, rich text and user search.

#### Gadu-Gadu

Gadu-Gadu is a chat system originating from Poland. At present, &kopete; supports basic chat functions.

#### WinPopup

WinPopup is a way to use &kopete; to send and receive messages with &Windows; computers on the local network. The WinPopup protocol only supports single, plain-text messages.

#### Other protocols

As well as the protocols named above, &kopete; has support for several other protocols. In most cases, this is not enabled by default or an additional plugin must be installed. Meanwhile, SMS, Skype and SILC are provided in this way. However, the &kopete; team are not responsible for these protocols.

## &kopete;'s Plugins

&kopete; offers plugins that provide functions that aren't essential for messaging, but are useful for some people.

### Plugins

#### Auto Replace

Auto Replace allows you to correct frequently misspelled words or save typing certain words using abbreviations.

#### Bookmarks

The Bookmarks plugin creates bookmarks in your &kde; bookmarks list from URLs that are received in &im; messages.

#### Contact Notes

Contact Notes allows you to note down any useful bits of information on a metacontact.

2007-10-14

1.3.0

#### Cryptography

The Cryptography plugin allows you to send and receive encrypted and/or signed messages.

Cryptography lets you use an OpenPGP implementation to encrypt and sign messages in conversations. Note that this is not the same as an SSL secured chat session. Cryptography can encrypt your messages to a single individual so that only the holder of the matching key can read it. If you wish that the recipient of your messages can verify that you have sent your messages, you may sign messages. Signing and encryption can be used separately or together. When you receive a message, if it has been encrypted, you will see a lock icon. If it has been signed with a verifiable signature (you have the public key of the sender), you will see a pen icon. For a non-verifiable signature, a red pen icon will be shown.

To configure Cryptography, select your private key in the plugin configuration page. Then, using Select Public Key... from each meta-contact's context menu, choose their public key. You will be prompted for your passphrase when using this plugin.

Due to limitations in some of the instant messaging protocols that &kopete; uses, encrypted messages cannot be sent with those protocols. If you attempt to use an unsupported protocol, you will be warned.

Cryptography can use the public keys stored in your &kde; address book for each contact. However, it must be able to know which address book entry is associated with which meta-contact. To provide this information, choose Properties from the meta-contact context menu, and then set the Address Book Link. Cryptography can also export public keys that you have set to your address book. If a meta-contact has an address book link, then the key will go in the correct address book entry, replacing an existing one. If no link exists (possibly because no address book entry exists for the individual in question), a new entry will be created. This entry will have two fields filled: the public key from &kopete; and the meta-contact's display name.

Documentation copyright © &Olivier.Goffart; &Olivier.Goffart.mail; and © 2007 &Charles.Connell; &Charles.Connell.mail;

#### Highlight

Highlight works a little like email filters, in that it allows you to make things happen in response to particular messages. As well as highlighting the text, you can play sounds.

#### History

The History plugin, when activated, records conversations using any &im; system and allows you to view old conversations later. A History item appears in each Metacontact's context menu so you can view the message history for that metacontact.

The following item is added to the Contact List's menus:

Edit View History

- (Enabled when a contact is selected) This displays the History browser for the selected contact.

The following items are added to the Chat window's menus:

&Alt;&Shift;Left Arrow Tools History Previous

- This enables you to view the next oldest set of messages from the History in the Chat window.

&Alt;&Shift;Right Arrow Tools History Next

- This shows the next newest set of messages from the History in the Chat window.

Tools History Last

- This shows the most recent set of messages from the History in the Chat window.

#### KopeteTeX

KopeteTeX allows scientists and mathematicians to hold conversations using the LaTeX markup language. Expressions entered within $$ are rendered as a graphic in the chatwindow, and can be cut and pasted as the original Latex. To use this plugin you must have LaTeX installed

#### Now Listening

With the Now Listening plugin, let people you're chatting with know what you're listening to, by typing `/media` in a chat, or with Tools Send Media Info in the Chat window.

#### OTR

The OTR plugin allows you to encrypt conversations using the Off-The-Record encryption method. This encryption method basically works like the PGP encryption but it is optimized for instant messaging and handles the key exchange on its own. The only thing you have to do, is to make sure that you really are writing to the person you expect by using one of OTR's authentication mechanisms.

##### Menu items

The following item is added to the Contact List's menus:

Edit OTR Policy

- (Enabled when a contact is selected) You can set the encryption policy for each contact here. Setting this entry to "Default" causes &kopete; to use the default setting in the configure dialog

The following items are added to the Chat window's menus:

Tools OTR Settings Start OTR session

- This lets you initiate an OTR encrypted session.

Tools OTR Settings End OTR session

- This lets you end a previously established OTR session.

Tools OTR Settings Authenticate contact

- Use this menu entry if you wish to authenticate the contact.

##### The settings dialog

In the setting dialog you have various options to set the modules behaviour during your chatsessions. The most important of them is the default policy configuration. Set the policy to "Opportunistic" if you wish &kopete; to check if you contacts support OTR and establish an encrypted session on its own or to "Manual" if you wish to control each encryption state on your own. The options "Always" and "Never" are recommended only for experienced users that wish to set the policy on a per-contact base. In the "Private Keys" Pane you have the possibility to create you personal keypair for each account. You don't need to do this manually. If an account does not have a keypair it will be generated automatically the first time it is required. In the "Known Fingerprints" tab you have the possibility to see, verify and delete known public fingerprints of your contacts.

##### Authentication

You've probably received email from people pretending to be banks, credit agencies, even wealthy Nigerian expatriates. People lie about who they are all the time on the Internet. Authentication is a way to make sure that nobody can lie to you about who they are when they use OTR.

###### When to authenticate

You should authenticate a buddy the very first time that you talk to them using OTR. If you don't, then you cannot really be sure that someone else isn't impersonating them or trying to listen in on your conversation. However, once you've authenticated your buddy once, you don't have to do it again. OTR will automatically do the authentication for all of your future conversations with that buddy.

The only exceptions occur when your buddy switches between multiple computers or multiple &im; accounts. In this case, you will need to authenticate once for each computer and account. Once you've done this, your buddy can freely use any of the computers you've authenticated them on, and OTR will recognize them automatically. If your buddy uses a new computer or account that OTR does not recognize, a message will pop up in your conversation window telling you about it.

When to authenticate

###### How to authenticate

To authenticate someone, open a conversation with them and click on "Authenticate Contact" on the OTR button. A wizard will be shown, asking you what authentication method you would like to use. Please follow the steps in this wizard.

If the authentication was successful, then you know that you are really talking to your friend. Any imposter should have a hard time guessing what you're typing in, so you'll be able to catch them in the act.

#### Pipes

Pipes allows you to pipe incoming or outgoing messages through an external script or executable. An incoming message will be piped through the executable before it reaches your chat window, while outgoing messages will be piped through the executable before they are sent over the Internet. Pipes can receive text in one of three forms:

Plain text body

- The body of the message, in plain &ascii; text

&HTML; text body

- The body of the message, in &HTML;, as it would be if your chat peer had sent &HTML; to you, which will be rendered in the chat window

&XML; full message

- An &XML; document that describes all the characteristics of the message, including the &HTML; body.

For most purposes, you probably want to use the plain text body or &HTML; text body options. These can be used with programs such as translators or summarizers. The &XML; format is only appropriate for use with a program or script written specifically to work with this plugin. If you would like to write a program or script that does work with this plugin, see the more detailed documentation.

#### Statistics

This plugin uses a database to gather information about your contacts' activity patterns. You can use this to see when a contact is usually online, for example.

#### Text Effect

Text Effect applies funny effects to your messages before sending them, like coloring them or changing the case of the words. Just don't forget you have activated it - we've had bug reports from forgetful Text Effect users!

#### Translator

The Translator plugin lets you define a preferred language for each Metacontact, and then translates messages to or from them using web based translation services such as Google. Set your own preferred language in the Select and Configure Plugins dialog. Each contact's preferred language can be set on its context menu.

The following item is added to the Chat window's menus:

&Ctrl;T Tools Translate

- If you did not turn on automatic translation, this translates the current chat.

#### Web Presence

Web Presence allows you to publicize your &im; presence on the Web. Give it the path to a file on an &FTP; server (for example), and it will upload a short piece of &HTML; to that file, which you can include in your homepage. &kde;'s network transparency makes this simple. Useful for bloggers to make friends with, or you could use it to use &im; in your business.

Example: `sftp://username@somehost.org/path/to/homes/user/im.html` uses the SFTP protocol to upload your presence directly onto the webserver.

See the KIO manuals for tips on specific network protocols.

#### Contributing a plugin

&kopete; is designed to make it easy to create plugins that give it extra functions. So if you've got a great idea to make &kopete; even better, get in touch!

&kopete-menus;

## Frequently Asked Questions

What does &kopete; mean? How do I pronounce it?

&kopete;'s name comes from the chilean word Copete, meaning a drink with your friends. Duncan, the original author, recorded an audio sample.

When I have more than one messaging service under a user's name in my contact list and I click on that user's name, it will message them on the wrong messaging service.

You can change the order of accounts &kopete; tries to message people with by using the Up and Down arrows in the bottom right corner of the account configuration screen. &kopete; will try to connect with accounts starting from the top. However, if one service has a higher status value than the others for that user, &kopete; will use that one. For example, if a person has three services and two are marked as away and the third is marked as online, &kopete; will always try to message the user using the online service.

If you click on the small protocol icon on the right of the menu item, instead of on the person's name, you will always try to contact the person using that service!

I need to connect via a SOCKS proxy, but I cannot find any proxy configuration options in &kopete;. How do I set up &kopete; to use SOCKS?

- ICQ, AIM, and Jabber use the &kde; network infrastructure. Their SOCKS proxy details are configured with the rest of &kde;, in &systemsettings;, Network and Connectivity Network Settings Proxy.

Is it possible to customize the icons I see in &kopete;?

You can switch between different emoticons using the Emoticons tab of the Appearance page of the Configure &kopete; dialog.

To install new emoticons, first look at the KDE Store, where there are a lot of additional emoticon sets to download.

The emoticons are easy to install - you just place a folder containing the icon files along with an &XML; file describing the mapping from text to picture in $KDEDIR/share/apps/kopete/pics/emoticons (or $KDEHOME, for example, in /home/joeuser/.kde/).

1. Copy the extracted folder to $KDEDIR/share/apps/kopete/pics/emoticons or $HOME/.kde/share/apps/kopete/pics/emoticons (or wherever $KDEHOME is)

2. Select Configure &kopete; from the Settings menu and click on Appearance in the left panel of the Preferences window and click on the Emoticons tab

3. Select the emoticons set you just installed from the list

4. Now you can use the newly installed emoticons in &kopete;

To replace the protocol icons, you'll have to replace the icons in $KDEDIR/share/apps/kopete/icons, or provide replacements to override them in the same folder under $KDEHOME. At present there aren't any complete replacement sets that you can simply extract there.

I don't see any plugins listed in the Configure Plugins dialog. What's up?

There are two solutions to this problem. If you used binary packages, then make sure that you used binary packages designed for your distribution, and the specific version of your distribution. Crossing distributions and versions around will not work with &kopete;. If there are no binary packages for your system, you must compile &kopete; using the source packages. If you compiled your &kde;, then &kopete; must go in the same prefix as &kde; did. If, however, you compiled the source packages, then make sure that your &kopete; is installed in the same location as your &kde;, if it is not, you can force it to do so by specifying a prefix command to cmake. Example: ``cmake` `-DCMAKE_PREFIX=/opt/kde4`` (where `/opt/kde4` is your prefix). To determine where your &kde; prefix is, type ``which` `dolphin`` in a &konsole; window. It should display something like `/opt/kde4/bin/dolphin`, then `/opt/kde4` would be your prefix, or if it says `/usr/bin/dolphin`, then your prefix would be `/usr`. Also make sure you performed a `make install`, and check that there is no stale &kopete; installation from previous versions in different locations. You might also need to run kbuildsycoca4 manually after installing &kopete;. kbuildsycoca4 updates the plugin database. It runs when new software using plugins is installed, but it is possible that `kopete` will run &kopete; before the update has completed.

I have many <desktops / monitors / computers> and / or I talk to many people at the same time, and as a result I wish &kopete; could play a <sound / pop up a message / change my wallpaper / reboot my computer > whenever I <receive a new message / someone goes online / someone goes offline > When will this be added?

It is already there (surprise!). &kopete; is a &kde; application and thus makes use of KNotify for all notifications. For those who don't know, KNotify is a very powerful architecture that lets you do pretty much anything you want when an event occurs in a &kde; application. You can play a sound, pop up a passive dialog, log a message, or even run your own custom commands, such as a shell script, to do anything your heart desires. To access this treasure trove, go into the Settings Configure Notifications dialog. This will present you with all the different actions you can take on the events listed just above. As a tip, check out some of your other &kde; applications to see what events they let you catch. I for one find a passive popup on new emails in &kmail; to be very handy.

How come file transfers don't work?

There are many reasons for this. WLM was the first protocol in which we've implemented support for file transfers. Support for file transfers in Jabber and IRC was added in &kopete; 0.9.0 (included in &kde; 3.3), and ICQ and AIM in &kopete; 0.50.0 (included in &kde; 4.0.0). Also, file transfers may not work if you're behind a firewall - see WLM section in the protocol chapter.

Why all of this silly single-click behavior? It's very annoying!

Kopete is a &kde; application. We are not some lame 3rd party application that decides to "look" like the rest of KDE. We also have the "feel" and "integration" aspect of KDE, which means that &kopete; follows KDE's standard "Single-click" behavior. If you would like to change this it requires you to change it in all of KDE. You can change to a double-click style by starting &systemsettings; and go to Input Devices Mouse and change to the option Double-click to open files and folders (select icons on first click).

Will you make the user-interface skinnable?

The only answer for this is no. &kopete; was invented to be a &kde; Instant-Messenger and this also includes having a &kde; Look-n-Feel. By adding skins we would break this rule and having both skin-support and skinless-support at once is impractical as well. Just select a different style in &kde;'s &systemsettings; and be happy to have transparent menus and other neat eye-candy today's &kde; offers. You can, however, run kopete using a different style. Just run `kopete --style=marble` as an example. Any valid &kde; or &Qt; style will work.

I would like a feature in the next version of Kopete.

Please go to &kde; Bugzilla and file a wishlist item under the application 'kopete'. Please be very detailed and proof-read what you have written to us. This is NOT a guarantee that we will add this feature in any version, but allows us to consider it.

My &kopete; crashed or has/had unexpected behavior (unexpected behavior does NOT fall in the category of "Kopete doesn't act like Pidgin", &etc;).

Please report this bug to us by going to &kde; Bugzilla and file a bug report under the application 'kopete'. Bugs will only be accepted if they are in English, they are detailed, and if a crash was involved they contain a backtrace (the text in the tab marked Backtrace once &kopete; has crashed). If you are using &kopete; git, however, please mail us at &kopete; developers mailing list instead of filing a bug report.

Jabber SSL support stopped working, I get the message that the QCA TLS plugin is probably missing. What am I supposed to do?

As the error message indicates, you are missing the QCA TLS plugin, which handles the Jabber plugin's TLS/SSL encryption. Install the package qca-tls (and eventually qca-ossl) or retrieve the plugin from its homepage. Please note that you only need to install the qca-tls plugin, not the QCA library itself. A recompilation of &kopete; is not necessary, in fact not even a restart. In case you have installed the plugin and it still won't work, Qt can probably not find it. Since qca-tls installs itself as a &Qt; plugin, you will have to make sure that it gets installed to the plugin directory of the &Qt; version you are using to run &kopete;.

I use Jabber and ICQ together. Whenever I go online with Jabber, I am disconnected from ICQ with an error message about being connected from another client. What's up?

Remember when you played with ICQ transports on that other Jabber client? You set up an ICQ Transport which allows you to talk to ICQ people from Jabber. ICQ doesn't allow multiple connections to the same account, and disconnects you. Look in your Jabber contacts for a contact of the form 123456@icq.jabber.org and delete it.

## Credits and License

&kopete;: copyright 2001-2007, &kopete; Developers

&underFDL; &underGPL;

### The Team

#### Current Development Team

- Pali Rohár (pali.rohar at gmail com): Developer and Maintainer

- Duncan Mac-Vicar Prett (duncan at kde org): Original author, developer, and project leader

- Till Gerken (till at tantalo net): Developer, Jabber maintainer

- Olivier Goffart (ogoffart at tiscalinet be): Lead Developer, WLM Plugin Maintainer

- Andy Goossens (andygoossens at telenet be): Developer

- Grzegorz Jaskiewicz (gregj at pointblue com pl): Developer, Gadu-gadu Plugin Maintainer

- Jason Keirstead (jason at keirstead org): Developer

- &Matt.Rogers; (mattr at kde org): Lead Developer, AIM and ICQ plugin maintainer

- Richard Smith (lilachaze at hotmail com): Developer, UI maintainer

- &Will.Stephenson; (lists at stevello free-online co uk): Developer, icons, plugins, manual author

- Michel Hermier (michel.hermier at wanadoo fr): IRC Plugin Maintainer

- Andre Duffeck (andre at duffeck de): Developer: Developer, Yahoo plugin maintainer

- &Michael.Larouche; (michael.larouche at kdemail net): Developer, WLM, Chat Window.

#### Former Developers (&kopete; Hall Of Fame)

These people have moved on from &kopete;, so don't contact them for &kopete; support. We're eternally grateful for their contributions.

- Christopher TenHarmsel (tenharmsel at users sourceforge net)Developer, Oscar hacker

- Ryan Cumming (ryan at kde org): Core developer

- Richard Stellingwerff (remenic at linuxfromscratch org): Developer

- Hendrik vom Lehn (hennevl at hennevl de): Developer

- Stefan Gehn (sgehn at gmx net): Developer

- &Robert.Gogolok; (robertgogolock at gmx de): Developer

- &Nick.Betcher; (nbetcher at kde org): Original author of ICQ, AIM and IRC plugins

- Daniel Stone (dstone at kde org): Original Jabber plugin author

- James Grant (topace at lightbox org): Developer, importer Plugin author

- Zack Rusin (zack at kde org): Developer, old Gadu-gadu Plugin author

- Gav Wood (gav at kde org): WinPopup Plugin author

- Martijn Klingens (klingens at kde org): Developer, WLM hacker

#### Documentation

Documentation copyright 2003,2004,2005 &Will.Stephenson; (lists at stevello free-online co uk), copyright 2005 &Matt.Rogers; (mattr at kde org), copyright 2005,2006 &Michael.Larouche; (michael.larouche at kdemail net).

&kopete-chatstyle; &kopete-pipes; &kopete-jabber; &kopete-icq; &kopete-emoticonspec; &documentation.index;