Theme Files

We distribute themes as .hct files. These are just simply ZIP archives that you can extract manually into your config folder with HexChat closed. Some themes can be found here.

On unix for example you can extract these with this command while HexChat is closed:

unzip ~/Downloads/monokai.hct -d ~/.config/hexchat

The theme manager is an optional external application, which is included with the installer on Windows and buildable on Unix, that simply helps install themes.



Colors are defined in Settings ‣ Preferences ‣ Colors. Text Colors set the palette for events to use. The rest like background color directly affect parts of the UI.

mIRC colors (00-15) are what you refer to when sending colored text over IRC for others to see and vice versa, because of this they should somewhat follow a set of standards so clients can agree 04 is red.

Local colors (16-31) are to be used by HexChat only and can be anything you wish, these are typically what you use in your events.

Text Events

Text events control the look of every event you see. They can be customized in Settings ‣ Text Events using these codes to format it:

  • %C<fg>,<bg> Color code (e.g. %C02,00 is blue on grey)

  • %R Reverse color

  • %U Underlined text

  • %B Bold text

  • %I Italic text (2.10.0+)

  • %H Hide text

  • %O Normal text

  • %% Escaped %

  • $t Text separator (tab character)

  • $aXXX Ascii value

  • $<num> Event information


Always hit enter after editing a field.


HexChat comes with built in icons for the tray, user list, and channel tree (which can be disabled in Preferences). You can use custom icons by placing icons (16x16 recommended) in an icons subdir, which may need to be created, within your config folder. The icons must be named exactly as follows including file extensions:

  • User List

    • ulist_netop.png

    • ulist_founder.png

    • ulist_owner.png

    • ulist_op.png

    • ulist_halfop.png

    • ulist_voice.png

  • Channel Tree

    • tree_channel.png

    • tree_dialog.png

    • tree_server.png

    • tree_util.png

  • Tray Icon

    • tray_normal.png

    • tray_fileoffer.png

    • tray_highlight.png

    • tray_message.png

    • hexchat.png

Gtk Theme

To customize more than just text color such as the window borders you must install a gtk theme.

GTK themes can be either installed globally (changing all gtk2 applications) or to HexChat specifically.

On Linux application specific themes would work by setting the GTK2_RC_FILES environment variable but that will not be shown here.

On Windows application specific themes on Windows requires write permissions to HexChat’s install dir (e.g. in Program Files). Global themes are set in %USERPROFILE%\.gtkrc-2.0 but will not be covered here.

The only requirement for themes on Windows is that they are for gtk2 and they use the Pixbuf engine. Themes requiring other engines will work but not look correct. HexChat has also only shipped this engine since 2.10.0. If you use < 2.12.0 you need to install HexChat with the Gtk theme option unchecked as this will avoid the installer overwriting it on updates.

This example will use the Vertex theme. Which contains an unoffensive dark theme and mostly uses the Pixbuf engine. Zips are on the releases page.

Note that <installdir> refers to the full path where HexChat is installed which by default is C:\Program Files\HexChat. Also these directories may need to be created.

  1. Create the directory <installdir>\share\themes\vertex\gtk-2.0

  2. Extract contents of vertex-theme\common\gtk-2.0-dark\ into this directory.

  3. Create an empty file at <installdir>\etc\gtk-2.0\gtkrc (with no file extension!)

  4. Edit it and add gtk-theme-name = "vertex"

Buttons, Menus, and Popups

Userlist Popup

Popups are shown when you right click on a nickname, either in the userlist or in the main chat itself. These can be edited in Settings ‣ Userlist Popup

The Name column can take either just the name of the entry, SUB/ENDSUB for submenus, SEP for separators, and TOGGLE for toggleable options. Suffix the name with ~GTK_ICON_NAME~ to show an icon (see Gtk Stock Items) and prefix a character with _ for keyboard shortcuts (e.g. N_ame will bind a).

The Command column can take any command with text formatted using the same codes as text events and on top of that they also have their own codes:

  • %a all selected nicks

  • %c current channel

  • %h selected nick’s hostname

  • %m machine info

  • %n your nickname

  • %s selected nickname

  • %t time/date

  • %u selected nick’s account (2.9.6+)

As a sidenote the gui_ulist_doubleclick setting can run a command using these codes when double-clicking a nick in the userlist.

Userlist Buttons

Buttons are shown below the userlist, can be edited in Settings ‣ Userlist Buttons, and take the same syntax as Userlist Popup for commands.


In order to add custom entries to your menu you need to first enable the usermenu with the command /set gui_usermenu on which may require a restart. Once this is enabled you can go to Usermenu ‣ Edit this Menu to add any command you would like. For menu entries it supports the same as Userlist Popups.