Caution!
This is generally not recommended. Some issues that may arise are mentioned here: hexchat/hexchat#1794 (comment)
- Unix
- Copy
~/.xchat2
to~/.config/hexchat
- Rename
~/.config/hexchat/xchat.conf
to~/.config/hexchat/hexchat.conf
- Rename
~/.config/hexchat/servlist_.conf
to~/.config/hexchat/servlist.conf
- Rename
~/.config/hexchat/xchatlogs
to~/.config/hexchat/logs
- Move all your 3rd party addons (plugins/scripts) to
~/.config/hexchat/addons
- Move all your client certs to
~/.config/hexchat/certs
- Copy
- Windows
- Copy
%APPDATA%\X-Chat 2
to%APPDATA%\HexChat
- Rename
%APPDATA%\HexChat\xchat.conf
to%APPDATA%\HexChat\hexchat.conf
- Rename
%APPDATA%\HexChat\servlist_.conf
to%APPDATA%\HexChat\servlist.conf
- Rename
%APPDATA%\HexChat\xchatlogs
to%APPDATA%\HexChat\logs
- Move all your 3rd party addons (plugins/scripts) to
%APPDATA%\HexChat\addons
- Move all your client certs to
%APPDATA%\HexChat\certs
- Copy
The server list format also changed, instead of a giant autojoin list formatted J=chan1,chan2 key1,key2
it is now formatted on seperate lines J=chan1,key1\nJ=chan2,key2
In the Network List, select the network to which you would like to automatically connect to at startup, click the "Edit..." button, and then tick the checkbox for "Connect to this network automatically".
To automatically join channels for this network upon connecting, select the "Autojoin channels" tab in this same window and add your desired channels here. You can also add a currently joined channel by right-clicking its name in the channel switcher and by toggling "Autojoin" on.
Try the following command from a chat window (time is in seconds):
/set net_ping_timeout 60
There are 3 ways to authenticate before joining a channel, all are network dependant but nickserv is common and SASL is the best (HexChats default network list tries to use the best method by default, don't change it):
- Use SASL which can be enabled in :menuselection:`HexChat --> Network list --> Edit` (2.9.4+). Note that your username must match your nickserv account, you can set it by unchecking Use global user information.
- Use a Nickserv password and increase the delay before joining in :menuselection:`Settings --> Preferences --> Advanced`
- Use a client cert which requires the most setup.
Windows:
Unix:
- Gnome 3: :menuselection:`System Settings --> Details --> Default Applications`
- Other DE's have their own settings that may or may not work.
If these do not work or you do not use a DE use the command :command:`gio`:
gio mime x-scheme-handler/http firefox.desktop gio mime x-scheme-handler/https firefox.desktop
If you use an older distro that doesn't have the :command:`gio` command you can install :command:`gvfs-mime`:
gvfs-mime --set x-scheme-handler/http firefox.desktop gvfs-mime --set x-scheme-handler/https firefox.desktop
Now upon launching it will use the Exec line in their desktop file replacing %u with the url. If you get a blank window this is where the problem is.
Alternatively you can add a Url Handler
Go to the menus, :menuselection:`Settings --> Preferences --> Network Setup` and fill in the requested information there. Authentication (using a username and password) is only supported for HTTP and Socks5.
For information on Tor see our tips page
To display @ and + characters next to nicknames as they talk, do the following:
In the menus, open up :menuselection:`Settings --> 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.
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 bantype where the bantype is a number from 0 to 3.
Or set the default with:
/set irc_ban_type bantype sets the default ban type to use for all bans. The different types are:
0 = *!*@*.host 1 = *!*@domain 2 = *!*user@*.host 3 = *!*user@domain
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.
To disable joins and parts from being displayed in all channels check 'Hide join and part messages' under :menuselection:`Settings -> Preferences -> Chatting -> General` (Advanced pre-2.9.6)'.
Then all channels you join after setting this will start with "Show join/part messages" turned off.
To disable the prints for only certain channels, right click on the channel tab and click :menuselection:`Settings -> Hide Join/Part Messages`
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 :menuselection:`Settings --> Preferences --> Network setup`. 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.
There are a few ways to do this:
- If this is during connection the network list (Ctrl+s) has a 'connect commands' section as well as most login types you would need.
- /LOAD -e <textfile>, where <textfile> is a file in your config dir containing commands on each line.
- Separate your commands with CTRL-SHIFT-u-a. This will appear as a little box with numbers on it (or an invisible character).
- 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.
If you get this error when trying to load a Perl or Python script, it means the plugin or language for running those scripts isn't loaded.
- On Unix install the packages including these plugins (e.g. hexchat-perl) and perl.
- If you are missing Lua your distro may not have HexChat 2.12.1
- On Windows select the plugins in the installer.
In the menus, go to: :menuselection:`Settings --> Preferences --> Sound`. Select the event you want to make a sound on, then type in a sound filename (or use the Browse button). On Windows, sound files must be in .wav format.
The root of your HexChat config is:
- Windows: %APPDATA%\HexChat
- Unix/Linux: ~/.config/hexchat
Referred to as <config> from now. HexChat automatically loads, at startup:
- <config>/addons/*.pl Perl scripts
- <config>/addons/*.py Python scripts
- <config>/addons/*.lua Lua scripts
- <config>/addons/*.dll Plugins (Windows)
- <config>/addons/*.so Plugins (Unix)
HexChat includes support for a tray icon which can be enabled in :menuselection:`Settings --> Preferences --> Alerts`.
If that option does not appear then HexChat could not detect a usable tray. Some desktops such as GNOME require an extension for this.
To see the various launch options such as setting configdir or minimize level run:
hexchat --help
Unix:
~/.config/hexchat/logs
Windows:
%APPDATA%\HexChat\logs
HexChat supports many platforms and to be consistent it uses Unix line endings.
This is normally not a problem at all but Microsoft Notepad does not support these so they are rendered as a single line. Any other editor should support them.
By default settings, no rotation occurs, your log files will just keep getting larger.
Go to :menuselection:`Settings --> Preferences --> Logging` and change the log filename to any one of these:
%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.
The format can also be a full path if you want to save logs to an external drive for example.
For the full list of formatting codes, please refer to the Unix or Windows documentation on strftime.
The Real name field used to be accessible via the Network List, which is the very first screen that a new user sees. Newcomers, who are not familiar with IRC terminology, might be afraid of their personal data. In order to avoid alienating such people, we decided to remove this setting from the Network List. Now you can access this setting under :menuselection:`Settings --> Preferences --> Advanced` instead, or if you prefer the command line, you can use the following command:
/set irc_real_name Stewie Griffin
On Windows, HexChat is using the Instant Message Notification system sound for making beep alerts, and if it's unspecified, it attempts to produce a simple beep effect. In case you don't hear beeps when alerts occur, you need to set this system sound to the desired sound effect. To do this, go to :menuselection:`Control Panel --> Hardware and Sound --> Change system sounds`.
On Unix it uses libcanberra by default to play the "message-new-instant" freedesktop sound. Use the canberra-gtk-play command to test playing events or custom sound files as that is likely where the problem lies.
Press Ctrl + Shift + U at once. When you release the keys, u will appear in your input box.
Now you can enter the 4-digit code of the desired glyph. When you're done, just press Space or Return, and the glyph will appear as well.
Note
Windows alt codes will not work.
There are no official requirements to be added to the network list, but there are some simple guidelines of what the network SHOULD have.
- A maintained website listing servers.
- Has been around for a while.
- A decent amount of active users (100+).
- Doesn't block large groups of users.
You should make a pull request on GitHub if you want the quickest results, the list is stored in src/common/servlist.c. You should include an SSL server if supported but you should not include IPv6 only servers and mark SASL as default if supported. Follow the syntax of other networks in the file.
HexChat, being a C application, depends on Microsoft's Visual C++ Runtime. Normally the HexChat installer will install this runtime for you and function as expected. However, if you use the portable mode of the installer it cannot install system libraries (this allows running as an unprivileged user).
You can simply install it from Microsoft directly to solve this error:
- 32bit - https://aka.ms/vs/17/release/vc_redist.x86.exe
- 64bit - https://aka.ms/vs/17/release/vc_redist.x64.exe
This launches HexChat with the --no-auto
and --no-plugins
options. This can bypass any issues you have
with a problematic plugin or auto-connecting network.