Using

Scripting

Gtkrc

Certain aspects of XChat's appearance cannot be modified within the client. These settings default to certain GTK settings which the GTK theme controls. However if you want to modify the item only within XChat, there are ways to accomplish that using a custom gtkrc file.

Locating the gtkrc file

GTK themes use gtkrc (GTK run commands) files to configure the appearance of the different widgets. GTK will load multiple gtkrc files, loading some after others to allow settings to be predictably overridden. Primarily, there is a Global, a Theme, and a User gtkrc file. The changes presented here are considered "User" specific, as most people will want this to appear in more than just one specific GTK theme.

Linux

Normally, the user gtkrc file is ~/.gtkrc-2.0, but your distribution may use a different file. To determine if you distribution uses a separate file, open up .gtkrc-2.0 in a text editor and look for a comment such as "Do Not Modify This File". If a line such as this is present, another file will be specified. The file specified is then what you will need to modify.

For most distributions, if ~/.gtkrc-2.0 does not exist, simply create a plain text file with this path and name.

Windows (Official)

The official build uses a custom version of gtk, and so does not use the shared libraries as specified below. To make changes to gtkrc in this case, work with the file C:\Program Files\xchat\gtkrc.

Windows (Shared)

For builds such as XChat-WDK, SilvereX, and zerostress, the GTK libraries are shared, and so the gtkrc file in question is located in your Windows profile with the name of .gtkrc-2.0. This file will probably be located in the following location:

Windows 98/ME
C:\Windows\Profiles\username\
Windows XP/2000
C:\Documents and Settings\username\
Windows Vista/7
C:\Users\username\

If your theme manager replaces this file, you may have the following file which you could also edit: C:\Program Files\x-chat 2\etc\gtk-2.0\gtkrc

More Channels in Treeview

XChat already has /set -or gui_tweaks 32, but this will only free up so many pixels. There is also the Settings -> Preferences -> Channel switcher -> Smaller text option, but this to will result in limited success. For the following setting, you will want to have the gui_tweaks setting enabled, but Smaller text turned OFF.

Modify your gtkrc file and add the following content:

style "xchatsmall" {
	GtkTreeView::expander-size = 10
	font_name = "Sans 7"
}
widget "*xchat-tree*" style "xchatsmall"
widget "*xchat-userlist*" style "xchatsmall"

Save this file, and then make a change to your general GTK appearance (in Gnome, simply open Appearance Preferences and change the theme). Next, in XChat, switch to Tab View, and then back to Tree View. At this point, you should be able to see many more channels and users in their respective lists.

Dark and Small

This screenshot was done with the following gtkrc file. Along with the changes, comments are added before lines to state what each line does in case you wish to change colors yourself.

style "xchatdarksmall" {
	GtkTreeView::expander-size = 7
	font_name = "Sans 7"

	# Color of text of normal text in tree
	text[NORMAL] = "#EEEEEE"
	# Color of the text of selected row
	text[ACTIVE] = "#51db4d"

	# Color of tree background for Linux and Silverex
	GtkTreeView::even-row-color = "#444444"

	# background of arrow when not hovered
	# This line is also used as the background color on the official build
	base[NORMAL]      = "#444444"

	# hover over arrow on some themes
	base[PRELIGHT]    = "#83ff30"
	# Color of the selected row
	base[ACTIVE]      = "#222222"
	# Color or arrow when you click
	base[SELECTED]    = "#ff7f00"

	# Foreground of arrow when not hovered
	fg[NORMAL]     = "#F1FDE9"
	# hover over arrow on other themes
	fg[PRELIGHT]   = "#83ff30"
	# border of arrow when clicked (on some themes)
	fg[ACTIVE]     = "#999999"
}
widget "*xchat-tree*" style "xchatdarksmall"
widget "*xchat-userlist*" style "xchatdarksmall"

Additional Options

Disabling System Beep

XChat itself does not cause a system beep when you hold the backspace down, or hit the right arrow at the end of an input line, instead it uses the Gtk setting. This setting should follow the OS policy on beeps. So if sounds are disabled on your system, XChat will not beep. If you are looking for another way though, you can add the following line to your gtkrc file.

gtk-error-bell = 0


Print - Recent Changes - Search
Page last modified on October 28, 2011, at 12:34 AM