summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorBerke Viktor <bviktor@hexchat.org>2012-10-22 13:49:28 +0200
committerBerke Viktor <bviktor@hexchat.org>2012-10-22 13:49:28 +0200
commitbf27d4305288872507e1c6283df91783785c1b1e (patch)
treee114c37041661c90084d38a60a0a4ecc0be2fe6e
parent87e903cd739ae68aaadd086ebb2b831680e882cb (diff)
Variable cleanup for gui_*
-rw-r--r--src/common/cfgfiles.c215
-rw-r--r--src/common/dcc.c10
-rw-r--r--src/common/ignore.c6
-rw-r--r--src/common/inbound.c8
-rw-r--r--src/common/servlist.c2
-rw-r--r--src/common/userlist.c4
-rw-r--r--src/common/xchat.c20
-rw-r--r--src/common/xchat.h129
-rw-r--r--src/fe-gtk/chanlist.c16
-rw-r--r--src/fe-gtk/chanview-tree.c6
-rw-r--r--src/fe-gtk/dccgui.c2
-rw-r--r--src/fe-gtk/fe-gtk.c6
-rw-r--r--src/fe-gtk/joind.c8
-rw-r--r--src/fe-gtk/maingui.c196
-rw-r--r--src/fe-gtk/menu.c100
-rw-r--r--src/fe-gtk/plugin-tray.c8
-rw-r--r--src/fe-gtk/servlistgui.c20
-rw-r--r--src/fe-gtk/setup.c122
-rw-r--r--src/fe-gtk/userlistgui.c20
-rw-r--r--src/fe-text/fe-text.c8
20 files changed, 453 insertions, 453 deletions
diff --git a/src/common/cfgfiles.c b/src/common/cfgfiles.c
index 5c8a144d..d8f610a7 100644
--- a/src/common/cfgfiles.c
+++ b/src/common/cfgfiles.c
@@ -435,74 +435,75 @@ const struct prefs vars[] =
 	{"flood_msg_num", P_OFFINT (hex_flood_msg_time), TYPE_INT},
 	{"flood_msg_time", P_OFFINT (hex_flood_msg_time), TYPE_INT},
 
-	{"gui_auto_open_chat", P_OFFINT (autoopendccchatwindow), TYPE_BOOL},
-	{"gui_auto_open_dialog", P_OFFINT (autodialog), TYPE_BOOL},
-	{"gui_auto_open_recv", P_OFFINT (autoopendccrecvwindow), TYPE_BOOL},
-	{"gui_auto_open_send", P_OFFINT (autoopendccsendwindow), TYPE_BOOL},
-	{"gui_chanlist_maxusers", P_OFFINT (gui_chanlist_maxusers), TYPE_INT},
-	{"gui_chanlist_minusers", P_OFFINT (gui_chanlist_minusers), TYPE_INT},
-	{"gui_compact", P_OFFINT (gui_compact), TYPE_BOOL},
-	{"gui_dialog_height", P_OFFINT (dialog_height), TYPE_INT},
-	{"gui_dialog_left", P_OFFINT (dialog_left), TYPE_INT},
-	{"gui_dialog_top", P_OFFINT (dialog_top), TYPE_INT},
-	{"gui_dialog_width", P_OFFINT (dialog_width), TYPE_INT},
-	{"gui_hide_menu", P_OFFINT (hidemenu), TYPE_BOOL},
-	{"gui_input_nick", P_OFFINT (gui_input_nick), TYPE_BOOL},
-	{"gui_input_spell", P_OFFINT (gui_input_spell), TYPE_BOOL},
-	{"gui_input_style", P_OFFINT (style_inputbox), TYPE_BOOL},
-	{"gui_join_dialog", P_OFFINT (gui_join_dialog), TYPE_BOOL},
-	{"gui_lagometer", P_OFFINT (lagometer), TYPE_INT},
-	{"gui_lang", P_OFFINT (gui_lang), TYPE_INT},
-	{"gui_mode_buttons", P_OFFINT (chanmodebuttons), TYPE_BOOL},
-	{"gui_one_instance", P_OFFINT (gui_one_instance), TYPE_BOOL},
-	{"gui_pane_left_size", P_OFFINT (gui_pane_left_size), TYPE_INT},
-	{"gui_pane_right_size", P_OFFINT (gui_pane_right_size), TYPE_INT},
-	{"gui_pane_right_size_min", P_OFFINT (gui_pane_right_size_min), TYPE_INT},
-	{"gui_quit_dialog", P_OFFINT (gui_quit_dialog), TYPE_BOOL},
-	{"gui_slist_fav", P_OFFINT (slist_fav), TYPE_INT},
-	{"gui_slist_select", P_OFFINT (slist_select), TYPE_INT},
-	{"gui_slist_skip", P_OFFINT (slist_skip), TYPE_BOOL},
-	{"gui_tab_chans", P_OFFINT (tabchannels), TYPE_BOOL},
-	{"gui_tab_dialogs", P_OFFINT (privmsgtab), TYPE_BOOL},
-	{"gui_tab_dots", P_OFFINT (gui_tab_dots), TYPE_BOOL},
-	{"gui_tab_icons", P_OFFINT (tab_icons), TYPE_BOOL},
-	{"gui_tab_layout", P_OFFINT (tab_layout), TYPE_INT},
-	{"gui_tab_newtofront", P_OFFINT (newtabstofront), TYPE_INT},
-	{"gui_tab_notices", P_OFFINT (notices_tabs), TYPE_BOOL},
-	{"gui_tab_pos", P_OFFINT (tab_pos), TYPE_INT},
-	{"gui_tab_server", P_OFFINT (use_server_tab), TYPE_BOOL},
-	{"gui_tab_small", P_OFFINT (tab_small), TYPE_INT},
-	{"gui_tab_sort", P_OFFINT (tab_sort), TYPE_BOOL},
-	{"gui_tab_trunc", P_OFFINT (truncchans), TYPE_INT},
-	{"gui_tab_utils", P_OFFINT (windows_as_tabs), TYPE_BOOL},
-	{"gui_throttlemeter", P_OFFINT (throttlemeter), TYPE_INT},
-	{"gui_topicbar", P_OFFINT (topicbar), TYPE_BOOL},
-	{"gui_tray", P_OFFINT (gui_tray), TYPE_BOOL},
-	{"gui_tray_flags", P_OFFINT (gui_tray_flags), TYPE_INT},
-	{"gui_ulist_buttons", P_OFFINT (userlistbuttons), TYPE_BOOL},
-	{"gui_ulist_doubleclick", P_OFFSET (doubleclickuser), TYPE_STR},
-	{"gui_ulist_hide", P_OFFINT (hideuserlist), TYPE_BOOL},
-	{"gui_ulist_icons", P_OFFINT (gui_ulist_icons), TYPE_BOOL},
-	{"gui_ulist_pos", P_OFFINT (gui_ulist_pos), TYPE_INT},
-	{"gui_ulist_resizable", P_OFFINT (paned_userlist), TYPE_BOOL},
-	{"gui_ulist_show_hosts", P_OFFINT(showhostname_in_userlist), TYPE_BOOL},
-	{"gui_ulist_sort", P_OFFINT (userlist_sort), TYPE_INT},
-	{"gui_ulist_style", P_OFFINT (style_namelistgad), TYPE_BOOL},
-	{"gui_url_mod", P_OFFINT (gui_url_mod), TYPE_INT},
-	{"gui_usermenu", P_OFFINT (gui_usermenu), TYPE_BOOL},
-	{"gui_win_height", P_OFFINT (mainwindow_height), TYPE_INT},
-	{"gui_win_left", P_OFFINT (mainwindow_left), TYPE_INT},
-	{"gui_win_modes", P_OFFINT (gui_win_modes), TYPE_BOOL},
-	{"gui_win_save", P_OFFINT (mainwindow_save), TYPE_BOOL},
-	{"gui_win_state", P_OFFINT (gui_win_state), TYPE_INT},
-	{"gui_win_swap", P_OFFINT (gui_win_swap), TYPE_BOOL},
-	{"gui_win_top", P_OFFINT (mainwindow_top), TYPE_INT},
-	{"gui_win_ucount", P_OFFINT (gui_win_ucount), TYPE_BOOL},
-	{"gui_win_width", P_OFFINT (mainwindow_width), TYPE_INT},
+	{"gui_autoopen_chat", P_OFFINT (hex_gui_autoopen_chat), TYPE_BOOL},
+	{"gui_autoopen_dialog", P_OFFINT (hex_gui_autoopen_dialog), TYPE_BOOL},
+	{"gui_autoopen_recv", P_OFFINT (hex_gui_autoopen_recv), TYPE_BOOL},
+	{"gui_autoopen_send", P_OFFINT (hex_gui_autoopen_send), TYPE_BOOL},
+	{"gui_chanlist_maxusers", P_OFFINT (hex_gui_chanlist_maxusers), TYPE_INT},
+	{"gui_chanlist_minusers", P_OFFINT (hex_gui_chanlist_minusers), TYPE_INT},
+	{"gui_compact", P_OFFINT (hex_gui_compact), TYPE_BOOL},
+	{"gui_dialog_height", P_OFFINT (hex_gui_dialog_height), TYPE_INT},
+	{"gui_dialog_left", P_OFFINT (hex_gui_dialog_left), TYPE_INT},
+	{"gui_dialog_top", P_OFFINT (hex_gui_dialog_top), TYPE_INT},
+	{"gui_prefs.hex_gui_dialog_width", P_OFFINT (hex_gui_dialog_width), TYPE_INT},
+	{"gui_hide_menu", P_OFFINT (hex_gui_hide_menu), TYPE_BOOL},
+	{"gui_input_nick", P_OFFINT (hex_gui_input_nick), TYPE_BOOL},
+	{"gui_input_spell", P_OFFINT (hex_gui_input_spell), TYPE_BOOL},
+	{"gui_input_style", P_OFFINT (hex_gui_input_style), TYPE_BOOL},
+	{"gui_join_dialog", P_OFFINT (hex_gui_join_dialog), TYPE_BOOL},
+	{"gui_lagometer", P_OFFINT (hex_gui_lagometer), TYPE_INT},
+	{"gui_lang", P_OFFINT (hex_gui_lang), TYPE_INT},
+	{"gui_mode_buttons", P_OFFINT (hex_gui_mode_buttons), TYPE_BOOL},
+	{"gui_pane_left_size", P_OFFINT (hex_gui_pane_left_size), TYPE_INT},
+	{"gui_pane_right_size", P_OFFINT (hex_gui_pane_right_size), TYPE_INT},
+	{"gui_pane_right_size_min", P_OFFINT (hex_gui_pane_right_size_min), TYPE_INT},
+	{"gui_quit_dialog", P_OFFINT (hex_gui_quit_dialog), TYPE_BOOL},
+	{"gui_single", P_OFFINT (hex_gui_single), TYPE_BOOL},
+	{"gui_slist_fav", P_OFFINT (hex_gui_slist_fav), TYPE_BOOL},
+	{"gui_slist_select", P_OFFINT (hex_gui_slist_select), TYPE_INT},
+	{"gui_slist_skip", P_OFFINT (hex_gui_slist_skip), TYPE_BOOL},
+	{"gui_tab_chans", P_OFFINT (hex_gui_tab_chans), TYPE_BOOL},
+	{"gui_tab_dialogs", P_OFFINT (hex_gui_tab_dialogs), TYPE_BOOL},
+	{"gui_tab_dots", P_OFFINT (hex_gui_tab_dots), TYPE_BOOL},
+	{"gui_tab_icons", P_OFFINT (hex_gui_tab_icons), TYPE_BOOL},
+	{"gui_tab_layout", P_OFFINT (hex_gui_tab_layout), TYPE_INT},
+	{"gui_tab_newtofront", P_OFFINT (hex_gui_tab_newtofront), TYPE_INT},
+	{"gui_tab_notices", P_OFFINT (hex_gui_tab_notices), TYPE_BOOL},
+	{"gui_tab_pos", P_OFFINT (hex_gui_tab_pos), TYPE_INT},
+	{"gui_tab_server", P_OFFINT (hex_gui_tab_server), TYPE_BOOL},
+	{"gui_tab_small", P_OFFINT (hex_gui_tab_small), TYPE_INT},
+	{"gui_tab_sort", P_OFFINT (hex_gui_tab_sort), TYPE_BOOL},
+	{"gui_tab_trunc", P_OFFINT (hex_gui_tab_trunc), TYPE_INT},
+	{"gui_tab_utils", P_OFFINT (hex_gui_tab_utils), TYPE_BOOL},
+	{"gui_throttlemeter", P_OFFINT (hex_gui_throttlemeter), TYPE_INT},
+	{"gui_topicbar", P_OFFINT (hex_gui_topicbar), TYPE_BOOL},
+	{"gui_tray", P_OFFINT (hex_gui_tray), TYPE_BOOL},
+	{"gui_tray_flags", P_OFFINT (hex_gui_tray_flags), TYPE_INT},
+	{"gui_ulist_buttons", P_OFFINT (hex_gui_ulist_buttons), TYPE_BOOL},
+	{"gui_ulist_doubleclick", P_OFFSET (hex_gui_ulist_doubleclick), TYPE_STR},
+	{"gui_ulist_hide", P_OFFINT (hex_gui_ulist_hide), TYPE_BOOL},
+	{"gui_ulist_icons", P_OFFINT (hex_gui_ulist_icons), TYPE_BOOL},
+	{"gui_ulist_pos", P_OFFINT (hex_gui_ulist_pos), TYPE_INT},
+	{"gui_ulist_resizable", P_OFFINT (hex_gui_ulist_resizable), TYPE_BOOL},
+	{"gui_ulist_show_hosts", P_OFFINT(hex_gui_ulist_show_hosts), TYPE_BOOL},
+	{"gui_ulist_sort", P_OFFINT (hex_gui_ulist_sort), TYPE_INT},
+	{"gui_ulist_style", P_OFFINT (hex_gui_ulist_style), TYPE_BOOL},
+	{"gui_url_mod", P_OFFINT (hex_gui_url_mod), TYPE_INT},
+	{"gui_usermenu", P_OFFINT (hex_gui_usermenu), TYPE_BOOL},
+	{"gui_win_height", P_OFFINT (hex_gui_win_height), TYPE_INT},
+	{"gui_win_left", P_OFFINT (hex_gui_win_left), TYPE_INT},
+	{"gui_win_modes", P_OFFINT (hex_gui_win_modes), TYPE_BOOL},
+	{"gui_win_save", P_OFFINT (hex_gui_win_save), TYPE_BOOL},
+	{"gui_win_state", P_OFFINT (hex_gui_win_state), TYPE_INT},
+	{"gui_win_swap", P_OFFINT (hex_gui_win_swap), TYPE_BOOL},
+	{"gui_win_top", P_OFFINT (hex_gui_win_top), TYPE_INT},
+	{"gui_win_ucount", P_OFFINT (hex_gui_win_ucount), TYPE_BOOL},
+	{"gui_win_width", P_OFFINT (hex_gui_win_width), TYPE_INT},
 
 #ifdef WIN32
 	{"identd", P_OFFINT (identd), TYPE_BOOL},
 #endif
+
 	{"input_balloon_chans", P_OFFINT (input_balloon_chans), TYPE_BOOL},
 	{"input_balloon_hilight", P_OFFINT (input_balloon_hilight), TYPE_BOOL},
 	{"input_balloon_priv", P_OFFINT (input_balloon_priv), TYPE_BOOL},
@@ -658,13 +659,13 @@ load_config (void)
 	prefs.local_ip = 0xffffffff;
 	prefs.irc_join_delay = 3;
 	prefs.show_marker = 1;
-	prefs.newtabstofront = 2;
+	prefs.hex_gui_tab_newtofront = 2;
 	prefs.hex_completion_amount = 5;
 	prefs.hex_away_timeout = 60;
 	prefs.hex_away_size_max = 300;
 	prefs.hex_away_track = 1;
 	prefs.timestamp_logs = 1;
-	prefs.truncchans = 20;
+	prefs.hex_gui_tab_trunc = 20;
 	prefs.hex_dcc_auto_resume = 1;
 	prefs.hex_away_show_once = 1;
 	prefs.indent_nicks = 1;
@@ -674,34 +675,34 @@ load_config (void)
 	prefs.hex_dcc_fast_send = 1;
 #endif
 	prefs.wordwrap = 1;
-	prefs.autodialog = 1;
-	prefs.gui_input_spell = 1;
-	prefs.gui_lang = 15;
+	prefs.hex_gui_autoopen_dialog = 1;
+	prefs.hex_gui_input_spell = 1;
+	prefs.hex_gui_lang = 15;
 	prefs.autoreconnect = 1;
 	prefs.recon_delay = 10;
 	prefs.autocopy_text = 1;
 	prefs.text_replay = 1;
 	prefs.text_stripcolor_replay = 1;
 	prefs.text_stripcolor_topic = 1;
-	prefs.tabchannels = 1;
-	prefs.tab_layout = 2;	/* 0=Tabs 1=Reserved 2=Tree */
-	prefs.tab_icons = 1;
-	prefs.tab_sort = 1;
-	prefs.paned_userlist = 1;
-	prefs.newtabstofront = 2;
-	prefs.use_server_tab = 1;
-	prefs.privmsgtab = 1;
+	prefs.hex_gui_tab_chans = 1;
+	prefs.hex_gui_tab_layout = 2;	/* 0=Tabs 1=Reserved 2=Tree */
+	prefs.hex_gui_tab_icons = 1;
+	prefs.hex_gui_tab_sort = 1;
+	prefs.hex_gui_ulist_resizable = 1;
+	prefs.hex_gui_tab_newtofront = 2;
+	prefs.hex_gui_tab_server = 1;
+	prefs.hex_gui_tab_dialogs = 1;
 	/* prefs.colorednicks = 1; */
-	prefs.style_inputbox = 1;
-	prefs.style_namelistgad = 1;
+	prefs.hex_gui_input_style = 1;
+	prefs.hex_gui_ulist_style = 1;
 	prefs.hex_dcc_permissions = 0600;
 	prefs.max_lines = 500;
-	prefs.mainwindow_width = 640;
-	prefs.mainwindow_height = 400;
-	prefs.dialog_width = 500;
-	prefs.dialog_height = 256;
-	prefs.gui_join_dialog = 1;
-	prefs.gui_quit_dialog = 1;
+	prefs.hex_gui_win_width = 640;
+	prefs.hex_gui_win_height = 400;
+	prefs.hex_gui_dialog_width = 500;
+	prefs.hex_gui_dialog_height = 256;
+	prefs.hex_gui_join_dialog = 1;
+	prefs.hex_gui_quit_dialog = 1;
 	prefs.hex_dcc_timeout = 180;
 	prefs.hex_dcc_stall_timeout = 60;
 	prefs.notify_timeout = 15;
@@ -717,25 +718,25 @@ load_config (void)
 	prefs.hex_flood_msg_time = 5;
 	prefs.hex_flood_ctcp_time = 30;
 	prefs.hex_flood_ctcp_num = 5;
-	prefs.topicbar = 1;
-	prefs.lagometer = 1;
-	prefs.throttlemeter = 1;
-	prefs.autoopendccrecvwindow = 1;
-	prefs.autoopendccsendwindow = 1;
-	prefs.autoopendccchatwindow = 1;
+	prefs.hex_gui_topicbar = 1;
+	prefs.hex_gui_lagometer = 1;
+	prefs.hex_gui_throttlemeter = 1;
+	prefs.hex_gui_autoopen_recv = 1;
+	prefs.hex_gui_autoopen_send = 1;
+	prefs.hex_gui_autoopen_chat = 1;
 	/* prevent kicks and bans caused by overwhelming who'ing after reconnects */
 	/* prefs.userhost = 1; */
-	prefs.gui_chanlist_maxusers = 9999;
-	prefs.gui_chanlist_minusers = 5;
-	prefs.gui_tab_dots = 1;
-	prefs.gui_tray = 1;
-	prefs.gui_pane_left_size = 128;		/* with treeview icons we need a bit bigger space */
-	prefs.gui_pane_right_size = 100;
-	prefs.gui_pane_right_size_min = 80;
-	prefs.tab_pos = 1;
-	prefs.gui_ulist_icons = 1;
-	prefs.gui_ulist_pos = 3;
-	prefs.mainwindow_save = 1;
+	prefs.hex_gui_chanlist_maxusers = 9999;
+	prefs.hex_gui_chanlist_minusers = 5;
+	prefs.hex_gui_tab_dots = 1;
+	prefs.hex_gui_tray = 1;
+	prefs.hex_gui_pane_left_size = 128;		/* with treeview icons we need a bit bigger space */
+	prefs.hex_gui_pane_right_size = 100;
+	prefs.hex_gui_pane_right_size_min = 80;
+	prefs.hex_gui_tab_pos = 1;
+	prefs.hex_gui_ulist_icons = 1;
+	prefs.hex_gui_ulist_pos = 3;
+	prefs.hex_gui_win_save = 1;
 	prefs.bantype = 2;
 	prefs.input_balloon_time = 20;
 	prefs.input_flash_priv = prefs.input_flash_hilight = 1;
@@ -776,7 +777,7 @@ load_config (void)
 	snprintf (prefs.sounddir, sizeof (prefs.sounddir), "%s/sounds", get_xdir_utf8 ());
 	snprintf (prefs.hex_dcc_dir, sizeof (prefs.hex_dcc_dir), "%s/downloads", get_xdir_utf8 ());
 #endif
-	strcpy (prefs.doubleclickuser, "QUOTE WHOIS %s %s");
+	strcpy (prefs.hex_gui_ulist_doubleclick, "QUOTE WHOIS %s %s");
 	strcpy (prefs.hex_away_reason, _("I'm busy"));
 	strcpy (prefs.quitreason, _("Leaving"));
 	strcpy (prefs.partreason, prefs.quitreason);
@@ -835,10 +836,10 @@ load_config (void)
 		mkdir_utf8 (prefs.hex_dcc_dir);
 		mkdir_utf8 (prefs.hex_dcc_completed_dir);
 	}
-	if (prefs.mainwindow_height < 138)
-		prefs.mainwindow_height = 138;
-	if (prefs.mainwindow_width < 106)
-		prefs.mainwindow_width = 106;
+	if (prefs.hex_gui_win_height < 138)
+		prefs.hex_gui_win_height = 138;
+	if (prefs.hex_gui_win_width < 106)
+		prefs.hex_gui_win_width = 106;
 
 	sp = strchr (prefs.username, ' ');
 	if (sp)
diff --git a/src/common/dcc.c b/src/common/dcc.c
index 27483165..86a75754 100644
--- a/src/common/dcc.c
+++ b/src/common/dcc.c
@@ -796,7 +796,7 @@ dcc_read (GIOChannel *source, GIOCondition condition, struct DCC *dcc)
 static void
 dcc_open_query (server *serv, char *nick)
 {
-	if (prefs.autodialog)
+	if (prefs.hex_gui_autoopen_dialog)
 		open_query (serv, nick, FALSE);
 }
 
@@ -1855,7 +1855,7 @@ dcc_send (struct session *sess, char *to, char *file, int maxcps, int passive)
 					file++;
 				}
 				dcc->nick = strdup (to);
-				if (prefs.autoopendccsendwindow)
+				if (prefs.hex_gui_autoopen_send)
 				{
 					if (fe_dcc_open_send_win (TRUE))	/* already open? add */
 						fe_dcc_add (dcc);
@@ -2197,7 +2197,7 @@ dcc_chat (struct session *sess, char *nick, int passive)
 	dcc->nick = strdup (nick);
 	if (passive || dcc_listen_init (dcc, sess))
 	{
-		if (prefs.autoopendccchatwindow)
+		if (prefs.hex_gui_autoopen_chat)
 		{
 			if (fe_dcc_open_chat_win (TRUE))	/* already open? add only */
 				fe_dcc_add (dcc);
@@ -2300,7 +2300,7 @@ dcc_add_chat (session *sess, char *nick, int port, guint32 addr, int pasvid)
 		EMIT_SIGNAL (XP_TE_DCCCHATOFFER, sess->server->front_session, nick,
 						 NULL, NULL, NULL, 0);
 
-		if (prefs.autoopendccchatwindow)
+		if (prefs.hex_gui_autoopen_chat)
 		{
 			if (fe_dcc_open_chat_win (TRUE))	/* already open? add only */
 				fe_dcc_add (dcc);
@@ -2383,7 +2383,7 @@ dcc_add_file (session *sess, char *file, DCC_SIZE size, int port, char *nick, gu
 		{
 			dcc_get (dcc);
 		}
-		if (prefs.autoopendccrecvwindow)
+		if (prefs.hex_gui_autoopen_recv)
 		{
 			if (fe_dcc_open_recv_win (TRUE))	/* was already open? just add*/
 				fe_dcc_add (dcc);
diff --git a/src/common/ignore.c b/src/common/ignore.c
index 93ca5a76..aea482a2 100644
--- a/src/common/ignore.c
+++ b/src/common/ignore.c
@@ -335,7 +335,7 @@ ignore_save ()
 static gboolean
 flood_autodialog_timeout (gpointer data)
 {
-	prefs.autodialog = 1;
+	prefs.hex_gui_autoopen_dialog = 1;
 	return FALSE;
 }
 
@@ -412,10 +412,10 @@ flood_check (char *nick, char *ip, server *serv, session *sess, int what)	/*0=ct
 					/*ignore_add (char *mask, int priv, int noti, int chan,
 					   int ctcp, int invi, int unignore, int no_save) */
 
-					if (prefs.autodialog)
+					if (prefs.hex_gui_autoopen_dialog)
 					{
 						/*FIXME: only ignore ctcp or all?, its ignoring ctcps for now */
-						prefs.autodialog = 0;
+						prefs.hex_gui_autoopen_dialog = 0;
 						/* turn it back on in 30 secs */
 						fe_timeout_add (30000, flood_autodialog_timeout, NULL);
 					}
diff --git a/src/common/inbound.c b/src/common/inbound.c
index 67bc2ea9..6727a2e8 100644
--- a/src/common/inbound.c
+++ b/src/common/inbound.c
@@ -160,9 +160,9 @@ inbound_privmsg (server *serv, char *from, char *ip, char *text, int id)
 
 	sess = find_dialog (serv, from);
 
-	if (sess || prefs.autodialog)
+	if (sess || prefs.hex_gui_autoopen_dialog)
 	{
-		/*0=ctcp  1=priv will set autodialog=0 here is flud detected */
+		/*0=ctcp  1=priv will set hex_gui_autoopen_dialog=0 here is flud detected */
 		if (!sess)
 		{
 			if (flood_check (from, ip, serv, current_sess, 1))
@@ -333,7 +333,7 @@ inbound_action (session *sess, char *chan, char *from, char *ip, char *text, int
 			/* find a dialog tab for it */
 			sess = find_dialog (serv, from);
 			/* if non found, open a new one */
-			if (!sess && prefs.autodialog)
+			if (!sess && prefs.hex_gui_autoopen_dialog)
 			{
 				/* but only if it wouldn't flood */
 				if (flood_check (from, ip, serv, current_sess, 1))
@@ -863,7 +863,7 @@ inbound_notice (server *serv, char *to, char *nick, char *msg, char *ip, int id)
 	if (!sess)
 	{
 		ptr = 0;
-		if (prefs.notices_tabs)
+		if (prefs.hex_gui_tab_notices)
 		{
 			int stype = server_notice ? SESS_SNOTICES : SESS_NOTICES;
 			sess = find_session_from_type (stype, serv);
diff --git a/src/common/servlist.c b/src/common/servlist.c
index 2c6ee181..5ca80ed0 100644
--- a/src/common/servlist.c
+++ b/src/common/servlist.c
@@ -986,7 +986,7 @@ servlist_load_defaults (void)
 			}
 			/* 0x8e1b96f7 = ChatJunkies, 0xa82686ae = FreeNode */
 			if (g_str_hash (def[i].network) == 0xa82686ae)
-				prefs.slist_select = j;
+				prefs.hex_gui_slist_select = j;
 			j++;
 		} else
 		{
diff --git a/src/common/userlist.c b/src/common/userlist.c
index a18485b1..2dedb997 100644
--- a/src/common/userlist.c
+++ b/src/common/userlist.c
@@ -61,7 +61,7 @@ nick_cmp_alpha (struct User *user1, struct User *user2, server *serv)
 static int
 nick_cmp (struct User *user1, struct User *user2, server *serv)
 {
-	switch (prefs.userlist_sort)
+	switch (prefs.hex_gui_ulist_sort)
 	{
 	case 0:
 		return nick_cmp_az_ops (serv, user1, user2);
@@ -131,7 +131,7 @@ userlist_add_hostname (struct session *sess, char *nick, char *hostname,
 
 		if (away != 0xff)
 		{
-			if (prefs.showhostname_in_userlist || user->away != away)
+			if (prefs.hex_gui_ulist_show_hosts || user->away != away)
 			{
 				user->away = away;
 				fe_userlist_rehash (sess, user);
diff --git a/src/common/xchat.c b/src/common/xchat.c
index 9babd6c4..343f84ff 100644
--- a/src/common/xchat.c
+++ b/src/common/xchat.c
@@ -152,7 +152,7 @@ lagcheck_update (void)
 	server *serv;
 	GSList *list = serv_list;
 	
-	if (!prefs.lagometer)
+	if (!prefs.hex_gui_lagometer)
 		return;
 
 	while (list)
@@ -280,7 +280,7 @@ xchat_misc_checks (void)		/* this gets called every 1/2 second */
 
 	if (count >= 60)				/* every 30 seconds */
 	{
-		if (prefs.lagometer)
+		if (prefs.hex_gui_lagometer)
 			lag_check ();
 		count = 0;
 	}
@@ -389,7 +389,7 @@ new_ircwindow (server *serv, char *name, int type, int focus)
 	{
 	case SESS_SERVER:
 		serv = server_new ();
-		if (prefs.use_server_tab)
+		if (prefs.hex_gui_tab_server)
 			sess = session_new (serv, name, SESS_SERVER, focus);
 		else
 			sess = session_new (serv, name, SESS_CHANNEL, focus);
@@ -818,7 +818,7 @@ xchat_init (void)
 	servlist_init ();							/* load server list */
 
 	/* if we got a URL, don't open the server list GUI */
-	if (!prefs.slist_skip && !arg_url)
+	if (!prefs.hex_gui_slist_skip && !arg_url)
 		fe_serverlist_open (NULL);
 
 	/* turned OFF via -a arg */
@@ -828,7 +828,7 @@ xchat_init (void)
 		if (!servlist_have_auto ())	/* if no new windows open .. */
 		{
 			/* and no serverlist gui ... */
-			if (prefs.slist_skip || arg_url)
+			if (prefs.hex_gui_slist_skip || arg_url)
 				/* we'll have to open one. */
 				new_ircwindow (NULL, NULL, SESS_SERVER, 0);
 		} else
@@ -837,7 +837,7 @@ xchat_init (void)
 		}
 	} else
 	{
-		if (prefs.slist_skip || arg_url)
+		if (prefs.hex_gui_slist_skip || arg_url)
 			new_ircwindow (NULL, NULL, SESS_SERVER, 0);
 	}
 }
@@ -953,7 +953,7 @@ main (int argc, char *argv[])
 	int ret;
 
 #ifdef WIN32
-	char hexchat_lang[13];	/* LC_ALL= plus 5 chars of gui_lang and trailing \0 */
+	char hexchat_lang[13];	/* LC_ALL= plus 5 chars of hex_gui_lang and trailing \0 */
 	HANDLE mutex;
 #endif
 
@@ -966,7 +966,7 @@ main (int argc, char *argv[])
 	strcpy (hexchat_lang, "LC_ALL=");
 
 	/* this must be ordered EXACTLY as langsmenu[] */
-	switch (prefs.gui_lang)
+	switch (prefs.hex_gui_lang)
 	{
 		case 0:
 			strcat (hexchat_lang, "af");
@@ -1128,7 +1128,7 @@ main (int argc, char *argv[])
 
 	putenv (hexchat_lang);
 
-	if (prefs.gui_one_instance && !portable_mode ())
+	if (prefs.hex_gui_single && !portable_mode ())
 	{
 		DWORD error;
 
@@ -1193,7 +1193,7 @@ main (int argc, char *argv[])
 #ifdef WIN32
 	WSACleanup ();
 
-	if (prefs.gui_one_instance && !portable_mode ())
+	if (prefs.hex_gui_single && !portable_mode ())
 	{
 		ReleaseMutex (mutex);
 		CloseHandle (mutex);
diff --git a/src/common/xchat.h b/src/common/xchat.h
index f4f5e075..c7aee0f7 100644
--- a/src/common/xchat.h
+++ b/src/common/xchat.h
@@ -112,6 +112,7 @@ struct hexchatprefs
 	char hex_dcc_dir[PATHLEN + 1];
 	char hex_dcc_ip[DOMAINLEN + 1];
 	char hex_dnsprogram[72];
+	char hex_gui_ulist_doubleclick[256];
 
 	int hex_away_size_max;
 	int hex_away_timeout;
@@ -132,6 +133,33 @@ struct hexchatprefs
 	int hex_flood_ctcp_time;	/*seconds of floods */
 	int hex_flood_msg_num;		/*same deal */
 	int hex_flood_msg_time;
+	int hex_gui_chanlist_maxusers;
+	int hex_gui_chanlist_minusers;
+	int hex_gui_dialog_height;
+	int hex_gui_dialog_left;
+	int hex_gui_dialog_top;
+	int hex_gui_dialog_width;
+	int hex_gui_lagometer;
+	int hex_gui_lang;
+	int hex_gui_pane_left_size;
+	int hex_gui_pane_right_size;
+	int hex_gui_pane_right_size_min;
+	int hex_gui_slist_select;
+	int hex_gui_tab_layout;
+	int hex_gui_tab_newtofront;
+	int hex_gui_tab_pos;
+	int hex_gui_tab_small;
+	int hex_gui_tab_trunc;
+	int hex_gui_throttlemeter;
+	int hex_gui_tray_flags;
+	int hex_gui_ulist_pos;
+	int hex_gui_ulist_sort;
+	int hex_gui_url_mod;
+	int hex_gui_win_height;
+	int hex_gui_win_left;
+	int hex_gui_win_state;
+	int hex_gui_win_top;
+	int hex_gui_win_width;
 
 	unsigned int hex_away_auto_unmark;
 	unsigned int hex_away_omit_alerts;
@@ -146,6 +174,42 @@ struct hexchatprefs
 	unsigned int hex_dcc_remove;
 	unsigned int hex_dcc_save_nick;
 	unsigned int hex_dcc_send_fillspaces;
+	unsigned int hex_gui_autoopen_chat;
+	unsigned int hex_gui_autoopen_dialog;
+	unsigned int hex_gui_autoopen_recv;
+	unsigned int hex_gui_autoopen_send;
+	unsigned int hex_gui_compact;
+	unsigned int hex_gui_hide_menu;
+	unsigned int hex_gui_input_nick;
+	unsigned int hex_gui_input_spell;
+	unsigned int hex_gui_input_style;
+	unsigned int hex_gui_join_dialog;
+	unsigned int hex_gui_mode_buttons;
+	unsigned int hex_gui_quit_dialog;
+	unsigned int hex_gui_single;
+	unsigned int hex_gui_slist_fav;
+	unsigned int hex_gui_slist_skip;
+	unsigned int hex_gui_tab_chans;
+	unsigned int hex_gui_tab_dialogs;
+	unsigned int hex_gui_tab_dots;
+	unsigned int hex_gui_tab_icons;
+	unsigned int hex_gui_tab_notices;
+	unsigned int hex_gui_tab_server;
+	unsigned int hex_gui_tab_sort;
+	unsigned int hex_gui_tab_utils;
+	unsigned int hex_gui_topicbar;
+	unsigned int hex_gui_tray;
+	unsigned int hex_gui_ulist_buttons;
+	unsigned int hex_gui_ulist_hide;
+	unsigned int hex_gui_ulist_icons;
+	unsigned int hex_gui_ulist_resizable;
+	unsigned int hex_gui_ulist_show_hosts;
+	unsigned int hex_gui_ulist_style;
+	unsigned int hex_gui_usermenu;
+	unsigned int hex_gui_win_modes;
+	unsigned int hex_gui_win_save;
+	unsigned int hex_gui_win_swap;
+	unsigned int hex_gui_win_ucount;
 
 	/* these are the legacy variables */
 
@@ -159,7 +223,6 @@ struct hexchatprefs
 	char font_normal[4 * FONTNAMELEN + 1];
 	char font_main[FONTNAMELEN + 1];
 	char font_alternative[3 * FONTNAMELEN + 1];
-	char doubleclickuser[256];
 	char spell_langs[64];
 	char sounddir[PATHLEN + 1];
 	char soundcmd[PATHLEN + 1];
@@ -187,43 +250,16 @@ struct hexchatprefs
 	int tint_green;
 	int tint_blue;
 
-	int gui_pane_left_size;
-	int gui_pane_right_size;
-	int gui_pane_right_size_min;
-
-	int gui_chanlist_maxusers;
-	int gui_chanlist_minusers;
-	int gui_ulist_pos;
-	int tab_pos;
-
-	int tab_layout;
 	int max_auto_indent;
 	int max_lines;
 	int notify_timeout;
-	int mainwindow_left;
-	int mainwindow_top;
-	int mainwindow_width;
-	int mainwindow_height;
-	int gui_win_state;
-	int gui_url_mod;
-	int gui_lang;
-	int dialog_left;
-	int dialog_top;
-	int dialog_width;
-	int dialog_height;
 	int recon_delay;
 	int bantype;
-	int userlist_sort;
 	guint32 local_ip;
 	guint32 dcc_ip;
 
-	unsigned int tab_small;
-	unsigned int tab_icons;
-	unsigned int tab_sort;
-	unsigned int mainwindow_save;
 	unsigned int perc_color;
 	unsigned int perc_ascii;
-	unsigned int autodialog;
 	unsigned int autoreconnect;
 	unsigned int autoreconnectonfail;
 	unsigned int invisible;
@@ -235,22 +271,11 @@ struct hexchatprefs
 	unsigned int autocopy_stamp;
 	unsigned int autocopy_color;
 	unsigned int colorednicks;
-	unsigned int chanmodebuttons;
-	unsigned int userlistbuttons;
-	unsigned int showhostname_in_userlist;
-	unsigned int tabchannels;
-	unsigned int paned_userlist;
-	unsigned int autoopendccsendwindow;
-	unsigned int autoopendccrecvwindow;
-	unsigned int autoopendccchatwindow;
 	unsigned int transparent;
 	unsigned int text_stripcolor_msg;
 	unsigned int text_stripcolor_replay;
 	unsigned int text_stripcolor_topic;
 	unsigned int timestamp;
-	unsigned int slist_fav;
-	unsigned int slist_skip;
-	unsigned int slist_select;
 	unsigned int filterbeep;
 
 	unsigned int input_balloon_chans;
@@ -270,8 +295,6 @@ struct hexchatprefs
 	unsigned int input_tray_hilight;
 	unsigned int input_tray_priv;
 
-	unsigned int truncchans;
-	unsigned int privmsgtab;
 	unsigned int irc_join_delay;
 	unsigned int logging;
 	unsigned int timestamp_logs;
@@ -280,14 +303,6 @@ struct hexchatprefs
 	unsigned int raw_modes;
 	unsigned int userhost;
 	unsigned int irc_whois_front;
-	unsigned int use_server_tab;
-	unsigned int notices_tabs;
-	unsigned int style_namelistgad;
-	unsigned int style_inputbox;
-	unsigned int gui_join_dialog;
-	unsigned int gui_quit_dialog;
-	unsigned int gui_usermenu;
-	unsigned int windows_as_tabs;
 	unsigned int indent_nicks;
 	unsigned int text_replay;
 	unsigned int show_marker;
@@ -295,30 +310,14 @@ struct hexchatprefs
 	unsigned int thin_separator;
 	unsigned int auto_indent;
 	unsigned int wordwrap;
-	unsigned int gui_compact;
-	unsigned int gui_input_nick;
-	unsigned int gui_input_spell;
-	unsigned int gui_tab_dots;
-	unsigned int gui_tray;
-	unsigned int gui_tray_flags;
-	unsigned int gui_ulist_icons;
-	unsigned int gui_win_modes;
-	unsigned int gui_win_swap;
-	unsigned int gui_win_ucount;
 	unsigned int throttle;
-	unsigned int topicbar;
-	unsigned int hideuserlist;
-	unsigned int hidemenu;
 	unsigned int perlwarnings;
-	unsigned int lagometer;
-	unsigned int throttlemeter;
 	unsigned int pingtimeout;
 	unsigned int whois_on_notifyonline;
 	unsigned int wait_on_exit;
 	unsigned int confmode;
 	unsigned int utf8_locale;
 	unsigned int identd;
-	unsigned int gui_one_instance;
 
 	unsigned int url_grabber;
 	unsigned int url_grabber_limit;
diff --git a/src/fe-gtk/chanlist.c b/src/fe-gtk/chanlist.c
index af40e3eb..54348565 100644
--- a/src/fe-gtk/chanlist.c
+++ b/src/fe-gtk/chanlist.c
@@ -548,7 +548,7 @@ static void
 chanlist_minusers (GtkSpinButton *wid, server *serv)
 {
 	serv->gui->chanlist_minusers = gtk_spin_button_get_value_as_int (wid);
-	prefs.gui_chanlist_minusers = serv->gui->chanlist_minusers;
+	prefs.hex_gui_chanlist_minusers = serv->gui->chanlist_minusers;
 
 	if (serv->gui->chanlist_minusers < serv->gui->chanlist_minusers_downloaded)
 	{
@@ -569,7 +569,7 @@ static void
 chanlist_maxusers (GtkSpinButton *wid, server *serv)
 {
 	serv->gui->chanlist_maxusers = gtk_spin_button_get_value_as_int (wid);
-	prefs.gui_chanlist_maxusers = serv->gui->chanlist_maxusers;
+	prefs.hex_gui_chanlist_maxusers = serv->gui->chanlist_maxusers;
 }
 
 static void
@@ -739,22 +739,22 @@ chanlist_opengui (server *serv, int do_refresh)
 
 	if (!serv->gui->chanlist_minusers)
 	{
-		if (prefs.gui_chanlist_minusers < 1 || prefs.gui_chanlist_minusers > 999999)
+		if (prefs.hex_gui_chanlist_minusers < 1 || prefs.hex_gui_chanlist_minusers > 999999)
 		{
-			prefs.gui_chanlist_minusers = 5;
+			prefs.hex_gui_chanlist_minusers = 5;
 		}
 
-		serv->gui->chanlist_minusers = prefs.gui_chanlist_minusers;
+		serv->gui->chanlist_minusers = prefs.hex_gui_chanlist_minusers;
 	}
 
 	if (!serv->gui->chanlist_maxusers)
 	{
-		if (prefs.gui_chanlist_maxusers < 1 || prefs.gui_chanlist_maxusers > 999999)
+		if (prefs.hex_gui_chanlist_maxusers < 1 || prefs.hex_gui_chanlist_maxusers > 999999)
 		{
-			prefs.gui_chanlist_maxusers = 9999;
+			prefs.hex_gui_chanlist_maxusers = 9999;
 		}
 
-		serv->gui->chanlist_maxusers = prefs.gui_chanlist_maxusers;
+		serv->gui->chanlist_maxusers = prefs.hex_gui_chanlist_maxusers;
 	}
 
 	serv->gui->chanlist_window =
diff --git a/src/fe-gtk/chanview-tree.c b/src/fe-gtk/chanview-tree.c
index 763dea4f..5a678550 100644
--- a/src/fe-gtk/chanview-tree.c
+++ b/src/fe-gtk/chanview-tree.c
@@ -101,7 +101,7 @@ cv_tree_init (chanview *cv)
 	GTK_WIDGET_UNSET_FLAGS (view, GTK_CAN_FOCUS);
 	gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (view), FALSE);
 
-	if (prefs.gui_tab_dots)
+	if (prefs.hex_gui_tab_dots)
 	{
 		gtk_tree_view_set_enable_tree_lines (GTK_TREE_VIEW (view), TRUE);
 	}
@@ -112,7 +112,7 @@ cv_tree_init (chanview *cv)
 	if (cv->use_icons)
 	{
 		renderer = gtk_cell_renderer_pixbuf_new ();
-		if (prefs.gui_compact)
+		if (prefs.hex_gui_compact)
 			g_object_set (G_OBJECT (renderer), "ypad", 0, NULL);
 		gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (view),
 																	-1, NULL, renderer,
@@ -121,7 +121,7 @@ cv_tree_init (chanview *cv)
 
 	/* main column */
 	renderer = gtk_cell_renderer_text_new ();
-	if (prefs.gui_compact)
+	if (prefs.hex_gui_compact)
 		g_object_set (G_OBJECT (renderer), "ypad", 0, NULL);
 	gtk_cell_renderer_text_set_fixed_height_from_font (GTK_CELL_RENDERER_TEXT (renderer), 1);
 	gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (view),
diff --git a/src/fe-gtk/dccgui.c b/src/fe-gtk/dccgui.c
index 30c7ef03..737963d5 100644
--- a/src/fe-gtk/dccgui.c
+++ b/src/fe-gtk/dccgui.c
@@ -776,7 +776,7 @@ fe_dcc_open_recv_win (int passive)
 	view_mode = VIEW_BOTH;
 	gtk_tree_selection_set_mode (dccfwin.sel, GTK_SELECTION_MULTIPLE);
 
-	if (!prefs.windows_as_tabs)
+	if (!prefs.hex_gui_tab_utils)
 		g_signal_connect (G_OBJECT (dccfwin.window), "configure_event",
 								G_CALLBACK (dcc_configure_cb), 0);
 	g_signal_connect (G_OBJECT (dccfwin.sel), "changed",
diff --git a/src/fe-gtk/fe-gtk.c b/src/fe-gtk/fe-gtk.c
index b06d0bb3..b98236c4 100644
--- a/src/fe-gtk/fe-gtk.c
+++ b/src/fe-gtk/fe-gtk.c
@@ -345,7 +345,7 @@ create_input_style (GtkStyle *style)
 		style->font_desc = pango_font_description_from_string ("sans 11");
 	}
 
-	if (prefs.style_inputbox && !done_rc)
+	if (prefs.hex_gui_input_style && !done_rc)
 	{
 		done_rc = TRUE;
 		sprintf (buf, cursor_color_rc, (colors[COL_FG].red >> 8),
@@ -455,11 +455,11 @@ fe_new_window (session *sess, int focus)
 
 	if (sess->type == SESS_DIALOG)
 	{
-		if (prefs.privmsgtab)
+		if (prefs.hex_gui_tab_dialogs)
 			tab = TRUE;
 	} else
 	{
-		if (prefs.tabchannels)
+		if (prefs.hex_gui_tab_chans)
 			tab = TRUE;
 	}
 
diff --git a/src/fe-gtk/joind.c b/src/fe-gtk/joind.c
index dea9ce11..5c591070 100644
--- a/src/fe-gtk/joind.c
+++ b/src/fe-gtk/joind.c
@@ -95,9 +95,9 @@ joind_ok_cb (GtkWidget *ok, server *serv)
 	chanlist_opengui (serv, TRUE);
 
 xit:
-	prefs.gui_join_dialog = 0;
+	prefs.hex_gui_join_dialog = 0;
 	if (GTK_TOGGLE_BUTTON (serv->gui->joind_check)->active)
-		prefs.gui_join_dialog = 1;
+		prefs.hex_gui_join_dialog = 1;
 
 	gtk_widget_destroy (serv->gui->joind_win);
 	serv->gui->joind_win = NULL;
@@ -214,7 +214,7 @@ joind_show_dialog (server *serv)
 	gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
 
 	serv->gui->joind_check = checkbutton1 = gtk_check_button_new_with_mnemonic (_("_Always show this dialog after connecting."));
-	if (prefs.gui_join_dialog)
+	if (prefs.hex_gui_join_dialog)
 		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton1), TRUE);
 	gtk_widget_show (checkbutton1);
 	gtk_box_pack_start (GTK_BOX (vbox1), checkbutton1, FALSE, FALSE, 0);
@@ -246,7 +246,7 @@ joind_show_dialog (server *serv)
 void
 joind_open (server *serv)
 {
-	if (prefs.gui_join_dialog)
+	if (prefs.hex_gui_join_dialog)
 		joind_show_dialog (serv);
 }
 
diff --git a/src/fe-gtk/maingui.c b/src/fe-gtk/maingui.c
index 8fec6109..7b0bfcbb 100644
--- a/src/fe-gtk/maingui.c
+++ b/src/fe-gtk/maingui.c
@@ -210,10 +210,10 @@ mg_create_tab_colors (void)
 		pango_attr_list_unref (away_list);
 	}
 
-	plain_list = mg_attr_list_create (NULL, prefs.tab_small);
-	newdata_list = mg_attr_list_create (&colors[COL_NEW_DATA], prefs.tab_small);
-	nickseen_list = mg_attr_list_create (&colors[COL_HILIGHT], prefs.tab_small);
-	newmsg_list = mg_attr_list_create (&colors[COL_NEW_MSG], prefs.tab_small);
+	plain_list = mg_attr_list_create (NULL, prefs.hex_gui_tab_small);
+	newdata_list = mg_attr_list_create (&colors[COL_NEW_DATA], prefs.hex_gui_tab_small);
+	nickseen_list = mg_attr_list_create (&colors[COL_HILIGHT], prefs.hex_gui_tab_small);
+	newmsg_list = mg_attr_list_create (&colors[COL_NEW_MSG], prefs.hex_gui_tab_small);
 	away_list = mg_attr_list_create (&colors[COL_AWAY], FALSE);
 }
 
@@ -461,7 +461,7 @@ fe_set_title (session *sess)
 		break;
 	case SESS_CHANNEL:
 		/* don't display keys in the titlebar */
-		if (prefs.gui_win_modes)
+		if (prefs.hex_gui_win_modes)
 		{
 			snprintf (tbuf, sizeof (tbuf),
 						 DISPLAY_NAME": %s @ %s / %s (%s)",
@@ -475,7 +475,7 @@ fe_set_title (session *sess)
 						 sess->server->nick, server_get_network (sess->server, TRUE),
 						 sess->channel);
 		}
-		if (prefs.gui_win_ucount)
+		if (prefs.hex_gui_win_ucount)
 		{
 			snprintf (tbuf + strlen (tbuf), 9, " (%d)", sess->total);
 		}
@@ -498,13 +498,13 @@ fe_set_title (session *sess)
 static gboolean
 mg_windowstate_cb (GtkWindow *wid, GdkEventWindowState *event, gpointer userdata)
 {
-	prefs.gui_win_state = 0;
+	prefs.hex_gui_win_state = 0;
 	if (event->new_window_state & GDK_WINDOW_STATE_MAXIMIZED)
-		prefs.gui_win_state = 1;
+		prefs.hex_gui_win_state = 1;
 
 	if ((event->changed_mask & GDK_WINDOW_STATE_ICONIFIED) &&
 		 (event->new_window_state & GDK_WINDOW_STATE_ICONIFIED) &&
-		 (prefs.gui_tray_flags & 4))
+		 (prefs.hex_gui_tray_flags & 4))
 	{
 		tray_toggle_visibility (TRUE);
 		gtk_window_deiconify (wid);
@@ -520,25 +520,25 @@ mg_configure_cb (GtkWidget *wid, GdkEventConfigure *event, session *sess)
 	{
 		if (mg_gui)
 		{
-			if (prefs.mainwindow_save)
+			if (prefs.hex_gui_win_save)
 			{
 				sess = current_sess;
-				gtk_window_get_position (GTK_WINDOW (wid), &prefs.mainwindow_left,
-												 &prefs.mainwindow_top);
-				gtk_window_get_size (GTK_WINDOW (wid), &prefs.mainwindow_width,
-											&prefs.mainwindow_height);
+				gtk_window_get_position (GTK_WINDOW (wid), &prefs.hex_gui_win_left,
+												 &prefs.hex_gui_win_top);
+				gtk_window_get_size (GTK_WINDOW (wid), &prefs.hex_gui_win_width,
+											&prefs.hex_gui_win_height);
 			}
 		}
 	}
 
 	if (sess)
 	{
-		if (sess->type == SESS_DIALOG && prefs.mainwindow_save)
+		if (sess->type == SESS_DIALOG && prefs.hex_gui_win_save)
 		{
-			gtk_window_get_position (GTK_WINDOW (wid), &prefs.dialog_left,
-											 &prefs.dialog_top);
-			gtk_window_get_size (GTK_WINDOW (wid), &prefs.dialog_width,
-										&prefs.dialog_height);
+			gtk_window_get_position (GTK_WINDOW (wid), &prefs.hex_gui_dialog_left,
+											 &prefs.hex_gui_dialog_top);
+			gtk_window_get_size (GTK_WINDOW (wid), &prefs.hex_gui_dialog_width,
+										&prefs.hex_gui_dialog_height);
 		}
 
 		if (((GtkXText *) sess->gui->xtext)->transparent)
@@ -800,7 +800,7 @@ mg_userlist_showhide (session *sess, int show)
 	int handle_size;
 	int right_size;
 
-	right_size = MAX (prefs.gui_pane_right_size, prefs.gui_pane_right_size_min);
+	right_size = MAX (prefs.hex_gui_pane_right_size, prefs.hex_gui_pane_right_size_min);
 
 	if (show)
 	{
@@ -822,14 +822,14 @@ mg_userlist_showhide (session *sess, int show)
 static gboolean
 mg_is_userlist_and_tree_combined (void)
 {
-	if (prefs.tab_pos == POS_TOPLEFT && prefs.gui_ulist_pos == POS_BOTTOMLEFT)
+	if (prefs.hex_gui_tab_pos == POS_TOPLEFT && prefs.hex_gui_ulist_pos == POS_BOTTOMLEFT)
 		return TRUE;
-	if (prefs.tab_pos == POS_BOTTOMLEFT && prefs.gui_ulist_pos == POS_TOPLEFT)
+	if (prefs.hex_gui_tab_pos == POS_BOTTOMLEFT && prefs.hex_gui_ulist_pos == POS_TOPLEFT)
 		return TRUE;
 
-	if (prefs.tab_pos == POS_TOPRIGHT && prefs.gui_ulist_pos == POS_BOTTOMRIGHT)
+	if (prefs.hex_gui_tab_pos == POS_TOPRIGHT && prefs.hex_gui_ulist_pos == POS_BOTTOMRIGHT)
 		return TRUE;
-	if (prefs.tab_pos == POS_BOTTOMRIGHT && prefs.gui_ulist_pos == POS_TOPRIGHT)
+	if (prefs.hex_gui_tab_pos == POS_BOTTOMRIGHT && prefs.hex_gui_ulist_pos == POS_TOPRIGHT)
 		return TRUE;
 
 	return FALSE;
@@ -844,7 +844,7 @@ mg_decide_userlist (session *sess, gboolean switch_to_current)
 	if (sess->gui == mg_gui && switch_to_current)
 		sess = current_tab;
 
-	if (prefs.hideuserlist)
+	if (prefs.hex_gui_ulist_hide)
 	{
 		mg_userlist_showhide (sess, FALSE);
 		return;
@@ -869,7 +869,7 @@ mg_decide_userlist (session *sess, gboolean switch_to_current)
 static void
 mg_userlist_toggle_cb (GtkWidget *button, gpointer userdata)
 {
-	prefs.hideuserlist = !prefs.hideuserlist;
+	prefs.hex_gui_ulist_hide = !prefs.hex_gui_ulist_hide;
 	mg_decide_userlist (current_sess, FALSE);
 	gtk_widget_grab_focus (current_sess->gui->input_box);
 }
@@ -922,7 +922,7 @@ mg_populate (session *sess)
 		gtk_editable_set_editable (GTK_EDITABLE (gui->topic_entry), FALSE);
 		break;
 	case SESS_SERVER:
-		if (prefs.chanmodebuttons)
+		if (prefs.hex_gui_mode_buttons)
 			gtk_widget_show (gui->topicbutton_box);
 		/* hide the dialog buttons */
 		gtk_widget_hide (gui->dialogbutton_box);
@@ -934,7 +934,7 @@ mg_populate (session *sess)
 	default:
 		/* hide the dialog buttons */
 		gtk_widget_hide (gui->dialogbutton_box);
-		if (prefs.chanmodebuttons)
+		if (prefs.hex_gui_mode_buttons)
 			gtk_widget_show (gui->topicbutton_box);
 		/* show the userlist */
 		mg_decide_userlist (sess, FALSE);
@@ -1152,7 +1152,7 @@ mg_tab_close (session *sess)
 						  "Close them all?"), i);
 		g_signal_connect (G_OBJECT (dialog), "response",
 								G_CALLBACK (mg_tab_close_cb), sess);
-		if (prefs.tab_layout)
+		if (prefs.hex_gui_tab_layout)
 		{
 			gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_MOUSE);
 		}
@@ -1241,7 +1241,7 @@ mg_open_quit_dialog (gboolean minimize_button)
 
 	dccs = mg_count_dccs ();
 	cons = mg_count_networks ();
-	if (dccs + cons == 0 || !prefs.gui_quit_dialog)
+	if (dccs + cons == 0 || !prefs.hex_gui_quit_dialog)
 	{
 		xchat_exit ();
 		return;
@@ -1319,19 +1319,19 @@ mg_open_quit_dialog (gboolean minimize_button)
 	{
 	case 0:
 		if (GTK_TOGGLE_BUTTON (checkbutton1)->active)
-			prefs.gui_quit_dialog = 0;
+			prefs.hex_gui_quit_dialog = 0;
 		xchat_exit ();
 		break;
 	case 1: /* minimize to tray */
 		if (GTK_TOGGLE_BUTTON (checkbutton1)->active)
 		{
-			prefs.gui_tray_flags |= 1;
-			/*prefs.gui_quit_dialog = 0;*/
+			prefs.hex_gui_tray_flags |= 1;
+			/*prefs.hex_gui_quit_dialog = 0;*/
 		}
 		/* force tray icon ON, if not already */
-		if (!prefs.gui_tray)
+		if (!prefs.hex_gui_tray)
 		{
-			prefs.gui_tray = 1;
+			prefs.hex_gui_tray = 1;
 			tray_apply_setup ();
 		}
 		tray_toggle_visibility (TRUE);
@@ -2123,7 +2123,7 @@ mg_create_chanmodebuttons (session_gui *gui, GtkWidget *box)
 	g_signal_connect (G_OBJECT (gui->key_entry), "activate",
 							G_CALLBACK (mg_key_entry_cb), NULL);
 
-	if (prefs.style_inputbox)
+	if (prefs.hex_gui_input_style)
 		mg_apply_entry_style (gui->key_entry);
 
 	gui->flag_l = mg_create_flagbutton (_("User Limit"), box, "L");
@@ -2135,7 +2135,7 @@ mg_create_chanmodebuttons (session_gui *gui, GtkWidget *box)
 	g_signal_connect (G_OBJECT (gui->limit_entry), "activate",
 							G_CALLBACK (mg_limit_entry_cb), NULL);
 
-	if (prefs.style_inputbox)
+	if (prefs.hex_gui_input_style)
 		mg_apply_entry_style (gui->limit_entry);
 }
 
@@ -2223,7 +2223,7 @@ mg_create_topicbar (session *sess, GtkWidget *box)
 	g_signal_connect (G_OBJECT (topic), "activate",
 							G_CALLBACK (mg_topic_cb), 0);
 
-	if (prefs.style_inputbox)
+	if (prefs.hex_gui_input_style)
 		mg_apply_entry_style (topic);
 
 	gui->topicbutton_box = bbox = gtk_hbox_new (FALSE, 0);
@@ -2234,7 +2234,7 @@ mg_create_topicbar (session *sess, GtkWidget *box)
 	gtk_box_pack_start (GTK_BOX (hbox), bbox, 0, 0, 0);
 	mg_create_dialogbuttons (bbox);
 
-	if (!prefs.paned_userlist)
+	if (!prefs.hex_gui_ulist_resizable)
 		gtkutil_button (hbox, GTK_STOCK_GOTO_LAST, _("Show/Hide userlist"),
 							 mg_userlist_toggle_cb, 0, 0);
 }
@@ -2275,7 +2275,7 @@ mg_word_clicked (GtkWidget *xtext, char *word, GdkEventButton *even)
 			return;
 		}
 
-		if ((even->state & 13) == prefs.gui_url_mod)
+		if ((even->state & 13) == prefs.hex_gui_url_mod)
 		{
 			switch (mg_word_check (xtext, word, strlen (word)))
 			{
@@ -2455,13 +2455,13 @@ mg_create_meters (session_gui *gui, GtkWidget *parent_box)
 	gui->meter_box = infbox = box = gtk_vbox_new (0, 1);
 	gtk_box_pack_start (GTK_BOX (parent_box), box, 0, 0, 0);
 
-	if ((prefs.lagometer & 2) || (prefs.throttlemeter & 2))
+	if ((prefs.hex_gui_lagometer & 2) || (prefs.hex_gui_throttlemeter & 2))
 	{
 		infbox = gtk_hbox_new (0, 0);
 		gtk_box_pack_start (GTK_BOX (box), infbox, 0, 0, 0);
 	}
 
-	if (prefs.lagometer & 1)
+	if (prefs.hex_gui_lagometer & 1)
 	{
 		gui->lagometer = wid = gtk_progress_bar_new ();
 #ifdef WIN32
@@ -2474,13 +2474,13 @@ mg_create_meters (session_gui *gui, GtkWidget *parent_box)
 		gtk_container_add (GTK_CONTAINER (wid), gui->lagometer);
 		gtk_box_pack_start (GTK_BOX (box), wid, 0, 0, 0);
 	}
-	if (prefs.lagometer & 2)
+	if (prefs.hex_gui_lagometer & 2)
 	{
 		gui->laginfo = wid = mg_create_infoframe (infbox);
 		gtk_label_set_text ((GtkLabel *) wid, "Lag");
 	}
 
-	if (prefs.throttlemeter & 1)
+	if (prefs.hex_gui_throttlemeter & 1)
 	{
 		gui->throttlemeter = wid = gtk_progress_bar_new ();
 #ifdef WIN32
@@ -2493,7 +2493,7 @@ mg_create_meters (session_gui *gui, GtkWidget *parent_box)
 		gtk_container_add (GTK_CONTAINER (wid), gui->throttlemeter);
 		gtk_box_pack_start (GTK_BOX (box), wid, 0, 0, 0);
 	}
-	if (prefs.throttlemeter & 2)
+	if (prefs.hex_gui_throttlemeter & 2)
 	{
 		gui->throttleinfo = wid = mg_create_infoframe (infbox);
 		gtk_label_set_text ((GtkLabel *) wid, "Throttle");
@@ -2522,7 +2522,7 @@ mg_create_userlist (session_gui *gui, GtkWidget *box)
 	gtk_container_add (GTK_CONTAINER (box), vbox);
 
 	frame = gtk_frame_new (NULL);
-	if (!(prefs.gui_win_ucount))
+	if (!(prefs.hex_gui_win_ucount))
 		gtk_box_pack_start (GTK_BOX (vbox), frame, 0, 0, GUI_SPACING);
 
 	gui->namelistinfo = gtk_label_new (NULL);
@@ -2530,7 +2530,7 @@ mg_create_userlist (session_gui *gui, GtkWidget *box)
 
 	gui->user_tree = ulist = userlist_create (vbox);
 
-	if (prefs.style_namelistgad)
+	if (prefs.hex_gui_ulist_style)
 	{
 		gtk_widget_set_style (ulist, input_style);
 		gtk_widget_modify_base (ulist, GTK_STATE_NORMAL, &colors[COL_BG]);
@@ -2545,7 +2545,7 @@ mg_create_userlist (session_gui *gui, GtkWidget *box)
 static void
 mg_leftpane_cb (GtkPaned *pane, GParamSpec *param, session_gui *gui)
 {
-	prefs.gui_pane_left_size = gtk_paned_get_position (pane);
+	prefs.hex_gui_pane_left_size = gtk_paned_get_position (pane);
 }
 
 static void
@@ -2560,7 +2560,7 @@ mg_rightpane_cb (GtkPaned *pane, GParamSpec *param, session_gui *gui)
 
 	gtk_widget_style_get (GTK_WIDGET (pane), "handle-size", &handle_size, NULL);
 	/* record the position from the RIGHT side */
-	prefs.gui_pane_right_size = GTK_WIDGET (pane)->allocation.width - gtk_paned_get_position (pane) - handle_size;
+	prefs.hex_gui_pane_right_size = GTK_WIDGET (pane)->allocation.width - gtk_paned_get_position (pane) - handle_size;
 }
 
 static gboolean
@@ -2586,12 +2586,12 @@ mg_create_center (session *sess, session_gui *gui, GtkWidget *box)
 
 	/* sep between left and xtext */
 	gui->hpane_left = gtk_hpaned_new ();
-	gtk_paned_set_position (GTK_PANED (gui->hpane_left), prefs.gui_pane_left_size);
+	gtk_paned_set_position (GTK_PANED (gui->hpane_left), prefs.hex_gui_pane_left_size);
 
 	/* sep between xtext and right side */
 	gui->hpane_right = gtk_hpaned_new ();
 
-	if (prefs.gui_win_swap)
+	if (prefs.hex_gui_win_swap)
 	{
 		gtk_paned_pack2 (GTK_PANED (gui->hpane_left), gui->vpane_left, FALSE, TRUE);
 		gtk_paned_pack1 (GTK_PANED (gui->hpane_left), gui->hpane_right, TRUE, TRUE);
@@ -2649,7 +2649,7 @@ mg_nickclick_cb (GtkWidget *button, gpointer userdata)
 static void
 mg_sanitize_positions (int *cv, int *ul)
 {
-	if (prefs.tab_layout == 2)
+	if (prefs.hex_gui_tab_layout == 2)
 	{
 		/* treeview can't be on TOP or BOTTOM */
 		if (*cv == POS_TOP || *cv == POS_BOTTOM)
@@ -2699,7 +2699,7 @@ mg_place_userlist_and_chanview_real (session_gui *gui, GtkWidget *userlist, GtkW
 		gtk_table_set_row_spacing (GTK_TABLE (gui->main_table), 2, 2);
 
 		/* then place them back in their new positions */
-		switch (prefs.tab_pos)
+		switch (prefs.hex_gui_tab_pos)
 		{
 		case POS_TOPLEFT:
 			gtk_paned_pack1 (GTK_PANED (gui->vpane_left), chanview, FALSE, TRUE);
@@ -2721,7 +2721,7 @@ mg_place_userlist_and_chanview_real (session_gui *gui, GtkWidget *userlist, GtkW
 		case POS_HIDDEN:
 			gtk_widget_hide (chanview);
 			/* always attach it to something to avoid ref_count=0 */
-			if (prefs.gui_ulist_pos == POS_TOP)
+			if (prefs.hex_gui_ulist_pos == POS_TOP)
 				gtk_table_attach (GTK_TABLE (gui->main_table), chanview,
 										1, 2, 3, 4, GTK_FILL, GTK_FILL, 0, 0);
 
@@ -2738,7 +2738,7 @@ mg_place_userlist_and_chanview_real (session_gui *gui, GtkWidget *userlist, GtkW
 
 	if (userlist)
 	{
-		switch (prefs.gui_ulist_pos)
+		switch (prefs.hex_gui_ulist_pos)
 		{
 		case POS_TOPLEFT:
 			gtk_paned_pack1 (GTK_PANED (gui->vpane_left), userlist, FALSE, TRUE);
@@ -2771,11 +2771,11 @@ mg_place_userlist_and_chanview (session_gui *gui)
 	GtkWidget *chanviewbox = NULL;
 	int pos;
 
-	mg_sanitize_positions (&prefs.tab_pos, &prefs.gui_ulist_pos);
+	mg_sanitize_positions (&prefs.hex_gui_tab_pos, &prefs.hex_gui_ulist_pos);
 
 	if (gui->chanview)
 	{
-		pos = prefs.tab_pos;
+		pos = prefs.hex_gui_tab_pos;
 
 		orientation = chanview_get_orientation (gui->chanview);
 		if ((pos == POS_BOTTOM || pos == POS_TOP) && orientation == GTK_ORIENTATION_VERTICAL)
@@ -2794,8 +2794,8 @@ mg_change_layout (int type)
 	if (mg_gui)
 	{
 		/* put tabs at the bottom */
-		if (type == 0 && prefs.tab_pos != POS_BOTTOM && prefs.tab_pos != POS_TOP)
-			prefs.tab_pos = POS_BOTTOM;
+		if (type == 0 && prefs.hex_gui_tab_pos != POS_BOTTOM && prefs.hex_gui_tab_pos != POS_TOP)
+			prefs.hex_gui_tab_pos = POS_BOTTOM;
 
 		mg_place_userlist_and_chanview (mg_gui);
 		chanview_set_impl (mg_gui->chanview, type);
@@ -2835,7 +2835,7 @@ mg_create_entry (session *sess, GtkWidget *box)
 	gtk_widget_set_size_request (entry, 0, 1);
 	gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (entry), GTK_WRAP_NONE);
 	gtk_text_view_set_accepts_tab (GTK_TEXT_VIEW (entry), FALSE);
-	if (prefs.gui_input_spell)
+	if (prefs.hex_gui_input_spell)
 		gtkspell_new_attach (GTK_TEXT_VIEW (entry), NULL, NULL);
 
 	sw = gtk_scrolled_window_new (NULL, NULL);
@@ -2849,7 +2849,7 @@ mg_create_entry (session *sess, GtkWidget *box)
 #else
 #ifdef USE_LIBSEXY
 	gui->input_box = entry = sexy_spell_entry_new ();
-	sexy_spell_entry_set_checked ((SexySpellEntry *)entry, prefs.gui_input_spell);
+	sexy_spell_entry_set_checked ((SexySpellEntry *)entry, prefs.hex_gui_input_spell);
 #else
 	gui->input_box = entry = gtk_entry_new ();
 #endif
@@ -2868,7 +2868,7 @@ mg_create_entry (session *sess, GtkWidget *box)
 							G_CALLBACK (mg_inputbox_rightclick), NULL);
 	gtk_widget_grab_focus (entry);
 
-	if (prefs.style_inputbox)
+	if (prefs.hex_gui_input_style)
 		mg_apply_entry_style (entry);
 }
 
@@ -2923,14 +2923,14 @@ mg_create_tabs (session_gui *gui)
 
 	/* if any one of these PNGs exist, the chanview will create
 	 * the extra column for icons. */
-	if (prefs.tab_icons && (pix_channel || pix_dialog || pix_server || pix_util))
+	if (prefs.hex_gui_tab_icons && (pix_channel || pix_dialog || pix_server || pix_util))
 	{
 		use_icons = TRUE;
 	}
 
-	gui->chanview = chanview_new (prefs.tab_layout, prefs.truncchans,
-											prefs.tab_sort, use_icons,
-											prefs.style_namelistgad ? input_style : NULL);
+	gui->chanview = chanview_new (prefs.hex_gui_tab_layout, prefs.hex_gui_tab_trunc,
+											prefs.hex_gui_tab_sort, use_icons,
+											prefs.hex_gui_ulist_style ? input_style : NULL);
 	chanview_set_callbacks (gui->chanview, mg_switch_tab_cb, mg_xbutton_cb,
 									mg_tab_contextmenu_cb, (void *)mg_tabs_compare);
 	mg_place_userlist_and_chanview (gui);
@@ -2997,11 +2997,11 @@ mg_create_topwindow (session *sess)
 
 	if (sess->type == SESS_DIALOG)
 		win = gtkutil_window_new ("XChat", NULL,
-										  prefs.dialog_width, prefs.dialog_height, 0);
+										  prefs.hex_gui_dialog_width, prefs.hex_gui_dialog_height, 0);
 	else
 		win = gtkutil_window_new ("XChat", NULL,
-										  prefs.mainwindow_width,
-										  prefs.mainwindow_height, 0);
+										  prefs.hex_gui_win_width,
+										  prefs.hex_gui_win_height, 0);
 	sess->gui->window = win;
 	gtk_container_set_border_width (GTK_CONTAINER (win), GUI_BORDER);
 
@@ -3037,16 +3037,16 @@ mg_create_topwindow (session *sess)
 
 	gtk_widget_show_all (table);
 
-	if (prefs.hidemenu)
+	if (prefs.hex_gui_hide_menu)
 		gtk_widget_hide (sess->gui->menu);
 
-	if (!prefs.topicbar)
+	if (!prefs.hex_gui_topicbar)
 		gtk_widget_hide (sess->gui->topic_bar);
 
-	if (!prefs.userlistbuttons)
+	if (!prefs.hex_gui_ulist_buttons)
 		gtk_widget_hide (sess->gui->button_box);
 
-	if (prefs.gui_input_nick)
+	if (prefs.hex_gui_input_nick)
 		gtk_widget_hide (sess->gui->nick_box);
 
 	mg_decide_userlist (sess, FALSE);
@@ -3059,7 +3059,7 @@ mg_create_topwindow (session *sess)
 	{
 		gtk_widget_hide (sess->gui->dialogbutton_box);
 
-		if (!prefs.chanmodebuttons)
+		if (!prefs.hex_gui_mode_buttons)
 			gtk_widget_hide (sess->gui->topicbutton_box);
 	}
 
@@ -3074,7 +3074,7 @@ mg_tabwindow_de_cb (GtkWidget *widget, GdkEvent *event, gpointer user_data)
 	GSList *list;
 	session *sess;
 
-	if ((prefs.gui_tray_flags & 1) && tray_toggle_visibility (FALSE))
+	if ((prefs.hex_gui_tray_flags & 1) && tray_toggle_visibility (FALSE))
 		return TRUE;
 
 	/* check for remaining toplevel windows */
@@ -3097,12 +3097,12 @@ mg_create_tabwindow (session *sess)
 	GtkWidget *win;
 	GtkWidget *table;
 
-	win = gtkutil_window_new ("XChat", NULL, prefs.mainwindow_width,
-									  prefs.mainwindow_height, 0);
+	win = gtkutil_window_new ("XChat", NULL, prefs.hex_gui_win_width,
+									  prefs.hex_gui_win_height, 0);
 	sess->gui->window = win;
-	gtk_window_move (GTK_WINDOW (win), prefs.mainwindow_left,
-						  prefs.mainwindow_top);
-	if (prefs.gui_win_state)
+	gtk_window_move (GTK_WINDOW (win), prefs.hex_gui_win_left,
+						  prefs.hex_gui_win_top);
+	if (prefs.hex_gui_win_state)
 		gtk_window_maximize (GTK_WINDOW (win));
 	gtk_container_set_border_width (GTK_CONTAINER (win), GUI_BORDER);
 
@@ -3135,21 +3135,21 @@ mg_create_tabwindow (session *sess)
 
 	gtk_widget_show_all (table);
 
-	if (prefs.hidemenu)
+	if (prefs.hex_gui_hide_menu)
 		gtk_widget_hide (sess->gui->menu);
 
 	mg_decide_userlist (sess, FALSE);
 
-	if (!prefs.topicbar)
+	if (!prefs.hex_gui_topicbar)
 		gtk_widget_hide (sess->gui->topic_bar);
 
-	if (!prefs.chanmodebuttons)
+	if (!prefs.hex_gui_mode_buttons)
 		gtk_widget_hide (sess->gui->topicbutton_box);
 
-	if (!prefs.userlistbuttons)
+	if (!prefs.hex_gui_ulist_buttons)
 		gtk_widget_hide (sess->gui->button_box);
 
-	if (prefs.gui_input_nick)
+	if (prefs.hex_gui_input_nick)
 		gtk_widget_hide (sess->gui->nick_box);
 
 	mg_place_userlist_and_chanview (sess->gui);
@@ -3193,7 +3193,7 @@ mg_add_generic_tab (char *name, char *title, void *family, GtkWidget *box)
 	g_object_set_data (G_OBJECT (box), "title", strdup (title));
 	g_object_set_data (G_OBJECT (box), "ch", ch);
 
-	if (prefs.newtabstofront)
+	if (prefs.hex_gui_tab_newtofront)
 		chan_focus (ch);
 
 	return ch;
@@ -3207,7 +3207,7 @@ fe_buttons_update (session *sess)
 	gtk_widget_destroy (gui->button_box);
 	gui->button_box = mg_create_userlistbuttons (gui->button_box_parent);
 
-	if (prefs.userlistbuttons)
+	if (prefs.hex_gui_ulist_buttons)
 		gtk_widget_show (sess->gui->button_box);
 	else
 		gtk_widget_hide (sess->gui->button_box);
@@ -3223,12 +3223,12 @@ fe_clear_channel (session *sess)
 	{
 		if (sess->waitchannel[0])
 		{
-			if (prefs.truncchans > 2 && g_utf8_strlen (sess->waitchannel, -1) > prefs.truncchans)
+			if (prefs.hex_gui_tab_trunc > 2 && g_utf8_strlen (sess->waitchannel, -1) > prefs.hex_gui_tab_trunc)
 			{
 				/* truncate long channel names */
 				tbuf[0] = '(';
 				strcpy (tbuf + 1, sess->waitchannel);
-				g_utf8_offset_to_pointer(tbuf, prefs.truncchans)[0] = 0;
+				g_utf8_offset_to_pointer(tbuf, prefs.hex_gui_tab_trunc)[0] = 0;
 				strcat (tbuf, "..)");
 			} else
 			{
@@ -3237,7 +3237,7 @@ fe_clear_channel (session *sess)
 		}
 		else
 			strcpy (tbuf, _("<none>"));
-		chan_rename (sess->res->tab, tbuf, prefs.truncchans);
+		chan_rename (sess->res->tab, tbuf, prefs.hex_gui_tab_trunc);
 	}
 
 	if (!sess->gui->is_tab || sess == current_tab)
@@ -3357,7 +3357,7 @@ void
 fe_set_channel (session *sess)
 {
 	if (sess->res->tab != NULL)
-		chan_rename (sess->res->tab, sess->channel, prefs.truncchans);
+		chan_rename (sess->res->tab, sess->channel, prefs.hex_gui_tab_trunc);
 }
 
 void
@@ -3415,8 +3415,8 @@ mg_changui_new (session *sess, restore_gui *res, int tab, int focus)
 
 	mg_add_chan (sess);
 
-	if (first_run || (prefs.newtabstofront == FOCUS_NEW_ONLY_ASKED && focus)
-			|| prefs.newtabstofront == FOCUS_NEW_ALL )
+	if (first_run || (prefs.hex_gui_tab_newtofront == FOCUS_NEW_ONLY_ASKED && focus)
+			|| prefs.hex_gui_tab_newtofront == FOCUS_NEW_ALL )
 		chan_focus (res->tab);
 }
 
@@ -3429,10 +3429,10 @@ mg_create_generic_tab (char *name, char *title, int force_toplevel,
 {
 	GtkWidget *vbox, *win;
 
-	if (prefs.tab_pos == POS_HIDDEN && prefs.windows_as_tabs)
-		prefs.windows_as_tabs = 0;
+	if (prefs.hex_gui_tab_pos == POS_HIDDEN && prefs.hex_gui_tab_utils)
+		prefs.hex_gui_tab_utils = 0;
 
-	if (force_toplevel || !prefs.windows_as_tabs)
+	if (force_toplevel || !prefs.hex_gui_tab_utils)
 	{
 		win = gtkutil_window_new (title, name, width, height, 3);
 		vbox = gtk_vbox_new (0, 0);
@@ -3687,11 +3687,11 @@ mg_drag_drop_cb (GtkWidget *widget, GdkDragContext *context, int x, int y, guint
 	{
 	case GDK_ACTION_MOVE:
 		/* from userlist */
-		mg_handle_drop (widget, y, &prefs.gui_ulist_pos, &prefs.tab_pos);
+		mg_handle_drop (widget, y, &prefs.hex_gui_ulist_pos, &prefs.hex_gui_tab_pos);
 		break;
 	case GDK_ACTION_COPY:
 		/* from tree - we use GDK_ACTION_COPY for the tree */
-		mg_handle_drop (widget, y, &prefs.tab_pos, &prefs.gui_ulist_pos);
+		mg_handle_drop (widget, y, &prefs.hex_gui_tab_pos, &prefs.hex_gui_ulist_pos);
 		break;
 	default:
 		return FALSE;
diff --git a/src/fe-gtk/menu.c b/src/fe-gtk/menu.c
index fcbc810f..bf12f25d 100644
--- a/src/fe-gtk/menu.c
+++ b/src/fe-gtk/menu.c
@@ -769,7 +769,7 @@ menu_nickmenu (session *sess, GdkEventButton *event, char *nick, int num_sel)
 static void
 menu_showhide_cb (session *sess)
 {
-	if (prefs.hidemenu)
+	if (prefs.hex_gui_hide_menu)
 		gtk_widget_hide (sess->gui->menu);
 	else
 		gtk_widget_show (sess->gui->menu);
@@ -778,7 +778,7 @@ menu_showhide_cb (session *sess)
 static void
 menu_topic_showhide_cb (session *sess)
 {
-	if (prefs.topicbar)
+	if (prefs.hex_gui_topicbar)
 		gtk_widget_show (sess->gui->topic_bar);
 	else
 		gtk_widget_hide (sess->gui->topic_bar);
@@ -793,7 +793,7 @@ menu_userlist_showhide_cb (session *sess)
 static void
 menu_ulbuttons_showhide_cb (session *sess)
 {
-	if (prefs.userlistbuttons)
+	if (prefs.hex_gui_ulist_buttons)
 		gtk_widget_show (sess->gui->button_box);
 	else
 		gtk_widget_hide (sess->gui->button_box);
@@ -805,7 +805,7 @@ menu_cmbuttons_showhide_cb (session *sess)
 	switch (sess->type)
 	{
 	case SESS_CHANNEL:
-		if (prefs.chanmodebuttons)
+		if (prefs.hex_gui_mode_buttons)
 			gtk_widget_show (sess->gui->topicbutton_box);
 		else
 			gtk_widget_hide (sess->gui->topicbutton_box);
@@ -844,15 +844,15 @@ menu_setting_foreach (void (*callback) (session *), int id, guint state)
 void
 menu_bar_toggle (void)
 {
-	prefs.hidemenu = !prefs.hidemenu;
-	menu_setting_foreach (menu_showhide_cb, MENU_ID_MENUBAR, !prefs.hidemenu);
+	prefs.hex_gui_hide_menu = !prefs.hex_gui_hide_menu;
+	menu_setting_foreach (menu_showhide_cb, MENU_ID_MENUBAR, !prefs.hex_gui_hide_menu);
 }
 
 static void
 menu_bar_toggle_cb (void)
 {
 	menu_bar_toggle ();
-	if (prefs.hidemenu)
+	if (prefs.hex_gui_hide_menu)
 		fe_message (_("The Menubar is now hidden. You can show it again"
 						  " by pressing F9 or right-clicking in a blank part of"
 						  " the main text area."), FE_MSG_INFO);
@@ -861,33 +861,33 @@ menu_bar_toggle_cb (void)
 static void
 menu_topicbar_toggle (GtkWidget *wid, gpointer ud)
 {
-	prefs.topicbar = !prefs.topicbar;
+	prefs.hex_gui_topicbar = !prefs.hex_gui_topicbar;
 	menu_setting_foreach (menu_topic_showhide_cb, MENU_ID_TOPICBAR,
-								 prefs.topicbar);
+								 prefs.hex_gui_topicbar);
 }
 
 static void
 menu_userlist_toggle (GtkWidget *wid, gpointer ud)
 {
-	prefs.hideuserlist = !prefs.hideuserlist;
+	prefs.hex_gui_ulist_hide = !prefs.hex_gui_ulist_hide;
 	menu_setting_foreach (menu_userlist_showhide_cb, MENU_ID_USERLIST,
-								 !prefs.hideuserlist);
+								 !prefs.hex_gui_ulist_hide);
 }
 
 static void
 menu_ulbuttons_toggle (GtkWidget *wid, gpointer ud)
 {
-	prefs.userlistbuttons = !prefs.userlistbuttons;
+	prefs.hex_gui_ulist_buttons = !prefs.hex_gui_ulist_buttons;
 	menu_setting_foreach (menu_ulbuttons_showhide_cb, MENU_ID_ULBUTTONS,
-								 prefs.userlistbuttons);
+								 prefs.hex_gui_ulist_buttons);
 }
 
 static void
 menu_cmbuttons_toggle (GtkWidget *wid, gpointer ud)
 {
-	prefs.chanmodebuttons = !prefs.chanmodebuttons;
+	prefs.hex_gui_mode_buttons = !prefs.hex_gui_mode_buttons;
 	menu_setting_foreach (menu_cmbuttons_showhide_cb, MENU_ID_MODEBUTTONS,
-								 prefs.chanmodebuttons);
+								 prefs.hex_gui_mode_buttons);
 }
 
 void
@@ -1126,46 +1126,46 @@ usermenu_update (void)
 static void
 menu_newserver_window (GtkWidget * wid, gpointer none)
 {
-	int old = prefs.tabchannels;
+	int old = prefs.hex_gui_tab_chans;
 
-	prefs.tabchannels = 0;
+	prefs.hex_gui_tab_chans = 0;
 	new_ircwindow (NULL, NULL, SESS_SERVER, 0);
-	prefs.tabchannels = old;
+	prefs.hex_gui_tab_chans = old;
 }
 
 static void
 menu_newchannel_window (GtkWidget * wid, gpointer none)
 {
-	int old = prefs.tabchannels;
+	int old = prefs.hex_gui_tab_chans;
 
-	prefs.tabchannels = 0;
+	prefs.hex_gui_tab_chans = 0;
 	new_ircwindow (current_sess->server, NULL, SESS_CHANNEL, 0);
-	prefs.tabchannels = old;
+	prefs.hex_gui_tab_chans = old;
 }
 
 static void
 menu_newserver_tab (GtkWidget * wid, gpointer none)
 {
-	int old = prefs.tabchannels;
-	int oldf = prefs.newtabstofront;
+	int old = prefs.hex_gui_tab_chans;
+	int oldf = prefs.hex_gui_tab_newtofront;
 
-	prefs.tabchannels = 1;
+	prefs.hex_gui_tab_chans = 1;
 	/* force focus if setting is "only requested tabs" */
-	if (prefs.newtabstofront == 2)
-		prefs.newtabstofront = 1;
+	if (prefs.hex_gui_tab_newtofront == 2)
+		prefs.hex_gui_tab_newtofront = 1;
 	new_ircwindow (NULL, NULL, SESS_SERVER, 0);
-	prefs.tabchannels = old;
-	prefs.newtabstofront = oldf;
+	prefs.hex_gui_tab_chans = old;
+	prefs.hex_gui_tab_newtofront = oldf;
 }
 
 static void
 menu_newchannel_tab (GtkWidget * wid, gpointer none)
 {
-	int old = prefs.tabchannels;
+	int old = prefs.hex_gui_tab_chans;
 
-	prefs.tabchannels = 1;
+	prefs.hex_gui_tab_chans = 1;
 	new_ircwindow (current_sess->server, NULL, SESS_CHANNEL, 0);
-	prefs.tabchannels = old;
+	prefs.hex_gui_tab_chans = old;
 }
 
 static void
@@ -1529,7 +1529,7 @@ menu_dcc_chat_win (GtkWidget *wid, gpointer none)
 void
 menu_change_layout (void)
 {
-	if (prefs.tab_layout == 0)
+	if (prefs.hex_gui_tab_layout == 0)
 	{
 		menu_setting_foreach (NULL, MENU_ID_LAYOUT_TABS, 1);
 		menu_setting_foreach (NULL, MENU_ID_LAYOUT_TREE, 0);
@@ -1545,9 +1545,9 @@ menu_change_layout (void)
 static void
 menu_layout_cb (GtkWidget *item, gpointer none)
 {
-	prefs.tab_layout = 2;
+	prefs.hex_gui_tab_layout = 2;
 	if (GTK_CHECK_MENU_ITEM (item)->active)
-		prefs.tab_layout = 0;
+		prefs.hex_gui_tab_layout = 0;
 
 	menu_change_layout ();
 }
@@ -1563,8 +1563,8 @@ menu_metres_off (GtkWidget *item, gpointer none)
 {
 	if (GTK_CHECK_MENU_ITEM (item)->active)
 	{
-		prefs.lagometer = 0;
-		prefs.throttlemeter = 0;
+		prefs.hex_gui_lagometer = 0;
+		prefs.hex_gui_throttlemeter = 0;
 		menu_setting_foreach (menu_apply_metres_cb, -1, 0);
 	}
 }
@@ -1574,8 +1574,8 @@ menu_metres_text (GtkWidget *item, gpointer none)
 {
 	if (GTK_CHECK_MENU_ITEM (item)->active)
 	{
-		prefs.lagometer = 2;
-		prefs.throttlemeter = 2;
+		prefs.hex_gui_lagometer = 2;
+		prefs.hex_gui_throttlemeter = 2;
 		menu_setting_foreach (menu_apply_metres_cb, -1, 0);
 	}
 }
@@ -1585,8 +1585,8 @@ menu_metres_graph (GtkWidget *item, gpointer none)
 {
 	if (GTK_CHECK_MENU_ITEM (item)->active)
 	{
-		prefs.lagometer = 1;
-		prefs.throttlemeter = 1;
+		prefs.hex_gui_lagometer = 1;
+		prefs.hex_gui_throttlemeter = 1;
 		menu_setting_foreach (menu_apply_metres_cb, -1, 0);
 	}
 }
@@ -1596,8 +1596,8 @@ menu_metres_both (GtkWidget *item, gpointer none)
 {
 	if (GTK_CHECK_MENU_ITEM (item)->active)
 	{
-		prefs.lagometer = 3;
-		prefs.throttlemeter = 3;
+		prefs.hex_gui_lagometer = 3;
+		prefs.hex_gui_throttlemeter = 3;
 		menu_setting_foreach (menu_apply_metres_cb, -1, 0);
 	}
 }
@@ -2115,15 +2115,15 @@ menu_create_main (void *accel_group, int bar, int away, int toplevel,
 							G_CALLBACK (menu_canacaccel), 0);
 
 	/* set the initial state of toggles */
-	mymenu[MENUBAR_OFFSET].state = !prefs.hidemenu;
-	mymenu[MENUBAR_OFFSET+1].state = prefs.topicbar;
-	mymenu[MENUBAR_OFFSET+2].state = !prefs.hideuserlist;
-	mymenu[MENUBAR_OFFSET+3].state = prefs.userlistbuttons;
-	mymenu[MENUBAR_OFFSET+4].state = prefs.chanmodebuttons;
+	mymenu[MENUBAR_OFFSET].state = !prefs.hex_gui_hide_menu;
+	mymenu[MENUBAR_OFFSET+1].state = prefs.hex_gui_topicbar;
+	mymenu[MENUBAR_OFFSET+2].state = !prefs.hex_gui_ulist_hide;
+	mymenu[MENUBAR_OFFSET+3].state = prefs.hex_gui_ulist_buttons;
+	mymenu[MENUBAR_OFFSET+4].state = prefs.hex_gui_mode_buttons;
 
 	mymenu[AWAY_OFFSET].state = away;
 
-	switch (prefs.tab_layout)
+	switch (prefs.hex_gui_tab_layout)
 	{
 	case 0:
 		mymenu[TABS_OFFSET].state = 1;
@@ -2138,7 +2138,7 @@ menu_create_main (void *accel_group, int bar, int away, int toplevel,
 	mymenu[METRE_OFFSET+1].state = 0;
 	mymenu[METRE_OFFSET+2].state = 0;
 	mymenu[METRE_OFFSET+3].state = 0;
-	switch (prefs.lagometer)
+	switch (prefs.hex_gui_lagometer)
 	{
 	case 0:
 		mymenu[METRE_OFFSET].state = 1;
@@ -2191,7 +2191,7 @@ menu_create_main (void *accel_group, int bar, int away, int toplevel,
 	while (1)
 	{
 		item = NULL;
-		if (mymenu[i].id == MENU_ID_USERMENU && !prefs.gui_usermenu)
+		if (mymenu[i].id == MENU_ID_USERMENU && !prefs.hex_gui_usermenu)
 		{
 			i++;
 			continue;
diff --git a/src/fe-gtk/plugin-tray.c b/src/fe-gtk/plugin-tray.c
index 3a623bc4..fef2698e 100644
--- a/src/fe-gtk/plugin-tray.c
+++ b/src/fe-gtk/plugin-tray.c
@@ -148,7 +148,7 @@ fe_tray_set_balloon (const char *title, const char *text)
 		return;
 
 	/* bit 1 of flags means "no balloons unless hidden/iconified" */
-	if (ws != WS_HIDDEN && (prefs.gui_tray_flags & 2))
+	if (ws != WS_HIDDEN && (prefs.hex_gui_tray_flags & 2))
 		return;
 
 	/* FIXME: this should close the current balloon */
@@ -732,12 +732,12 @@ tray_apply_setup (void)
 {
 	if (sticon)
 	{
-		if (!prefs.gui_tray)
+		if (!prefs.hex_gui_tray)
 			tray_cleanup ();
 	}
 	else
 	{
-		if (prefs.gui_tray && !hextray_mode ())
+		if (prefs.hex_gui_tray && !hextray_mode ())
 			tray_init ();
 	}
 }
@@ -769,7 +769,7 @@ tray_plugin_init (xchat_plugin *plugin_handle, char **plugin_name,
 
 	xchat_hook_print (ph, "Focus Window", -1, tray_focus_cb, NULL);
 
-	if (prefs.gui_tray && !hextray_mode ())
+	if (prefs.hex_gui_tray && !hextray_mode ())
 		tray_init ();
 
 	return 1;       /* return 1 for success */
diff --git a/src/fe-gtk/servlistgui.c b/src/fe-gtk/servlistgui.c
index aba42188..95c15785 100644
--- a/src/fe-gtk/servlistgui.c
+++ b/src/fe-gtk/servlistgui.c
@@ -187,7 +187,7 @@ servlist_networks_populate_ (GtkWidget *treeview, GSList *netlist, gboolean favo
 				gtk_list_store_insert_with_values (store, &iter, 0x7fffffff, 0, net->name, 1, 1, 2, 400, -1);
 			else
 				gtk_list_store_insert_with_values (store, &iter, 0x7fffffff, 0, net->name, 1, 1, 2, (net->flags & FLAG_FAVORITE) ? 800 : 400, -1);
-			if (i == prefs.slist_select)
+			if (i == prefs.hex_gui_slist_select)
 			{
 				/* select this network */
 				servlist_select_and_show (GTK_TREE_VIEW (treeview), &iter, store);
@@ -202,7 +202,7 @@ servlist_networks_populate_ (GtkWidget *treeview, GSList *netlist, gboolean favo
 static void
 servlist_networks_populate (GtkWidget *treeview, GSList *netlist)
 {
-	servlist_networks_populate_ (treeview, netlist, prefs.slist_fav);
+	servlist_networks_populate_ (treeview, netlist, prefs.hex_gui_slist_fav);
 }
 
 static void
@@ -353,7 +353,7 @@ servlist_move_network (ircnet *net, int delta)
 		pos += delta;
 		if (pos >= 0)
 		{
-			/*prefs.slist_select += delta;*/
+			/*prefs.hex_gui_slist_select += delta;*/
 			network_list = g_slist_remove (network_list, net);
 			network_list = g_slist_insert (network_list, net, pos);
 			servlist_networks_populate (networks_tree, network_list);
@@ -624,7 +624,7 @@ servlist_find_selected_net (GtkTreeSelection *sel)
 		net = servlist_net_find (netname, &pos, strcmp);
 		g_free (netname);
 		if (net)
-			prefs.slist_select = pos;
+			prefs.hex_gui_slist_select = pos;
 	}
 
 	return net;
@@ -1340,18 +1340,18 @@ static void
 no_servlist (GtkWidget * igad, gpointer serv)
 {
 	if (GTK_TOGGLE_BUTTON (igad)->active)
-		prefs.slist_skip = TRUE;
+		prefs.hex_gui_slist_skip = TRUE;
 	else
-		prefs.slist_skip = FALSE;
+		prefs.hex_gui_slist_skip = FALSE;
 }
 
 static void
 fav_servlist (GtkWidget * igad, gpointer serv)
 {
 	if (GTK_TOGGLE_BUTTON (igad)->active)
-		prefs.slist_fav = TRUE;
+		prefs.hex_gui_slist_fav = TRUE;
 	else
-		prefs.slist_fav = FALSE;
+		prefs.hex_gui_slist_fav = FALSE;
 
 	servlist_networks_populate (networks_tree, network_list);
 }
@@ -1801,7 +1801,7 @@ servlist_open_networks (void)
 	checkbutton_skip =
 		gtk_check_button_new_with_mnemonic (_("Skip network list on startup"));
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton_skip),
-											prefs.slist_skip);
+											prefs.hex_gui_slist_skip);
 	gtk_container_add (GTK_CONTAINER (hbox), checkbutton_skip);
 	g_signal_connect (G_OBJECT (checkbutton_skip), "toggled",
 							G_CALLBACK (no_servlist), 0);
@@ -1810,7 +1810,7 @@ servlist_open_networks (void)
 	checkbutton_fav =
 		gtk_check_button_new_with_mnemonic (_("Show favorites only"));
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton_fav),
-											prefs.slist_fav);
+											prefs.hex_gui_slist_fav);
 	gtk_container_add (GTK_CONTAINER (hbox), checkbutton_fav);
 	g_signal_connect (G_OBJECT (checkbutton_fav), "toggled",
 							G_CALLBACK (fav_servlist), 0);
diff --git a/src/fe-gtk/setup.c b/src/fe-gtk/setup.c
index e6b41ae5..b7c94412 100644
--- a/src/fe-gtk/setup.c
+++ b/src/fe-gtk/setup.c
@@ -161,15 +161,15 @@ static const setting appearance_settings[] =
 {
 	{ST_HEADER,	N_("General"),0,0,0},
 #ifdef WIN32
-	{ST_MENU,   N_("Language:"), P_OFFINTNL(gui_lang), 0, langsmenu, 0},
+	{ST_MENU,   N_("Language:"), P_OFFINTNL(hex_gui_lang), 0, langsmenu, 0},
 	{ST_EFONT,  N_("Main font:"), P_OFFSETNL(font_main), 0, 0, sizeof prefs.font_main},
 #else
 	{ST_EFONT,  N_("Font:"), P_OFFSETNL(font_normal), 0, 0, sizeof prefs.font_normal},
 #endif
 
 	{ST_HEADER,	N_("Title Bar"),0,0,0},
-	{ST_TOGGLE, N_("Show channel modes"), P_OFFINTNL(gui_win_modes),0,0,0},
-	{ST_TOGGLR, N_("Show number of users"), P_OFFINTNL(gui_win_ucount),0,0,0},
+	{ST_TOGGLE, N_("Show channel modes"), P_OFFINTNL(hex_gui_win_modes),0,0,0},
+	{ST_TOGGLR, N_("Show number of users"), P_OFFINTNL(hex_gui_win_ucount),0,0,0},
 
 	{ST_HEADER,	N_("Text Box"),0,0,0},
 	{ST_EFILE,  N_("Background image:"), P_OFFSETNL(background), 0, 0, sizeof prefs.background},
@@ -211,10 +211,10 @@ static const char *const tabcompmenu[] =
 static const setting inputbox_settings[] =
 {
 	{ST_HEADER, N_("Input Box"),0,0,0},
-	{ST_TOGGLE, N_("Use the Text box font and colors"), P_OFFINTNL(style_inputbox),0,0,0},
-	{ST_TOGGLE, N_("Show nick box"), P_OFFINTNL(gui_input_nick),0,0,0},
+	{ST_TOGGLE, N_("Use the Text box font and colors"), P_OFFINTNL(hex_gui_input_style),0,0,0},
+	{ST_TOGGLE, N_("Show nick box"), P_OFFINTNL(hex_gui_input_nick),0,0,0},
 #if defined(USE_GTKSPELL) || defined(USE_LIBSEXY)
-	{ST_TOGGLE, N_("Spell checking"), P_OFFINTNL(gui_input_spell),0,0,0},
+	{ST_TOGGLE, N_("Spell checking"), P_OFFINTNL(hex_gui_input_spell),0,0,0},
 	{ST_ENTRY,	N_("Dictionaries to use:"), P_OFFSETNL(spell_langs),0,0,sizeof prefs.spell_langs},
 #ifdef WIN32
 	{ST_LABEL,	N_("Use language codes (as in \"share\\myspell\\dicts\").\nSeparate multiple entries with commas.")},
@@ -238,14 +238,14 @@ static const setting inputbox_settings[] =
 	{ST_END, 0, 0, 0, 0, 0}
 };
 
-/*static const char *const lagmenutext[] = 
+static const char *const lagmenutext[] = 
 {
 	N_("Off"),
 	N_("Graph"),
 	N_("Info text"),
 	N_("Both"),
 	NULL
-};*/
+};
 
 static const char *const ulmenutext[] = 
 {
@@ -281,23 +281,23 @@ static const char *const ulpos[] =
 static const setting userlist_settings[] =
 {
 	{ST_HEADER,	N_("User List"),0,0,0},
-	{ST_TOGGLE, N_("Show hostnames in user list"), P_OFFINTNL(showhostname_in_userlist), 0, 0, 0},
-	{ST_TOGGLE, N_("Use the Text box font and colors"), P_OFFINTNL(style_namelistgad),0,0,0},
-	{ST_TOGGLE, N_("Show icons instead of text symbols"), P_OFFINTNL(gui_ulist_icons), 0, 0, 0},
-/*	{ST_TOGGLE, N_("Resizable user list"), P_OFFINTNL(paned_userlist),0,0,0},*/
-	{ST_MENU,	N_("User list sorted by:"), P_OFFINTNL(userlist_sort), 0, ulmenutext, 0},
-	{ST_MENU,	N_("Show user list at:"), P_OFFINTNL(gui_ulist_pos), 0, ulpos, 1},
+	{ST_TOGGLE, N_("Show hostnames in user list"), P_OFFINTNL(hex_gui_ulist_show_hosts), 0, 0, 0},
+	{ST_TOGGLE, N_("Use the Text box font and colors"), P_OFFINTNL(hex_gui_ulist_style),0,0,0},
+	{ST_TOGGLE, N_("Show icons instead of text symbols"), P_OFFINTNL(hex_gui_ulist_icons), 0, 0, 0},
+/*	{ST_TOGGLE, N_("Resizable user list"), P_OFFINTNL(hex_gui_ulist_resizable),0,0,0},*/
+	{ST_MENU,	N_("User list sorted by:"), P_OFFINTNL(hex_gui_ulist_sort), 0, ulmenutext, 0},
+	{ST_MENU,	N_("Show user list at:"), P_OFFINTNL(hex_gui_ulist_pos), 0, ulpos, 1},
 
 	{ST_HEADER,	N_("Away Tracking"),0,0,0},
 	{ST_TOGGLE,	N_("Track the Away status of users and mark them in a different color"), P_OFFINTNL(hex_away_track),0,0,2},
 	{ST_NUMBER, N_("On channels smaller than:"), P_OFFINTNL(hex_away_size_max),0,0,10000},
 
 	{ST_HEADER,	N_("Action Upon Double Click"),0,0,0},
-	{ST_ENTRY,	N_("Execute command:"), P_OFFSETNL(doubleclickuser), 0, 0, sizeof prefs.doubleclickuser},
+	{ST_ENTRY,	N_("Execute command:"), P_OFFSETNL(hex_gui_ulist_doubleclick), 0, 0, sizeof prefs.hex_gui_ulist_doubleclick},
 
-/*	{ST_HEADER,	N_("Extra Gadgets"),0,0,0},
-	{ST_MENU,	N_("Lag meter:"), P_OFFINTNL(lagometer), 0, lagmenutext, 0},
-	{ST_MENU,	N_("Throttle meter:"), P_OFFINTNL(throttlemeter), 0, lagmenutext, 0},*/
+	{ST_HEADER,	N_("Extra Gadgets"),0,0,0},
+	{ST_MENU,	N_("Lag meter:"), P_OFFINTNL(hex_gui_lagometer), 0, lagmenutext, 0},
+	{ST_MENU,	N_("Throttle meter:"), P_OFFINTNL(hex_gui_throttlemeter), 0, lagmenutext, 0},
 
 	{ST_END, 0, 0, 0, 0, 0}
 };
@@ -330,24 +330,24 @@ static const char *const swtype[] =
 static const setting tabs_settings[] =
 {
 	/*{ST_HEADER,	N_("Channel Switcher"),0,0,0},*/
-	{ST_RADIO,  N_("Switcher type:"),P_OFFINTNL(tab_layout), 0, swtype, 0},
-	{ST_TOGGLE, N_("Open an extra tab for server messages"), P_OFFINTNL(use_server_tab), 0, 0, 0},
-	{ST_TOGGLE, N_("Open an extra tab for server notices"), P_OFFINTNL(notices_tabs), 0, 0, 0},
-	{ST_TOGGLE, N_("Open a new tab when you receive a private message"), P_OFFINTNL(autodialog), 0, 0, 0},
-	{ST_TOGGLE, N_("Sort tabs in alphabetical order"), P_OFFINTNL(tab_sort), 0, 0, 0},
-	{ST_TOGGLE, N_("Show icons in the channel tree"), P_OFFINTNL(tab_icons), 0, 0, 0},
-	{ST_TOGGLE, N_("Show dotted lines in the channel tree"), P_OFFINTNL(gui_tab_dots), 0, 0, 0},
-	{ST_TOGGLE, N_("Smaller text"), P_OFFINTNL(tab_small), 0, 0, 0},
+	{ST_RADIO,  N_("Switcher type:"),P_OFFINTNL(hex_gui_tab_layout), 0, swtype, 0},
+	{ST_TOGGLE, N_("Open an extra tab for server messages"), P_OFFINTNL(hex_gui_tab_server), 0, 0, 0},
+	{ST_TOGGLE, N_("Open an extra tab for server notices"), P_OFFINTNL(hex_gui_tab_notices), 0, 0, 0},
+	{ST_TOGGLE, N_("Open a new tab when you receive a private message"), P_OFFINTNL(hex_gui_autoopen_dialog), 0, 0, 0},
+	{ST_TOGGLE, N_("Sort tabs in alphabetical order"), P_OFFINTNL(hex_gui_tab_sort), 0, 0, 0},
+	{ST_TOGGLE, N_("Show icons in the channel tree"), P_OFFINTNL(hex_gui_tab_icons), 0, 0, 0},
+	{ST_TOGGLE, N_("Show dotted lines in the channel tree"), P_OFFINTNL(hex_gui_tab_dots), 0, 0, 0},
+	{ST_TOGGLE, N_("Smaller text"), P_OFFINTNL(hex_gui_tab_small), 0, 0, 0},
 #if 0
 	{ST_MENU,	N_("Focus new tabs:"), P_OFFINTNL(newtabstofront), 0, focusnewtabsmenu, 0},
 #endif
-	{ST_MENU,	N_("Show channel switcher at:"), P_OFFINTNL(tab_pos), 0, cspos, 1},
-	{ST_NUMBER,	N_("Shorten tab labels to:"), P_OFFINTNL(truncchans), 0, (const char **)N_("letters."), 99},
+	{ST_MENU,	N_("Show channel switcher at:"), P_OFFINTNL(hex_gui_tab_pos), 0, cspos, 1},
+	{ST_NUMBER,	N_("Shorten tab labels to:"), P_OFFINTNL(hex_gui_tab_trunc), 0, (const char **)N_("letters."), 99},
 
 	{ST_HEADER,	N_("Tabs or Windows"),0,0,0},
-	{ST_MENU,	N_("Open channels in:"), P_OFFINTNL(tabchannels), 0, tabwin, 0},
-	{ST_MENU,	N_("Open dialogs in:"), P_OFFINTNL(privmsgtab), 0, tabwin, 0},
-	{ST_MENU,	N_("Open utilities in:"), P_OFFINTNL(windows_as_tabs), N_("Open DCC, Ignore, Notify etc, in tabs or windows?"), tabwin, 0},
+	{ST_MENU,	N_("Open channels in:"), P_OFFINTNL(hex_gui_tab_chans), 0, tabwin, 0},
+	{ST_MENU,	N_("Open dialogs in:"), P_OFFINTNL(hex_gui_tab_dialogs), 0, tabwin, 0},
+	{ST_MENU,	N_("Open utilities in:"), P_OFFINTNL(hex_gui_tab_utils), N_("Open DCC, Ignore, Notify etc, in tabs or windows?"), tabwin, 0},
 
 	{ST_END, 0, 0, 0, 0, 0}
 };
@@ -431,7 +431,7 @@ static const setting alert_settings[] =
 	{ST_3OGGLE, N_("Blink task bar on:"), 0, 0, (void *)taskbarlist, 0},
 	{ST_3OGGLE, N_("Make a beep sound on:"), 0, 0, (void *)beeplist, 0},
 
-	{ST_TOGGLE,	N_("Enable system tray icon"), P_OFFINTNL(gui_tray), 0, 0, 0},
+	{ST_TOGGLE,	N_("Enable system tray icon"), P_OFFINTNL(hex_gui_tray), 0, 0, 0},
 	{ST_TOGGLE,	N_("Omit alerts when marked as being away"), P_OFFINTNL(hex_away_omit_alerts), 0, 0, 0},
 
 	{ST_HEADER,	N_("Highlighted Messages"),0,0,0},
@@ -493,9 +493,9 @@ static const setting advanced_settings[] =
 	{ST_TOGGLE,	N_("Whois on notify"), P_OFFINTNL(whois_on_notifyonline), N_("Sends a /WHOIS when a user comes online in your notify list"), 0, 0},
 	{ST_TOGGLE,	N_("Hide join and part messages"), P_OFFINTNL(confmode), N_("Hide channel join/part messages by default"), 0, 0},
 	{ST_HEADER,	N_("Auto Open DCC Windows"),0,0,0},
-	{ST_TOGGLE, N_("Send window"), P_OFFINTNL(autoopendccsendwindow), 0, 0, 0},
-	{ST_TOGGLE, N_("Receive window"), P_OFFINTNL(autoopendccrecvwindow), 0, 0, 0},
-	{ST_TOGGLE, N_("Chat window"), P_OFFINTNL(autoopendccchatwindow), 0, 0, 0},
+	{ST_TOGGLE, N_("Send window"), P_OFFINTNL(hex_gui_autoopen_send), 0, 0, 0},
+	{ST_TOGGLE, N_("Receive window"), P_OFFINTNL(hex_gui_autoopen_recv), 0, 0, 0},
+	{ST_TOGGLE, N_("Chat window"), P_OFFINTNL(hex_gui_autoopen_chat), 0, 0, 0},
 	{ST_HEADER,	N_("Auto Copy Behavior"),0,0,0},
 	{ST_TOGGLE, N_("Automatically copy selected text"), P_OFFINTNL(autocopy_text),
 					N_("Copy selected text to clipboard when left mouse button is released. "
@@ -521,11 +521,11 @@ static const setting advanced_settings_oneinstance[] =
 	{ST_TOGGLE,	N_("Display MODEs in raw form"), P_OFFINTNL(raw_modes), 0, 0, 0},
 	{ST_TOGGLE,	N_("Whois on notify"), P_OFFINTNL(whois_on_notifyonline), N_("Sends a /WHOIS when a user comes online in your notify list"), 0, 0},
 	{ST_TOGGLE,	N_("Hide join and part messages"), P_OFFINTNL(confmode), N_("Hide channel join/part messages by default"), 0, 0},
-	{ST_TOGGLE,	N_("Allow only one instance of HexChat to run"), P_OFFINTNL(gui_one_instance), 0, 0, 0},
+	{ST_TOGGLE,	N_("Allow only one instance of HexChat to run"), P_OFFINTNL(hex_gui_single), 0, 0, 0},
 	{ST_HEADER,	N_("Auto Open DCC Windows"),0,0,0},
-	{ST_TOGGLE, N_("Send window"), P_OFFINTNL(autoopendccsendwindow), 0, 0, 0},
-	{ST_TOGGLE, N_("Receive window"), P_OFFINTNL(autoopendccrecvwindow), 0, 0, 0},
-	{ST_TOGGLE, N_("Chat window"), P_OFFINTNL(autoopendccchatwindow), 0, 0, 0},
+	{ST_TOGGLE, N_("Send window"), P_OFFINTNL(hex_gui_autoopen_send), 0, 0, 0},
+	{ST_TOGGLE, N_("Receive window"), P_OFFINTNL(hex_gui_autoopen_recv), 0, 0, 0},
+	{ST_TOGGLE, N_("Chat window"), P_OFFINTNL(hex_gui_autoopen_chat), 0, 0, 0},
 	{ST_HEADER,	N_("Auto Copy Behavior"),0,0,0},
 	{ST_TOGGLE, N_("Automatically copy selected text"), P_OFFINTNL(autocopy_text),
 					N_("Copy selected text to clipboard when left mouse button is released. "
@@ -2068,10 +2068,10 @@ setup_apply_to_sess (session_gui *gui)
 
 	mg_update_xtext (gui->xtext);
 
-	if (prefs.style_namelistgad)
+	if (prefs.hex_gui_ulist_style)
 		gtk_widget_set_style (gui->user_tree, input_style);
 
-	if (prefs.style_inputbox)
+	if (prefs.hex_gui_input_style)
 	{
 		extern char cursor_color_rc[];
 		char buf[256];
@@ -2087,14 +2087,14 @@ setup_apply_to_sess (session_gui *gui)
 		setup_apply_entry_style (gui->topic_entry);
 	}
 
-	if (prefs.userlistbuttons)
+	if (prefs.hex_gui_ulist_buttons)
 		gtk_widget_show (gui->button_box);
 	else
 		gtk_widget_hide (gui->button_box);
 
 #ifdef USE_GTKSPELL
 	spell = gtkspell_get_from_text_view (GTK_TEXT_VIEW (gui->input_box));
-	if (prefs.gui_input_spell)
+	if (prefs.hex_gui_input_spell)
 	{
 		if (!spell)
 			gtkspell_new_attach (GTK_TEXT_VIEW (gui->input_box), NULL, NULL);
@@ -2107,7 +2107,7 @@ setup_apply_to_sess (session_gui *gui)
 #endif
 
 #ifdef USE_LIBSEXY
-	sexy_spell_entry_set_checked ((SexySpellEntry *)gui->input_box, prefs.gui_input_spell);
+	sexy_spell_entry_set_checked ((SexySpellEntry *)gui->input_box, prefs.hex_gui_input_spell);
 #endif
 }
 
@@ -2201,44 +2201,44 @@ setup_apply (struct hexchatprefs *pr)
 #define DIFF(a) (pr->a != prefs.a)
 
 #ifdef WIN32
-	if (DIFF (gui_lang))
+	if (DIFF (hex_gui_lang))
 		noapply = TRUE;
 #endif
-	if (DIFF (paned_userlist))
+	if (DIFF (hex_gui_ulist_resizable))
 		noapply = TRUE;
-	if (DIFF (gui_input_nick))
+	if (DIFF (hex_gui_input_nick))
 		noapply = TRUE;
-	if (DIFF (lagometer))
+	if (DIFF (hex_gui_lagometer))
 		noapply = TRUE;
-	if (DIFF (throttlemeter))
+	if (DIFF (hex_gui_throttlemeter))
 		noapply = TRUE;
-	if (DIFF (showhostname_in_userlist))
+	if (DIFF (hex_gui_ulist_show_hosts))
 		noapply = TRUE;
-	if (DIFF (tab_small))
+	if (DIFF (hex_gui_tab_small))
 		noapply = TRUE;
-	if (DIFF (tab_sort))
+	if (DIFF (hex_gui_tab_sort))
 		noapply = TRUE;
-	if (DIFF (gui_ulist_icons))
+	if (DIFF (hex_gui_ulist_icons))
 		noapply = TRUE;
-	if (DIFF (use_server_tab))
+	if (DIFF (hex_gui_tab_server))
 		noapply = TRUE;
-	if (DIFF (style_namelistgad))
+	if (DIFF (hex_gui_ulist_style))
 		noapply = TRUE;
-	if (DIFF (truncchans))
+	if (DIFF (hex_gui_tab_trunc))
 		noapply = TRUE;
-	if (DIFF (tab_icons))
+	if (DIFF (hex_gui_tab_icons))
 		noapply = TRUE;
 
-	if (DIFF (gui_tab_dots))
+	if (DIFF (hex_gui_tab_dots))
 		do_layout = TRUE;
-	if (DIFF (tab_layout))
+	if (DIFF (hex_gui_tab_layout))
 		do_layout = TRUE;
 
 	if (color_change || (DIFF (hex_away_size_max)) || (DIFF (hex_away_track)))
 		do_ulist = TRUE;
 
-	if ((pr->tab_pos == 5 || pr->tab_pos == 6) &&
-		 pr->tab_layout == 2 && pr->tab_pos != prefs.tab_pos)
+	if ((pr->hex_gui_tab_pos == 5 || pr->hex_gui_tab_pos == 6) &&
+		 pr->hex_gui_tab_layout == 2 && pr->hex_gui_tab_pos != prefs.hex_gui_tab_pos)
 		fe_message (_("You cannot place the tree on the top or bottom!\n"
 						"Please change to the <b>Tabs</b> layout in the <b>View</b>"
 						" menu first."),
diff --git a/src/fe-gtk/userlistgui.c b/src/fe-gtk/userlistgui.c
index 5a0e5bd7..d4834581 100644
--- a/src/fe-gtk/userlistgui.c
+++ b/src/fe-gtk/userlistgui.c
@@ -126,7 +126,7 @@ fe_userlist_numbers (session *sess)
 			gtk_label_set_text (GTK_LABEL (sess->gui->namelistinfo), NULL);
 		}
 
-		if (sess->type == SESS_CHANNEL && prefs.gui_win_ucount)
+		if (sess->type == SESS_CHANNEL && prefs.hex_gui_win_ucount)
 			fe_set_title (sess);
 	}
 }
@@ -357,7 +357,7 @@ fe_userlist_insert (session *sess, struct User *newuser, int row, int sel)
 		do_away = FALSE;
 
 	nick = newuser->nick;
-	if (!prefs.gui_ulist_icons)
+	if (!prefs.hex_gui_ulist_icons)
 	{
 		nick = malloc (strlen (newuser->nick) + 2);
 		nick[0] = newuser->prefix[0];
@@ -378,7 +378,7 @@ fe_userlist_insert (session *sess, struct User *newuser, int row, int sel)
 										:	(NULL),
 								  -1);
 
-	if (!prefs.gui_ulist_icons)
+	if (!prefs.hex_gui_ulist_icons)
 	{
 		free (nick);
 	}
@@ -482,7 +482,7 @@ userlist_add_columns (GtkTreeView * treeview)
 
 	/* icon column */
 	renderer = gtk_cell_renderer_pixbuf_new ();
-	if (prefs.gui_compact)
+	if (prefs.hex_gui_compact)
 		g_object_set (G_OBJECT (renderer), "ypad", 0, NULL);
 	gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview),
 																-1, NULL, renderer,
@@ -490,18 +490,18 @@ userlist_add_columns (GtkTreeView * treeview)
 
 	/* nick column */
 	renderer = gtk_cell_renderer_text_new ();
-	if (prefs.gui_compact)
+	if (prefs.hex_gui_compact)
 		g_object_set (G_OBJECT (renderer), "ypad", 0, NULL);
 	gtk_cell_renderer_text_set_fixed_height_from_font (GTK_CELL_RENDERER_TEXT (renderer), 1);
 	gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview),
 																-1, NULL, renderer,
 													"text", 1, "foreground-gdk", 4, NULL);
 
-	if (prefs.showhostname_in_userlist)
+	if (prefs.hex_gui_ulist_show_hosts)
 	{
 		/* hostname column */
 		renderer = gtk_cell_renderer_text_new ();
-		if (prefs.gui_compact)
+		if (prefs.hex_gui_compact)
 			g_object_set (G_OBJECT (renderer), "ypad", 0, NULL);
 		gtk_cell_renderer_text_set_fixed_height_from_font (GTK_CELL_RENDERER_TEXT (renderer), 1);
 		gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview),
@@ -522,12 +522,12 @@ userlist_click_cb (GtkWidget *widget, GdkEventButton *event, gpointer userdata)
 		return FALSE;
 
 	if (!(event->state & STATE_CTRL) &&
-		event->type == GDK_2BUTTON_PRESS && prefs.doubleclickuser[0])
+		event->type == GDK_2BUTTON_PRESS && prefs.hex_gui_ulist_doubleclick[0])
 	{
 		nicks = userlist_selection_list (widget, &i);
 		if (nicks)
 		{
-			nick_command_parse (current_sess, prefs.doubleclickuser, nicks[0],
+			nick_command_parse (current_sess, prefs.hex_gui_ulist_doubleclick, nicks[0],
 									  nicks[0]);
 			while (i)
 			{
@@ -623,7 +623,7 @@ userlist_create (GtkWidget *box)
 	gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw),
 													 GTK_SHADOW_ETCHED_IN);
 	gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw),
-											  prefs.showhostname_in_userlist ?
+											  prefs.hex_gui_ulist_show_hosts ?
 												GTK_POLICY_AUTOMATIC :
 												GTK_POLICY_NEVER,
 											  GTK_POLICY_AUTOMATIC);
diff --git a/src/fe-text/fe-text.c b/src/fe-text/fe-text.c
index 766ba203..e50d4697 100644
--- a/src/fe-text/fe-text.c
+++ b/src/fe-text/fe-text.c
@@ -532,11 +532,11 @@ void
 fe_init (void)
 {
 	/* the following should be default generated, not enfoced in binary */
-	prefs.use_server_tab = 0;
-	prefs.autodialog = 0;
+	prefs.hex_gui_tab_server = 0;
+	prefs.hex_gui_autoopen_dialog = 0;
 	/* except for these, there is no lag meter, there is no server list */
-	prefs.lagometer = 0;
-	prefs.slist_skip = 1;
+	prefs.hex_gui_lagometer = 0;
+	prefs.hex_gui_slist_skip = 1;
 }
 
 void