AlterInet

Introduction
Equipe
Contact
Liens

Chat

Canaux
Serveurs
Statistiques
Conditions

Outils web

Liste complète
Pastebin
WebStatus
Quote
Captures d'écran

Aide

FAQ
Guide SSL
Customisation d'XChat

Connexion



Créer un compte
Mot de passe oublié

Protéger le mot de passe des regards indiscrets (SSL)

Actualités

Bêta du site
le 01/06/2009

Niveau de défense
le 01/04/2009

AlterInet et Toile Libre
le 16/07/2008

Open Discussion Day 2008
le 19/05/2008

Seconde Open Discussion Day
le 18/05/2007

Le guide de la customisation d'X-Chat

Sommaire

Introduction

Ce guide vise a exploiter le client X-Chat pour donner la possibilité aux utilisateurs de modifier son esthétisme et de créer leurs propres scripts.
X-Chat est téléchargeable sur http://www.xchat.org. Préférez un système UNIX et utilisez la version source. Toutefois si vous êtes sur un système de chez Microsoft prenez X-Chat chez http://xrl.us/h7rs plutôt que sur le site officiel.

Présentation des fichiers de configuration d'X-Chat

Voici la liste des fichiers qui peuvent se trouver dans le ~/.xchat2/ :

Compiler X-Chat

Il y a plusieurs options de compilations pour X-Chat :

L'executable xchat-2

$ xchat-2 --help-all
Usage :
xchat-2 [OPTION...]

Options de l'aide :
-?, --help Afficher les options de l'aide
--help-all Afficher toutes les options de l'aide
--help-gtk Afficher les options GTK+

GTK+ Options
--class=CLASSE Classe du programme tel qu'utilisée par le gestionnaire de fenêtres
--name=NOM Nom du programme tel qu'utilisé par le gestionnaire de fenêtres
--screen=ÉCRAN Écran X à utiliser
--sync Faire des appels X synchrone
--gtk-module=MODULES Charger des modules GTK+ additionnels
--g-fatal-warnings Rend tous les avertissements fatals

Options de l'application :
-a, --no-auto Don't auto connect to servers
-d, --cfgdir=PATH Use a different config directory
-n, --no-plugins Don't auto load any plugins
-p, --plugindir Show plugin auto-load directory
-u, --configdir Show user config directory
--url=URL Open an irc://server:port/channel URL
-v, --version Show version information
--display=VISUEL Visuel X à utiliser

l'option -a permet de ne pas s'autoconnecter sur les réseaux choisi avec auto connexion. Ceci peut se révéler utile si on veux tester un greffon ou un script peu stable.

Liste des serveurs

serverlist

Dans cette boîte de dialogue on peut :

serveredit

Dans cette boîte de dialogue on peut :

Voici l'explication de la syntaxe du fichier servlist_.conf :
v : version d'X-Chat
N : Nom du réseau IRC
---
Paramètres locaux à ce réseau
I : Pseudo principal
i : Pseudo alternatif
U : username
R : realname
---
P : mot de passe du serveur irc
J : canal a rejoindre automatiquement
B : mot de passe de nickserv
E : encoding des caractères a utiliser
C : commande a executer au démarrage
F : flags
bit 5 = accepter les certificats SSL non valide
bit 4 = passer par le serveur proxy si activé dans les préférences
bit 3 = connexion automatique au démarrage d'X-Chat
bit 2 = connexion par ssl
bit 1 = utiliser les paramètres globaux
bit 0 = n'utilise que le serveur selectionné(0=seul 1=tous)
D : numero du serveur a joindre
S : serveur et port a joindre

Et ici un exemple du fichier servlist_.conf :

v=2.6.0

N=reseau
I=Guru_Meditation
i=Guru_Meditation2
U=user
R=real
P=qsdfgh
J=#ici
B=azerty
E=ISO-8859-7 (Greek)
C=cmd
F=61
D=0
S=newserver2/6665
S=newserver/6667

View menu

Dans le menu View on peut :

Explication des options de préférences d'X-Chat

la plupart de ces preferences si dessous sont inscrites dans le fichier xchat.conf

Boîte de texte

xchat-prefs1

Dans cette boîte de dialogue on peut :

Boîte de saisie

xchat-prefs2

Dans cette boîte de dialogue on peut :

Liste des utilisateurs

xchat-prefs3

Dans cette boîte de dialogue on peut :

Onglets

xchat-prefs4

Dans cette boîte de dialogue on peut :

Couleurs

xchat-prefs5

La configuration des couleurs se trouve dans colors.conf.

Voici un exemple : color_2 = 0000 0000 cccc
Il s'agit de la couleur numéro 2 ou les valeurs correspondent à un bleu.
remarque : les valeurs sont doublées cc->cccc, j'ignore pourquoi c'est comme cela, mais il est possible que ça ai un rapport avec GTK

Pour les couleurs définit de 0 à 31 ils sont utilisable avec Ctrl+K.
Les couleurs de 256 à 264 colore des éléments bien spécifique dont voici la liste :

color_256 = 0000 0000 0000
color_257 = a4a4 dfdf ffff
color_258 = 0023 8080 0000
color_259 = 0000 0000 0000
color_260 = cccc 1010 1010
color_261 = 8c8c 1010 1010
color_262 = 0000 0000 ffff
color_263 = f5f5 0000 0000
color_264 = 9999 9999 9999

Général

xchat-prefs6

Dans cette boîte de dialogue on peut :

Enregistrement

xchat-prefs7

Dans cette boîte de dialogue on peut :

Sons

xchat-prefs8

Dans cette boîte de dialogue on peut :

Réglage du réseau

xchat-prefs9

Dans cette boîte de dialogue on peut :

Transferts de fichiers

xchat-prefs10

Dans cette boîte de dialogue on peut :

Les évenements textuels

Les évenements textuels permettent, selon des informations reçu, d'afficher ces informations avec un certain formatage.
La configuration est accessible dans Paramètres > Avancés > Evénements textuels... . Ou bien dans le fichier pevents.conf.

event_name=Add Notify
event_text=-%C10-%C11-%O$t$1 added to notify list.

event_name=Ban List
event_text=%C22*%O$t$1 Banlist:%C19 $4%C20 $2%C21 $3

event_name=Banned
event_text=-%C10-%C11-%O$tCannot join%C11 %B$1 %O(You are banned).

$t pour afficher l'heure (timestamp)
%C suivit d'un nombre pour mettre une couleur
$1, $2, $3, ... sont les paramètres de l'évenement. Cela peut être un pseudonyme, un masque, une adresse, ...

capture du menu

Pour modifier ce menu il faut editer le fichier popup.conf qui se trouve dans ~/.xchat2/ sur un système unix, ou bien allez dans le menu Paramètre > Avancés > Menu contextuel de la liste des utilisateurs.

Ajout d'un sous-menu :

NAME SUB
CMD Mode

Terminaison du sous-menu :

NAME ENDSUB
CMD

Ajout d'un séparateur :

NAME SEP
CMD

Ajout d'une commande :

NAME mettre Voice
CMD voice %a

Boutons Liste Utilisateurs - Codes spéciaux:

%a = tous les pseudos sélectionnés
%c = canal courant
%h = nom d'hôte du pseudo sélectionné
%m = info machine
%n = votre pseudo
%s = pseudo sélectionné
%t = heure/date

Le menu Utilisateur est en fait un menu entièrement paramétrable il faut d'abord l'activer en tapant /set gui_usermenu 1. Pour modifier ce menu allez dans le menu Usermenu > Editer ce menu... . Sa configuration se trouve dans le fichier usermenu.conf

Voici a quoi ressemble le fichier de configuration de ce menu :

NAME map
CMD quote map

NAME modules
CMD quote module

NAME admin
CMD quote admin

NAME version
CMD quote version

NAME rules
CMD quote rules

NAME motd
CMD quote motd

NAME lusers
CMD quote lusers

Ce qui donne comme résultat :
usermenu

La configuration est accessible dans le menu Paramètre > Avancés > Manupulateurs d'URL... . Ou bien dans le fichier urlhandlers.conf.
Gestionnaires d'URL - Codes spéciaux :

%s = la chaîne d'URL

Placer un ! devant la command
indique qu'elle devrait être
envoyée à un shell au lieu de X-Chat

NAME naviguer
CMD !firefox-bin %s

NAME gFTP
CMD !gftp %s

NAME ssh
CMD !gnome-terminal -x ssh %s

NAME Telnet
CMD !gnome-terminal -x telnet %s

NAME Ping
CMD !gnome-terminal -x ping -c 4 %s

NAME Connect as IRC server
CMD newserver %s
urlmenu

On peut modifier le menu contextuelle de la zone principale avec la commande /MENU. L'ajout de menu par cette commande n'est pas sauvegardé dans un fichier. Il faut l'utiliser dans un fichier de script pour que le menu soit recrée a chaque exécution d'X-Chat.

MENU : MENU [-eX] [-k<mod>,<key>] [-pX] [-tX] {ADD|DEL} <path> [command] [unselect command]

-eX avec X=0 signifie que la commande est désactivée. et X=1 signifie activée.
-k permet de spécifier un raccourci clavier. Le premier argument est un champ de bits où 1=SHIFT, 4=CTRL et 8=ALT. Le deuxième argument est le code de la touche.
-pX specifie la position du menu a ajouter, par defaut le menu est inséré à la fin.
-tX pour activer/désactiver une option contenu dans un menu
path est de la forme "menu/commande" voir les exemples plus bas
command est la commande a exécuter
unselect command est la commande a exécuter lorsque l'option est déselectionnée. utilisé avec l'option -tX.

MENU -p5 ADD FServe
MENU ADD "FServe/Show File List" "fs list"
MENU ADD FServe/-
MENU -k4,101 -t1 ADD "FServe/Enabled" "fs on" "fs off"
MENU -e0 ADD "FServe/Do Something" "fs action"

fservemenu

Les boutons utilisateurs

userbutton
NAME Op
CMD op %a

NAME DéOp
CMD deop %a

NAME Ban
CMD ban %s
NAME Kick
CMD getstr bonsoir "kick %s" "Saisissez la raison pour kicker %s :"

NAME Fichier à envoyer
CMD dcc send %s

NAME Dialogue
CMD query %s

Les boutons de dialogues

Boutons Liste Utilisateurs - Codes spéciaux

%a = tous les pseudos sélectionnés
%c = canal courant
%h = nom d'hôte du pseudo sélectionné
%m = info machine
%n = votre pseudo
%s = pseudo sélectionné
%t = heure/date

NAME WhoIs
CMD whois %s %s

NAME Send
CMD dcc send %s

NAME Chat
CMD dcc chat %s

NAME Clear
CMD clear

NAME Ping
CMD ping %s
dlgbutton

Les alias

Pour modifier les alias de commandes allez dans Paramètres > Avancés > Commandes utilisateurs... . Ou bien editez le fichier commands.conf.

Commandes utilisateur - Codes spéciaux :

%c = canal courant
%m = info sur la machine
%n = votre pseudonyme
%t = heure/date
%v = version d'xchat
%2 = mot 2
%3 = mot 3
&2 = du mot 2 jusqu'à la fin de la ligne
&3 = du mot 3 jusqu'à la fin de la ligne

ex :
/cmd john salut

%2 donnerait "john"
&2 donnerait "john salut".

NAME ACTION
CMD me &2

NAME AME
CMD allchan me &2

NAME ANICK
CMD allserv nick &2

NAME AMSG
CMD allchan say &2

Les raccourcis claviers

Les raccourcis claviers sont stockés dans le fichier keybindings.conf. Voici un extrait de ce fichier avec son explication ci-dessous :

C
o
Insert in Buffer
D1:^O
D2!

Ajoute ^O au message lorsqu'on presse Ctrl+O.

None
Return
Check For Replace
D1!
D2!

Verifie les mots a remplacer lorsque l'on appuye sur Entrée.

None
Tab
Complete nick/command
D1!
D2!

Fait la completion du pseudo ou de la commande lorsque l'on presse la touche Tab.

ActionDescriptionDonnées 1Données 2
Check for replaceCette commande vérifie si le dernier mot saisi dans la zone est présent dans la liste de remplacements et le remplace si elle trouve une correspondance. XX
Next CommandLa commande Next Command met dans la zone la prochaine commande entrée - la même chose que presser la flèche bas du pavé numérique dans un shell XX
Last CommandLa commande Last Command met dans la zone la dernière commande entrée - la même chose que presser la flèche haut du pavé numérique dans un shell XX
Complete nick/commandCette commande change le texte dans la zone pour compléter un pseudo ou une commande incomplet. Si Données 1 est défini, alors un double appui dans une chaîne sélectionnera le dernier pseudo, pas le prochain qqchX
Insert in BufferLa commande Insert in Buffer insérera le contenu de Données 1 dans la zone où la séquence de touches a été pressée à la position actuelle du curseur qqchX
Move front tab rightCette commande déplace l'onglet de devant d'un cran vers la droite XX
Move front tab leftCette commande déplace l'onglet de devant d'un cran vers la gauche XX
Move tab family rightCette commande déplace l'ensemble des onglets vers la droite XX
Move tab family leftCette commande déplace l'ensemble des onglets vers la gauche XX
Change Selected NickCette commande parcourt vers le haut ou le bas la liste des pseudos. Si Données 1 est défini elle parcourt vers le haut, sinon elle parcourt vers la bas qqchX
Run CommandL'action Run Command exécute les données dans Données 1 comme si elles avaient été tapées dans la zone de saisie où vous avez pressé la séquence de touches. Ainsi, elle peut contenir du texte (qui sera envoyé au canal/personne), des commandes ou des commandes utilisateur. Quand elle s'exécute tous les caractères \n dans Données 1 sont utilisés pour délimiter des commandes séparées ce qui permet de lancer plus d'une commande. Si vous voulez un \ dans le texte effectivement exécuté, entrez \\ qqchX
Change Pageéchange les pages présentes dans le bloc-notes. Définissez Données 1 à la page vers laquelle vous voulez sauter. Si Données 2 est défini alors l'échange sera relatif à la position actuelle qqchqqch
Scroll PageFait défiler le widget de texte vers le haut ou vers le bas d'une page ou d'une ligne. Définir Data 1 soit à Up, Down, +1 ou -1. qqchX
Set BufferMet le contenu de Données 1 dans la zone où la séquence de touches a été pressée qqchX
Push input line into historyPlacer la ligne de saisie dans l'historique mais ne pas l'afficher sur le serveur XX

Les options introuvables graphiquement

Certaines options sont inaccessibles dans l'interface d'xchat. Elles sont uniquement modifiable avec la commande /set <option> <valeur> .
Voici la liste :

Les commandes d'origines sur X-Chat

Commandes de privilèges de canaux :

Commandes d'envoi de messages :

Commandes usuelles :

Commandes de connexions/deconnexions à un serveur :

Commandes DCC :

Commandes utiles pour les scripts :

Autres commandes :

Les icônes

Si on affiche les onglets en arbre on peut ajouter des icônes devant un nom de canal, un PV, un nom de serveur ou bien devant un onglet d'outil comme rawlog. Il faut pour cela activer tab_icons et insérer les fichiers server.png, channel.png, dialog.png et util.png dans /usr/share/xchat/, puis redémarrer X-Chat.
On peut aussi remplacer les pastilles colorées des privilèges des canaux par d'autres images. Il doivent être nommés op.png, hop.png, voice.png, red.png et purple.png et être stocké dans /usr/share/xchat/.

channeltree

Les greffons

Un greffon permet d'ajouter des fonctionnalité au logiciel X-Chat. Pour que les greffons puissent se charger automatiquement au démarrage d'x-chat, il faut placer son fichier dans ~/.xchat2/ . Quelques exemples d'extensions se trouvent ici.

Le timer

Plugin defined commands:

TIMER : Usage: TIMER [-refnum <num>] [-repeat <num>]
<seconds> <command>
TIMER [-quiet] -delete <num>

Le DBUS

Le DBUS sert a envoyer des informations vers d'autres applications (comme un IPC). Pour l'utiliser avec xchat, il faut charger le greffon dbus.so qui se trouve dans le paquetage d'X-Chat.

/load dbus.so

Le paquetage fournit également un executable qui se nomme : xchat-remote.
En tapant xchat-remote --help :

Usage:
xchat-remote [OPTION...]

Help Options:
-?, --help Show help options

Application Options:
-u, --url=irc://server:port/channel Open an irc:// url
-c, --command="Command to execute" Execute a xchat command
-p, --print="Text to print" Prints some text to the current tab/window
-h, --channel=channel Change the context to the channel
-s, --server=server Change the context to the server
-i, --info=id Get some informations from xchat
-r, --prefs=name Get settings from xchat

On peut ainsi contrôler X-Chat à distance.
Voici un exemple d'application de cette commande :

xchat-remote -u irc://irc.alterinet.org/alterinet

Cette commande ordonne à X-Chat de se connecter sur le canal #alterinet du serveur irc.alterinet.org

Les scripts en tcl

http://www.scriptkitties.com/tclplugin/
pluginscripts.tar.gz
http://www.scriptkitties.com/tclplugin/tclplugin.shtml

Tcl Plugin XChat Commands:
/reload, /source, /tcl

Tcl Plugin TCL Commands:
alias, away, channel, channels, chats, command, complete, dcclist, findcontext, getcontext, getinfo, getlist, host, ignores, killtimer, me, network, nickcmp, off, on, print, queries, raw, server, servers, setcontext, timer, timerexists, timers, topic, users, version, xchatdir

Les scripts en perl

http://xchat.org/docs/xchat2-perl.html

Les scripts en python

http://xchat.org/docs/xchatpython.html.gz

Les greffons en C

http://xchat.org/docs/plugin20.html

Le code source d'X-Chat

Dans xchat-*/src/fe-gtk/

Makefile.am      chanview-tree.c  gtkutil.h     notifygui.h  servlistgui.c
Makefile.in      chanview.c       ignoregui.c   palette.c    setup.c
about.c          chanview.h       joind.c       palette.h    textgui.c
about.h          dccgui.c         maingui.c     pixmaps.c    textgui.h
ascii.c          editlist.c       maingui.h     pixmaps.h    urlgrab.c
ascii.h          editlist.h       makefile.msc  plugingui.c  urlgrab.h
banlist.c        fe-gtk.c         menu.c        plugingui.h  userlistgui.c
banlist.h        fe-gtk.h         menu.h        rawlog.c     userlistgui.h
chanlist.c       fkeys.c          mmx_cmod.S    rawlog.h     xtext.c
chanlist.h       fkeys.h          mmx_cmod.h    search.c     xtext.h
chanview-tabs.c  gtkutil.c        notifygui.c   search.h

about
about
ascii
ascii
banlist
chanview chanview-tabs.c chanview-tree.c chanlist dccgui.c
---
editlist
editlist
---
fe-gtk
fkeys gtkutil ignoregui.c joind.c maingui menu mmx_cmod.S mmx_cmod.h notifygui palette pixmaps
---
plugingui
plugingui
---
rawlog search
---
servlistgui.c
servlistgui
---
setup.c textgui urlgrab userlistgui xtext