Le guide de la customisation d'X-Chat
Sommaire
- Introduction
- Présentation des fichiers de configuration d'X-Chat
- Compiler X-Chat
- L'executable xchat-2
- Liste des serveurs
- Explication des options de préférences d'X-Chat
- Boîte de texte
- Boîte de saisie
- Liste des utilisateurs
- Onglets
- Couleurs
- Général
- Enregistrement
- Sons
- Réglage du réseau
- Transferts de fichiers
- Les évenements textuels
- Menu contextuel de la liste des utilisateurs
- Le menu Utilisateur
- Le menu des URLs
- Ajout de menus suplémentaires
- Les boutons utilisateurs
- Les boutons de dialogues
- Les alias
- Les raccourcis claviers
- Les options introuvables graphiquement
- Les commandes d'origines sur X-Chat
- Les icônes
- Les greffons
- Le timer
- Le DBUS
- Les scripts en tcl
- Les scripts en perl
- Les scripts en python
- Les greffons en C
- Le code source d'X-Chat
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/ :
- buttons.conf - boutons de la liste des utilisateurs
- colors.conf - couleurs d'xchat
- commands.conf - alias de commandes d'xchat
- ctcpreply.conf - réponses aux requêtes CTCP
- dlgbuttons.conf - boutons utilisables en PV
- guru.pl - un fichier de script en perl
- ignore.conf - liste des ignores
- keybindings.conf - raccourcis clavier
- notify.conf - liste des pseudos a notifier
- pevents.conf - évenements textuels
- popup.conf - menu contextuel de la liste des utilisateurs
- replace.conf - substitution de certains mots par un autre
- servlist_.conf - liste des réseaux IRC avec ses paramètres
- sound.conf - évenements sonore
- urlhandlers.conf - menu contextuel des liens
- usermenu.conf - menu paramétrable "Serveurs"
- xchat.conf - options d'X-Chat (préférences)
- downloads/ - dossier des fichiers reçus par dcc
- sounds/ - dossier contenant les fichiers son
- xchatlogs/ - dossier contenant les fichiers journaux
Compiler X-Chat
Il y a plusieurs options de compilations pour X-Chat :
- ipv6
- ssl
- mmx
- libsexy ou GtkSpell (pour la verification orthographique)
- dbus
- nls
- perl
- python
- tcl
- dccserver
- xchattext
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
Dans cette boîte de dialogue on peut :
- choisir notre pseudonyme principal (irc_nick1)
- choisir un pseudonyme alternatif (irc_nick2)
- choisir un autre pseudonyme alternatif (irc_nick3)
- choisir un username (irc_user_name)
- choisir un realname (irc_real_name)
- ne pas reafficher la liste des serveurs au démarrage (gui_slist_skip)
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
Dans le menu View on peut :
- cacher la barre de menu (gui_hide_menu)
- cacher la barre du sujet du canal (gui_topicbar)
- affiche les boutons des modes de canaux (gui_mode_buttons)
- affiche les boutons de la liste des utilisateurs (gui_ulist_buttons)
- affiche les onglets en onglet ou en arbre (tab_layout)
- affiche l'indicateur de lag (gui_lagometer)
- et affiche egalement l'indicateur de puissance (gui_throttlemeter)
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
Dans cette boîte de dialogue on peut :
- changer la police, les polices se trouvent dans /usr/share/fonts/ (text_font)
- changer l'image d'arrière-plan (text_background)
- changer le nombre maximum de lignes dans une fenêtre (text_max_lines)
- mettre un arrière-plan transparent (text_transparent)
- choisir la couleur du teint transparent (text_tint_blue text_tint_green text_tint_red)
- indenter les pseudos (text_indent)
- colorer les pseudos (text_color_nicks)
- afficher un marqueur à partir des messages non lu (text_show_marker)
- afficher l'heure de chaque messages (stamp_text)
- spécifier le format de l'horodatage (stamp_text_format)
Boîte de saisie
Dans cette boîte de dialogue on peut :
- activer la complétion du pseudo (completion_auto)
- spécifier le suffixe de la complétion du pseudo (completion_suffix)
- utiliser les même police et couleurs de la boîte de texte dans la boîte de saisie (gui_input_style)
- Vérifier l'orthographe a la frappe de chaque mots en les soulignant (gui_input_spell)
Liste des utilisateurs
Dans cette boîte de dialogue on peut :
- modifier l'ordre de classement des utilisateurs dans la liste (gui_ulist_sort)
- afficher le user@host de chaque utilisateur dans la liste (gui_ulist_show_hosts)
- utiliser les même police et couleurs de la boîte de texte dans la liste des utilisateurs (gui_ulist_style)
- activer le redimensionnement manuel de la liste des utilisateurs (gui_ulist_resizable)
- activer la vérification du statut d'away (away_track)
- spécifier le nombre d'utilisateurs maximum dans le canal pour verifier ce statut (away_size_max)
- spécifier la commande a exécuter lorsqu'on double clique sur un pseudo dans la liste (gui_ulist_doubleclick)
Onglets
Dans cette boîte de dialogue on peut :
- ouvrir un onglet spécifique pour les messages du serveur (tab_server)
- ouvrir un onglet spécifique pour les notices du serveur (tab_notices)
- afficher des onglets dans un format plus petit (avec /set tab_small 2 on peut avoir encore plus petit... a tester) (tab_small)
- trier les onglets par ordre alphabétique (tab_sort)
- faire apparaitre les nouvels onglets (tab_new_to_front)
- afficher les onglets sur un nombre de caracéres maximum (tab_trunc)
- modifier la position des onglets (tab_position)
- afficher les canaux dans un onglet ou une fenêtre (tab_chans)
- afficher les pv dans un onglet ou une fenêtre (tab_dialogs)
- afficher les utilitaires dans un onglet ou une fenêtre (tab_utils)
Couleurs
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
- 256 - couleur du premier plan du texte mis en sélection
- 257 - couleur d'arrière-plan du texte mis en sélection
- 258 - couleur du texte en premier plan
- 259 - couleur du texte en arrière-plan
- 260 - couleur de la ligne de marquage des messages non lus
- 261 - couleur indiquant les nouvelles données sur les onglets
- 262 - couleur indiquant les hilights de notre pseudo sur les onglets
- 263 - couleur indiquant les nouveaux messages sur les onglets
- 264 - couleur des pseudos absents dans la liste des utilisateurs
Général
Dans cette boîte de dialogue on peut :
- spécifier la raison du quit (irc_quit_reason)
- spécifier la raison du part (irc_part_reason)
- spécifier la raison d'une absence (away_reason)
- annoncer les messages d'absences (away_show_message)
- afficher une seule fois le message d'absence (away_show_once)
- enlever l'absence automatiquement (away_auto_unmark)
- alerter sur la barre des tâches lorsqu'il y a hilight (input_flash_hilight)
- biper sur un hilight (input_beep_hilight)
- spécifier certain mots a mettre en hilight (irc_extra_hilight)
- spécifier les pseudos a ne pas mettre en hilight (irc_no_hilight)
- biper sur un message pv (input_beep_msg)
- biper sur un message dans un canal (input_beep_chans)
Enregistrement
Dans cette boîte de dialogue on peut :
- activer l'enregistrement des pv (irc_logging)
- spécifier le format des nom de fichiers de la journalisation (irc_logmask)
- insérer la date et l'heure dans les journaux (stamp_log)
- modifier le format de la date et de l'heure dans ces fichiers (stamp_log_format)
Sons
Dans cette boîte de dialogue on peut :
- spécifier le programme de lecture du fichier son (sound_command)
- spécifier le dossier des fichiers sons (sound_dir)
Réglage du réseau
Dans cette boîte de dialogue on peut :
- spécifier l'adresse a écouter si l'on dispose de plusieurs adresses(net_bind_host)
- donner l'adresse du proxy (net_proxy_host)
- donner le login du proxy (net_proxy_user)
- donner le mot de passe du proxy (net_proxy_pass)
- donner le port du proxy (net_proxy_port)
- sélectionner le type du proxy (HTTP, Wingate, Socks4, Socks5) (net_proxy_type)
- activer l'authentification au serveur proxy (net_proxy_auth)
Transferts de fichiers
Dans cette boîte de dialogue on peut :
- accepter automatiquement les transferts de fichiers par dcc (dcc_auto_send)
- spécifier le dossier contenant les fichiers en téléchargement (dcc_dir)
- spécifier le dossier contenant les fichiers complétés (dcc_completed_dir)
- ajouter le pseudo dans les noms des fichiers téléchargés (dcc_save_nick)
- donner l'adresse pour le DCC (dcc_ip)
- donner le numéro de port minimal (dcc_port_first)
- donner le numéro de port maximal (dcc_port_last)
- activer l'obtention de l'adresse ip depuis le serveur (dcc_ip_from_server)
- donner la vitesse d'envoi maximum par fichier (dcc_max_send_cps)
- donner la vitesse de réception maximum par fichier (dcc_max_get_cps)
- donner la vitesse d'envoi maximum pour tout les transferts (dcc_global_max_send_cps)
- donner la vitesse de réception maximum pour tout les transferts (dcc_global_max_get_cps)
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, ...
Menu contextuel de la liste des utilisateurs
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
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 :
Le menu des URLs
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
Ajout de menus sumplémentaires
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"
Les boutons utilisateurs
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
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.
| Action | Description | Données 1 | Données 2 |
| Check for replace | Cette 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. | X | X |
| Next Command | La 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 | X | X |
| Last Command | La 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 | X | X |
| Complete nick/command | Cette 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 | qqch | X |
| Insert in Buffer | La 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 | qqch | X |
| Move front tab right | Cette commande déplace l'onglet de devant d'un cran vers la droite | X | X |
| Move front tab left | Cette commande déplace l'onglet de devant d'un cran vers la gauche | X | X |
| Move tab family right | Cette commande déplace l'ensemble des onglets vers la droite | X | X |
| Move tab family left | Cette commande déplace l'ensemble des onglets vers la gauche | X | X |
| Change Selected Nick | Cette 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 | qqch | X |
| Run Command | L'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 \\ | qqch | X |
| 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 | qqch | qqch |
| Scroll Page | Fait 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. | qqch | X |
| Set Buffer | Met le contenu de Données 1 dans la zone où la séquence de touches a été pressée | qqch | X |
| Push input line into history | Placer la ligne de saisie dans l'historique mais ne pas l'afficher sur le serveur | X | X |
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 :
- version
- auto_save - sauvegarde la configuration automatiquement lorsqu'on quitte xchat
- auto_save_url - sauvegarde automatiquement les urls capturés dans le fichier url.save
- away_timeout - délai de verification de l'absence des contacts (pour griser le pseudonyme)
- completion_amount -
- completion_sort - tri la completion en commençant par le dernier contact qui a parlé
- dcc_auto_chat - accepte automatiquement les dcc chat
- dcc_auto_resume - accepte automatiquement la reprise des transferts de fichiers par dcc
- dcc_blocksize - spécifie la taille d'un bloc de transfert dcc
- dcc_dccserver_port - port du serveur dcc (uniqument sur les versions d'xchat avec dccserver)
- dcc_fast_send - accelere le transfert dcc en ignorant les accusés de réceptions
- dcc_permissions - droits à mettre sur les fichiers reçus
- dcc_remove - supprime le fichier de la liste lorsque le transfert est terminé ou interrompu
- dcc_send_fillspaces - active le remplacement des espaces dans les noms des fichiers reçus par le caractere _
- dcc_stall_timeout - délai maximum de blocage pendant un transfert
- dcc_timeout - délai d'attente de l'acceptation du transfert dcc
- dnsprogram - programme utilisé pour les requêtes DNS
- flood_ctcp_num - nombre de CTCP reçu acceptable pendant flood_ctcp_time
- flood_ctcp_time - temps en secondes pour l'antiflood de CTCP utilisé avec flood_ctcp_num
- flood_msg_num - nombre de messages reçu acceptable pendant flood_msg_time
- flood_msg_time - temps en secondes pour l'antiflood de messages utilisé avec flood_msg_num
- gui_auto_open_chat - active l'ouverture automatique des fenêtres dcc chat
- gui_auto_open_dialog - active l'ouverture automatique des fenêtres de dialogue
- gui_auto_open_recv - active l'ouverture automatique des fenêtres de dcc recv
- gui_auto_open_send - active l'ouverture automatique des fenêtres de dcc send
- gui_dialog_height - hauteur des fenêtres de dialogue
- gui_dialog_left - coordonnée X à partir de la gauche de l'écran des fenêtres de dialogue
- gui_dialog_top - coordonnée Y à partir du haut de l'écran des fenêtres de dialogue
- gui_dialog_width - largeur des fenêtres de dialogue
- gui_join_dialog - affiche une boite de dialogue permettant de joindre un canal
- gui_slist_select - le numéro du serveur a selectionner par défaut en commençant par 0
- gui_ulist_hide - cache la liste des contacts (bouton visible si on rend l'userlist statique)
- gui_ulist_size - largeur par defaut de la liste des contacts
- gui_url_mod - Permet d'ouvrir un lien en cliquant dessus en combinaison avec maj, ctrl, alt, ... (clic droit seulement=0, Maj.=1, Verr.Maj.=2, Ctrl=4, Alt=8)
- gui_usermenu - active le menu personaliseable
- gui_win_height - hauteur en pixel de la fenêtre principale
- gui_win_left - coordonnée X à partir de la gauche de l'écran de la fenêtre principale
- gui_win_save - sauvegarde l'état de la fenêtre
- gui_win_state - l'état de la fenêtre (0 pour agrandit, 1 pour réduit)
- gui_win_top - coordonnée Y à partir du haut de l'écran de la fenêtre principale
- gui_win_width - largeur en pixel de la fenêtre principale
- input_command_char - modifie le prefixe des cmds (ex : le / du /away)
- input_filter_beep - filtre les bips
- input_perc_ascii - interpreter les %nnn en valeur ASCII
- input_perc_color - interpreter %C, %B pour la couleur et le gras, etc...
- irc_auto_rejoin - rejoin automatiquement le canal aprés un kick
- irc_ban_type - définir le type de ban par defaut
- irc_conf_mode - se trouve dans clic droit d'un onglet affiche les join/part
- irc_hide_version - cache ctcp version
- irc_id_ntext - ??? argument 4 pour les personnes identifiés
- irc_id_ytext - ??? argument 4 pour les personnes non identifiés
- irc_invisible - ajoute le mode utilisateur +i pour être invisible au WHO
- irc_join_delay - délai en seconde avant de joindre des canaux mis automatiquement à la connexion
- irc_nick_hilight - pseudonymes à mettre en surbrillance
- irc_raw_modes - affiche +o au lieu de set operator
- irc_servernotice - ajoute le mode utilisateur +s pour recevoir les notices du serveur
- irc_skip_motd - n'affiche pas le motd à la connexion
- irc_wallops - ajoute le mode utilisateur +w pour recevoir les wallops
- irc_who_join - fait un /who #canal des que l'on join #canal
- irc_whois_front - affiche le whois sur l'onglet courant
- net_auto_reconnect - reconnexion automatique au serveur
- net_auto_reconnectonfail - reconnextion automatique au serveur en cas d'echec
- net_ping_timeout - effectue un ping timeout lorsque la réponse d'un ping n'a pas été obtenu avant un certain temps (utile lorsque vous déconnectez et qu'xchat puisse être au courant)
- net_proxy_use - Utiliser proxies pour tout(0), l'irc seulement(1) ou le dcc seulement(2)
- net_reconnect_delay - ajoute un délai avant reconnexion
- net_throttle - controle anti-flood d'xchat sur l'envoi de messages
- notify_timeout - délai maximum de verification des pseudos dans la liste des notifications
- notify_whois_online - effectue un whois a chaque fois qu'un pseudo notifié apparait en ligne
- perl_warnings - affiche les avertissements perl
- tab_icons - afficher des icones lorsque les onglets sont affichés en arbre
- text_max_indent - indentation maximum en pixel en cas d'apparition de pseudo très long
- text_show_sep - ?? affiche la ligne de séparation ??
- text_stripcolor - filtre les couleurs utilisées par mirc
- text_thin_sep - ?? ligne de séparation plus fine ??
- text_wordwrap - ??? couper les mots en 2 lorsqu'on passe à la ligne ???
Les commandes d'origines sur X-Chat
Commandes de privilèges de canaux :
- HOP : HOP <pseudo>, donne le statut chanhalf-op au pseudo (nécessite chanop)
- DEHOP : DEHOP <pseudo>, supprime le statut chanhalf-op d'un pseudo sur le canal courant (nécessite chanop)
- MDEHOP : MDEHOP, fait un deop massif sur tous les chanhalf-ops du canal courant (nécessite chanop)
- OP : OP <pseudo>, donne le statut chanop au pseudo (nécessite chanop)
- DEOP : DEOP <pseudo>, supprime le statut chanop d'un pseudo sur le canal courant (nécessite chanop)
- MOP : MOP, fait un op massif sur tous les utilisateurs du canal courant (nécessite chanop)
- MDEOP : MDEOP, fait un deop massif sur tous les chanops du canal courant (nécessite chanop)
- VOICE : VOICE <pseudo>, donne le statut voice à quelqu'un (nécessite chanop)
- DEVOICE : DEVOICE <pseudo>, supprime le statut voice d'un pseudo sur le canal courant (nécessite chanop)
- KICK : KICK <pseudo>, kicke (met dehors) le pseudo du canal courant (nécessite chanop)
- MKICK : MKICK, fait un kick massif de tout le monde sauf vous dans le canal courant (nécessite chanop)
- KICKBAN : KICKBAN <pseudo>, bannit puis kicke (met dehors) le pseudo du canal courant (nécessite chanop)
- BAN : BAN <masque> [<typeban>], bannit tous ceux qui correspondent au masque dans le canal en cours. S'ils sont dêjà sur le canal ça ne les met pas dehors (kick) (nécessite chanop)
- UNBAN : UNBAN <masque> [<masque>...], débanne le(s) masque(s) fourni(s).
- MODE :
Commandes d'envoi de messages :
- ALLCHAN : ALLCHAN <cmd>, envoie une commande à tous les canaux dans lesquels vous êtes présent
- ALLCHANL : ALLCHANL <cmd>, envoie une commande à tous les canaux dans lesquels vous êtes présent
- ALLSERV : ALLSERV <cmd>, envoie une commande à tous les serveurs sur lesquels vous êtes connecté
- MSG : MSG <pseudo> <message>, envoie un message privé
- ME : ME <action>, envoie l'action dans le canal courant (les actions sont écrites à la 3ème personne, comme /me est content)
- NOTICE : NOTICE <pseudo/canal> <message>, envoie une notification. Les notifications sont un type de message auquel on devrait réagir automatiquement
- SAY : SAY <texte>, envoie un texte à l'objet de la fenêtre courante
- WALLCHAN : WALLCHAN <message>, écrit le message sur tous les canaux
- QUERY : QUERY <pseudo>, ouvre une nouvelle fenêtre de message privé avec quelqu'un
- RECV : RECV <texte>, transmet le texte sous forme brute vers xchat, comme s'il avait été reçu depuis un serveur irc
- QUOTE : QUOTE <texte>, transmet le texte sous forme brute au serveur
- CTCP : CTCP <pseudo> <message>, envoie le message CTCP au pseudo, les messages courants sont VERSION et USERINFO
- NCTCP : NCTCP <pseudo> <message>, Envoie une notice CTCP
- PING : PING <pseudo | canal>, envoie un CTCP ping au pseudo ou au canal
Commandes usuelles :
- PART : PART [<canal>] [<raison>], quitte le canal, par défaut le canal courant
- LIST :
- INVITE : INVITE <pseudo> [<canal>], invite quelqu'un sur un canal, par défaut le canal courant (nécessite chanop)
- TOPIC : TOPIC [<sujet>], définit le sujet si on en fourni un, sinon affiche le sujet actuel
- JOIN : JOIN <canal>, rejoint le canal
- CYCLE : CYCLE, sort du canal courant et revient immédiatemen
- NAMES : NAMES, Liste les pseudos sur le canal courant
- NICK : NICK <pseudonyme>, définit votre pseudo
Commandes de connexions/deconnexions à un serveur :
- QUIT : QUIT [<raison>], déconnecte du serveur courant
- RECONNECT : RECONNECT [-ssl] [<hote>] [<port>] [<motpasse>], Peut être appellé juste avec /RECONNECT pour se reconnecter au serveur courant ou avec /RECONNECT ALL pour se reconnecter à tous les serveurs ouverts
- NEWSERVER : NEWSERVER <nomhote> [<port>]
- SERVCHAN : SERVCHAN [-ssl] <hote> <port> <canal>, se connecte et rejoint un canal
- SERVER : SERVER [-ssl] <hote> [<port>] [<motpasse>], se connecte à un serveur, le port par défaut est 6667 pour les connexions normales, et 994 pour les connexions ssl
- DISCON : DISCON, Se déconnecte du serveur
- AWAY : AWAY [<raison>], vous signale comme absent
- ADDBUTTON : ADDBUTTON <nom> <action>, ajoute un bouton en-dessous de la liste des utilisateurs
- DELBUTTON : DELBUTTON <nom>, supprime un bouton de sous la liste des utilisateurs
- CHANOPT CONFMODE ON|OFF - Toggle conf mode/showing of join and part messages
CHANOPT COLORPASTE ON|OFF - Toggle color paste
CHANOPT BEEP ON|OFF - Toggle beep on message - CHARSET : CHARSET <encodage> modifie l'encodage textuel
- CLEAR : CLEAR, Vide la fenêtre de texte courante
- CLOSE : CLOSE, Ferme l'onglet/fenêtre courant
- COUNTRY : COUNTRY <code|caractère de substitution>, recherche un code de pays, par exemple : au = australie
Commandes DCC :
- DCC :
- DCC GET <nick> - accept an offered file
- DCC SEND [-maxcps=#] <nick> [file] - send a file to someone
- DCC PSEND [-maxcps=#] <nick> [file] - send a file using passive mode
- DCC LIST - show DCC list
- DCC CHAT <nick> - offer DCC CHAT to someone
- DCC PCHAT <nick> - offer DCC CHAT using passive mode
- DCC CLOSE <type> <nick> <file> exemple: /dcc close send johnsmith file.tar.gz
- DCCSERVER : DCCSERVER [+|-|on|off] [port], Enable or disable dcc server on a certain port or reports its status
Commandes utiles pour les scripts :
- LOAD : LOAD [-e] <file>, loads a plugin or script
- UNLOAD : UNLOAD <nom>, décharge un greffon ou un script
- MENU : MENU [-eX] [-k<mod>,<key>] [-pX] [-tX] {ADD|DEL} <path> [command] [unselect command]
- GETINT : GETINT <default> <command> <prompt>
- GETSTR : GETSTR <default> <command> <prompt>
- GUI : GUI [SHOW|HIDE|FOCUS|FLASH|ICONIFY|MENU TOGGLE|COLOR <n>|MSGBOX <text>]
- SETCURSOR : SETCURSOR [-|+]<position>
- SETTAB :
- SETTEXT :
- SPLAY : SPLAY <soundfile> Lit un fichier son du dossier sounds
- USELECT : USELECT [-a] [-s] <nick1> <nick2> etc, highlights nick(s) in channel userlist
Autres commandes :
- DEBUG :
- DNS : DNS <pseudo|hote|ip>, trouve l'adresse IP d'un utilisateur
- ECHO : ECHO <texte>, Affiche un texte en local
- EXEC : EXEC [-o] <commande>, exécute une commande. Si l'option -o est utilisée, la sortie est envoyée sur le canal courant, sinon elle est affichée dans la zone de texte courante
- EXECCONT : EXECCONT, envoie un SIGCONT au processus
- EXECKILL : EXECKILL [-9], tue une exécution en cours dans la session courante. Si -9 est fourni, le processus est tué par SIGKILL
- EXECSTOP : EXECSTOP, envoie un SIGSTOP au processus
- EXECWRITE : EXECWRITE, envoie des données à l'entrée standard du processus
- KILLALL : KILLALL, immediately exit
- FLUSHQ : FLUSHQ, vide la queue d'envoi du serveur courant
- GATE : GATE <hote> [<port>], utilise un hote comme proxy, le port est 23 par défaut
- LAGCHECK : LAGCHECK, force une nouvelle vérification de lag (délai)
- LASTLOG : LASTLOG <chaîne>, recherche une chaîne dans le tampon.
- HELP :
- ID : ID <password>, identifies yourself to nickserv
- IGNORE : IGNORE <masque><types..> <options..>
masque - masque d'hotes à ignorer, par ex.: *!*@*.aol.com
types - types de données à ignorer, un seul ou tous :
PRIV, CHAN, NOTI, CTCP, INVI, ALL
options - NOSAVE, QUIET - UNIGNORE : UNIGNORE <masque> [QUIET]
- NOTIFY : NOTIFY [<pseudo>], liste votre liste de notifications et y ajoute quelqu'un
- SET : SET [-quiet] <variable> [<valeur>] (-quiet = silencieusement)
- URL : URL <url>, ouvrir une URL dans votre navigateur
- USERLIST :
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/.
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.htmlLes scripts en python
http://xchat.org/docs/xchatpython.html.gzLes greffons en C
http://xchat.org/docs/plugin20.htmlLe 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

ascii

banlist
chanview
chanview-tabs.c
chanview-tree.c
chanlist
dccgui.c
---
editlist

---
fe-gtk
fkeys
gtkutil
ignoregui.c
joind.c
maingui
menu
mmx_cmod.S
mmx_cmod.h
notifygui
palette
pixmaps
---
plugingui

---
rawlog
search
---
servlistgui.c

---
setup.c
textgui
urlgrab
userlistgui
xtext