# HexChat 2.9 Frequently Asked Questions

## 1. Section One: Compiling and Installing.

1. I get this error: /bin/sh: no: command not found
2. How do I compile HexChat on my Sun OS system?

## 2. Section Two: Using HexChat.

1. How do I enable identd in HexChat? (How do I get rid of the ~ in front of my username?)
2. How do I auto join more than one channel with keys?
3. How do I autoconnect and join a channel when HexChat loads?
4. How do I cut and paste in HexChat?
5. How do I connect through a proxy?
6. How do I show @ and + in front of nicknames that are Op and Voice when they talk?
7. How do I change the Op and Voice userlist icons and Tree View icons?
8. How do I set different ban types?
9. Why can't I see accented-letters/umlauts/upper-ascii-chars in HexChat?
10. Why does the timestamp overlap some nicknames?
11. How do I turn on Conference mode where I will not see join or part messages?
12. How can I run the /dccserver command?
13. Why doesn't DCC send work behind a router (IPNat/ADSL)?
14. How do I execute multiple commands in one line?
15. How do I enable Emacs key bindings in HexChat?
16. I get this error: "Unknown file type abc.yz. Maybe you need to install the Perl or Python plugin?"
17. How do I play sound files on certain events?
18. How do I auto-load scripts at startup?
19. How do I minimize HexChat to the System Tray (Notification Area)?
20. Can I select and copy text with the time stamps?
21. What's the deal with opening URLs in HexChat on Linux/Unix?
22. Where are the log files saved to?
23. How do I rotate log files every so often?
24. How do I enable graphical smilies (emoticons)?
25. Where did the Real Name field go?
26. How do I migrate my settings from XChat?

## 3. Section Three: Contributions, Development and Bugs.

1. Why does HexChat leak so much memory?
2. My copy of HexChat crashes, what can I do?
3. Can I write a new language translation for HexChat?

## 1. Section One: Compiling and Installing.

### 1. I get this error: /bin/sh: no: command not found

If you get an error something like:

>     Making all in po
>     make[2]: Entering directory `/home/zed/xchat/files/xchat-1.8.7/po'
>     file=./`echo ca | sed 's,.*/,,'`.gmo \
>       && rm -f $file && PATH=../src:$PATH no -o $file ca.po
>     /bin/sh: no: command not found
>     make[2]: *** [ca.gmo] Error 127
>     make[2]: Leaving directory `/home/zed/xchat/files/xchat-1.8.7/po'
>     make[1]: *** [all-recursive] Error 1
>     make[1]: Leaving directory `/home/zed/xchat/files/xchat-1.8.7'
>     make: *** [all-recursive-am] Error 2

It means you don't have GNU gettext installed. There are two solutions:

- Install GNU gettext and try again.
- Use ./configure --disable-nls. This will disable foreign language support and all menus and GUI will be in English only.

### 2. How do I compile HexChat on my Sun OS system?

HexChat uses GNU gettext which in turn requires gmake, either install that and or use ./configure --disable-nls with Sun's own make.

## 2. Section Two: Using HexChat.

### 1. How do I enable identd in HexChat?

UNIX:
Identd isn't actually apart of HexChat. You will need to download and install your own ident server. Most distributions, including Fedora, come with an ident server program called oidentd. Make sure it is enabled in /etc/xinetd.conf or read you distribution's documentation. As an alternative, you can try this experimental identd server: xchat_auth
WINDOWS:
The win32 version of HexChat comes with a built-in identd server. It is enabled by default, but can be disabled with /set identd 0.

### 2. How do I auto join more than one channel with keys?

In the Server list's channel column enter multiple channels and separate them by commas, eg: "#linux,#warez,#chat". Do not put spaces between the channels. If the channels also have keys (passwords), then the syntax is: "#channel1,#channel2,#channel3 key1,key2,key3"

Example: If you want to join #abc and #talk without keys, but #linux with a key of "secret", you would enter: "#linux,#abc,#talk secret".

### 3. How do I autoconnect and join a channel when HexChat loads?

In the Server list, select the Network you want to auto-connect to, click Edit and turn ON the "Auto connect to this network at startup" checkbox.

### 4. How do I cut and paste in HexChat?

It's exactly the same as any other X application. You simply mark the text you want, and then press middle mouse button to paste (if you only have a 2 button mouse, press left and right buttons at once).

### 5. How do I connect through a proxy?

Go to the menus, Settings -> Preferences -> Network Setup and fill in the requested information there. Authentication (using a username and password) is only supported for HTTP and Socks5.

### 6. How do I show @ and + in front of nicknames that are Op and Voice when they talk?

To display @ and + characters next to nicknames as they talk, do the following:

In the menus, open up Settings -> Advanced -> Text Events. Find the Channel Message event in the list. The $3 code can be inserted to print the user's mode-character (e.g. @ or +). For example, you might want to change the default:
%C18%H<%H$4$1%H>%H%O$t$2
To:
%C18%H<%H$4$3$1%H>%H%O$t$2
Don't forget to press Enter, so the changes take effect in the list at the top of the window.

### 7. How do I change the Op and Voice userlist icons and Tree View icons?

Unix/Linux
The default icons are hard coded (compiled) in. You can override them by creating some PNG files in ${PREFIX}/share/hexchat. ${PREFIX} is usually /usr, so that would translate to /usr/share/hexchat. If you compiled from source tarball without specifying a prefix, it will be /usr/local instead.
Windows
Your own custom icons can be placed in C:\Program Files\HexChat\Icons. Image format may be PNG or ICO. PNG support on Windows 2000 may require installing GDI+, but it's standard on XP or newer.

> Name | Description
> op.png | Userlist: Op
> hop.png | Userlist: Half-Op
> voice.png | Userlist: Voice
> red.png | Userlist: Owner
> purple.png | Userlist: Founder
> server.png | Tree: Server
> channel.png | Tree: Channel
> dialog.png | Tree: Dialog/Query
> util.png | Tree: Utility (Channel List, DCC etc)
> message.png | Tray: Message
> highlight.png | Tray: Highlighted Message
> fileoffer.png | Tray: DCC
> hexchat.png | Main HexChat icon

Tree View icons: Type /set tab_icons 1 to enable them and then restart HexChat.

### 8. How do I set different ban types?

Three ways:

- Right click the nickname in the userlist, and choose a ban type from the "Kick/Ban" submenu.
- You can also do it manually: /ban <nick> <ban type> where the <ban type> is a number from 0 to 3.
- /set irc_ban_type <ban type> sets the default ban type to use for all bans. The different types are:
  - 0 *!*@*.host
  - 1 *!*@domain
  - 2 *!*user@*.host
  - 3 *!*user@domain

### 9. Why can't I see accented-letters/umlauts/upper-ascii-chars in HexChat?

Refer to http://xchat.org/encoding/.
Note: Log files are always written in UTF-8/Unicode.

### 10. Why does the timestamp overlap some nicknames?

Some networks allow very long nicknames (up to 32 letters). It can be annoying to have the separator bar move too far to the right, just for one long nick. Therefore, it has a set limit for the distance it will move to the right. If you use a large font, you may need to adjust this distance. It is set in pixels, for example:

>           /set text_max_indent 320

Once you adjust this setting high enough, overlapping timestamps and nicknames should not occur. The adjustment will not take effect immediately, a restart may be needed.

### 11. How do I turn on Conference mode where I will not see join or part messages?

Right-click on the tab you want to change. In the submenu of the channel name, there's a toggle-item "Show join/part messages", simply turn this off.

If you want to turn this option on globally, type:

>     /set irc_conf_mode 1

Then all channels you join after setting this will start with "Show join/part messages" turned off.

### 12. How can I run the /dccserver command?

In short you can not do this (easily). This is a mIRC only proprietary feature that is quite nonstandard. There is no code for doing this, mainly because /dccserver runs on port 59 which in turn would require running HexChat as root. Why do you need this anyway? Just use normal DCC.
Unofficial unix patches are available here.
Update: DCC Server feature has been added in the official Windows release 2.4.1b.

### 13. Why doesn't DCC send work behind a router (IPNat/ADSL)?

If you are behind a IP-NAT or ADSL router, you will most likely have an address like 192.168.0.1. This address is not usable on the Internet, and must be translated.

When offering a DCC file, HexChat will tell the receiver your address. If it says 192.168.0.1, the receiver will not be able to connect. One way to make it send your "real" address is to enable the "Get my IP from IRC Server" option in HexChat. This option is available in Preferences -> File Transfers. When you turn it ON, you will have to re-login to the server before it'll take effect.

You will also need to forward some ports for use in DCC send. You may pick almost any port range you wish, for example, in HexChat set:

    		First DCC send port: 4990
    		 Last DCC send port: 5000

This will allow you to send up to ten files at the same time, which should be plenty for most people. Lastly, configure your router/modem to forward ports 4990-5000 to your PC's address. You'll have to consult your router/modem's manual on how to do this.

### 14. How do I execute multiple commands in one line?

There are three ways to do this:

- /LOAD -e <textfile>, where <textfile> is a full pathname to a file containing commands on each line.
- Separate your commands with CTRL-SHIFT-u-a (CTRL-SHIFT-a on older GTK+ and Windows). This will appear as a little box with numbers on it.
- You can create two UserCommands, with the same name, and then execute the UserCommand. It will be executed in the same order as it's written in the UserCommands GUI.

### 15. How do I enable Emacs key bindings in HexChat?

The standard Emacs key bindings, such as CTRL-w, CTRL-u etc, are supported by GTK+ 2.0, but normally disabled. If you run Gnome 2, you can re-enable them in your Gnome menu under: Preferences -> Keyboard Shortcuts.

Note: This doesn't work in the latest Gnome (2.8 and newer). In this case, you need to run "gconf-editor", and directly change the key /desktop/gnome/interface/gtk_key_theme from "Default" to "Emacs". Then you need to re-start HexChat.

If you don't use Gnome 2, but still want Emacs key bindings, it's beyond the scope of this document. You might find some hints here: GTK+ 2.4.0 release notes.

### 16. I get this error: "Unknown file type abc.yz. Maybe you need to install the Perl or Python plugin?"

If you get this error when trying to load a Perl or Python script, it means the plugin for running those scripts isn't loaded.

- The Perl, Python and TCL plugins come with HexChat in the same archive.
- During ./configure, it will check for Perl, Python and TCL libs and headers, you should check if it failed there.
- The plugins directory can be found by issuing the shell command

      hexchat -p

- All *.so files are auto-loaded at startup (*.dll on Windows).
- If you downloaded a binary package, maybe the packager decided to exclude the Perl or Python plugins.

### 17. How do I play sound files on certain events?

In the menus, go to: Settings > Preferences > Sound. Select the event you want to make a sound on, then type in a sound filename (or use the Browse button).

### 18. How do I auto-load scripts at startup?

You just have to place the scripts into HexChat's data directory. HexChat will auto-load scripts if they have the right extension .e.g If a filename ends in .pl, it will be loaded as a Perl script. This data directory is different on each platform:
Windows
It depends on your version of Windows and where it stores the Application Data folder. On Windows XP it is usually:
C:\Documents and Settings\username\Application Data\HexChat\
or simply:
C:\Program Files\HexChat\Plugins\
UNIX
~/.config/hexchat/ Where "~" represents your home directory i.e.: $HOME/.config/hexchat/

### 19. How do I minimize HexChat to the System Tray (Notification Area)?

There are two plugins available that allow this:
Unix: SysTray Plugin
Windows: xTray

Note that HexChat 2.8.0+ has its own tray feature, but you can disable it in Settings > Preferences > Alerts and still run these plugins, if you prefer.

### 20. Can I select and copy text with the time stamps?

Yes, but this requires at least HexChat 2.6.3. Simply hold down SHIFT while marking the text and the time stamps will be included.

### 21. What's the deal with opening URLs in HexChat on Unix/Linux?

Right-clicking on a URL and selecting Open Link in Browser will open the link in your "preferred browser". In Gnome, your preferred browser can be changed in System > Preferences > More Preferences > Preferred Applications.
Notes for 2.8.0 or newer:
Everything should just work automatically without any changes from you. Here's how the current logic works:

- First, it tries to run xdg-open, which is a universal URL handler from freedesktop.org. Most modern Linux desktops will have this now, or in the near future.
- If xdg-open doesn't exist, it will try to detect a running Gnome or KDE desktop. This is done via the environment variables GNOME_DESKTOP_SESSION_ID and KDE_FULL_SESSION.
- If Gnome is detected, it will execute: gnome-open <url>
- If KDE is detected, it will execute: kfmclient exec <url>

Notes for 2.6.8 or older:
If you're not using Gnome, e.g KDE or some other desktop environment, you're fresh out of luck!
Note for Debian and Ubuntu: Integration with Gnome is broken on this distro! Please set sensible-browser instead. We have no control over what the Debian packagers do, so complain to them for this screw up. Example: sudo update-alternatives --set x-www-browser /usr/bin/firefox
More details
While holding down CTRL you can single left-click a URL to open it in your preferred browser. If you really want to change this to plain left-click you can type: /set gui_url_mod 0, provided you have HexChat 2.6.6 or newer.
You can also add more items to the right-click menu in HexChat: Settings > Advanced > URL Handlers.
For example, you could add an entry like !firefox -a firefox -remote 'openURL(%s,new-tab)'
But this kind of messing around shouldn't be necessary, it just works automatically in Gnome, KDE and Windows with 2.8.0+!

### 22. Where are the log files saved to?

UNIX
~/.hexchat/logs/
where ~ represents your home directory.
Windows
Windows XP/2000: C:\Documents and Settings\username\Application Data\HexChat\logs
Windows Vista/7: C:\Users\username\AppData\Roaming\HexChat\logs

### 23. How do I rotate log files every so often?

Requires: 2.6.1+
By default settings, no rotation occurs, your log files will just keep getting larger.
Go to Settings > Preferences > Logging and change the log filename to any one of these:

> Setting | Example filename that would be written
> %Y-%m-%d/%n-%c.log | 2006-12-30/FreeNode-#channel.log
> %n/%Y-%m-%d/%c.log | FreeNode/2006-12-30/#channel.log
> %n/%c.log | FreeNode/#channel.log (no rotation)

%Y, %m and %d represents the current year, month and day respectively. %n is the network name, e.g. "FreeNode" or "UnderNet", and finally, %c is the channel. In these examples, a new log filename and folder would be created after midnight.
You can find more possibilities at http://xchat.org/docs/log/.

### 24. How do I enable graphical smilies (emoticons)?

This feature is only available in the official Windows HexChat release. You have to TICK this feature during installation. If you didn't do this, you can simply run the installer again, and TICK the "Eye Candy Theme" when given the option.

If you want to use the graphical theme, but disable it just for smilies (i.e leave it ON for things like Join/Part, Modes etc only), type this command and restart:
/set text_emoticons off

### 25. Where did the Real Name field go?

The real name field is now removed from the Network List. This is in order to avoid alienating newcomers (some might be afraid of their personal data).

The network-specific real name can still be set via the GUI. If you want to modify the global real name, just issue the following command:

>           /set irc_real_name Stewie Griffin

### 26. How do I migrate my settings from XChat?

UNIX:
Copy ~/.xchat2 to ~/.config/hexchat
Rename ~/.config/hexchat/xchatlogs to ~/.config/hexchat/logs
Move all your 3rd party scripts/plugins to ~/.config/hexchat/addons
Rename ~/.config/hexchat/plugin_*.conf to ~/.config/hexchat/addon_*.conf
WINDOWS:
Copy %APPDATA%\X-Chat 2 to %APPDATA%\HexChat
Rename %APPDATA%\HexChat\xchatlogs to %APPDATA%\HexChat\logs
Move all your 3rd party scripts/plugins to %APPDATA%\HexChat\addons
Rename %APPDATA%\HexChat\plugin_*.conf to %APPDATA%\HexChat\addon_*.conf

## 3. Section Three: Contributions, Development and Bugs.

### 1. Why does HexChat leak so much memory?

The simple answer is, it doesn't! There are some GTK+ pixmap based themes around that leak a lot of memory. Please try using a different theme and see if that resolves the problem. HexChat itself only allocates about 40kb of memory through malloc()!

### 2. My copy of HexChat crashes, what can I do?

Firstly, make sure it's the latest stable version of HexChat. Stable versions have an EVEN middle number, e.g.: 2.8.0 or 2.8.1. Often late fixes are placed in this directory: 2.8.x patches

If you still experience crashes, you should consider running it through GDB. This will help us find a fix quickly, and it's easy to do! See here.

### 3. Can I write a new language translation for HexChat?

You sure can, but I don't accept translations directly. They must be done through the Translation Project. All the relevant information should be on that page.