...Table of Contents... 1 Introduction ************** 1.1 A propos de cette documentation =================================== Ceci est la documentation de WeeWM, un gestionnaire de fene^tre pour XFree. Elle est cre'e'e a` partir d'un fichier .texi (format texinfo) disponible avec les sources de WeeWM et dans les paquets disponibles. Nous utilisons ce format dans le but de rendre cette documentation facilement adaptable a` diffe'rents formats de sortie. Actuellement la personne responsable de la documentation est Nicolas "Bounga" C. Vous pouvez le contacter a` l'adresse suivante . N'he'sitez donc pas a` le contacter pour toutes les questions relatives a` la documentation de WeeWM. Vous pouvez e'galement essayer de le joindre sur irc.freenode.net, canal #weewm (Nick: Bounga). Nicolas s'occupe de la version française et anglaise de cette documentation. Participations / propositions : Nous acceptons bien e'videmment les propositions de documentations si celles ci sont bien re'dige'es. En particulier a` propos des sujets non ou trop peu couverts ici. Les traductions sont e'galement les bienvenues, en particulier dans les langues les plus courantes (italien, espagnol, allemand, etc). Envoyez simplement un email a` l'adresse donne'e pre'ce'demment si vous avez des questions sur la manie`re dont vous pourriez aider ou si vous avez de la documentation que vous voudriez nous fournir. 1.2 A propos de WeeWM ===================== 1.2.1 Qu'est ce qu'est WeeWM ? ------------------------------ WeeWM est un gestionnaire de fene^tre rapide et le'ger pour XFree. Tout peut e^tre contro^le' au clavier. Entie`rement parame'trable, il ge`re le dock, le placement intelligent des fene^tres, les bureaux virtuels, et bien d'autres choses encore... 1.2.2 Fonctionnalite's ---------------------- Re'alise'es : * de'corations de fene^tres le'ge`res * placement intelligent des fene^tres * jusqu'a` 256 bureaux virtuels * contrôle total au clavier * pour une touche, une infinite' de commandes associe'es * touches configurables * exe'cutable tre`s le'ger En de'veloppement : * gestion intelligente du dock * relecture a` chaud de la configuration 1.2.3 Options de la ligne de commande ------------------------------------- WeeWM accepte les options suivantes sur la ligne de commande : `weewm' [ -cdfhklmov ] [long-options] `-c, --config' Choisir un autre fichier de configuration (par de'faut : $HOME/.weewm/config.rc) `-d, --display' Choisir un autre <> pour X. `-f, --font' Choisir une fonte X (pour les messages, comme le redimensionnement des fene^tres). `-h, --help' Afficher l'aide et quitter. `-k, --keys' Choisir un fichier de configuration des touches (par de'faut : $HOME/.weewm/keys.rc) `-l, --licence' Afficher la licence WeeWM et quitter. `-m, --list-commands' Afficher les commandes de WeeWM (pour keys.rc) et quitter. `-o, --list-options' Afficher les options WeeWM (pour config.rc) et quitter. `-v, --version' Afficher la version de WeeWM et quitter. 1.2.4 Poser des questions et trouver du support ----------------------------------------------- Bien que WeeWM soit facile a` utiliser et configurer, il est possible que des questions ou des proble`mes subsistent. Tout d'abord, avant de poser votre question sur les mailing lists ou sur le canal IRC de WeeWM, pensez a` lire la FAQ disponible avec les sources. 2 Installation ************** De nombreux paquets binaires de WeeWM sont ou seront biento^t disponibles pour les diffe'rentes distributions les plus courantes. Ces paquets vous permettront une installation simplifie'e de WeeWM. Cependant, vous pourriez avoir besoin pour une raison ou pour une autre de compiler les sources. Par exemple, la version le plus re'cente de WeeWM peut ne pas e^tre disponible en paquet binaire. Vous pouvez encore vouloir compiler WeeWM avec certaines options qui ont e'te's laisse'es de co^te' dans les paquets binaires. Cette partie de la documentation permettra donc aux moins aguerris d'entre vous, de pouvoir tout de me^me compiler et installer le gestionnaire de fene^tre WeeWM. 2.1 Pre'-requis =============== Vous devez disposer de ces programmes pour faire fonctionner WeeWM sur votre syste`me : * XFree, version 6 ou plus re'cente (X11R6) 2.2 Installation depuis les sources =================================== 2.2.1 Obtenir le code source ---------------------------- Vous pouvez te'le'charger un paquet avec le code source ou bien re'cupe'rer la base CVS. * Installation d'un paquet source (recommande') Te'le'chargez le paquet des sources sur l'un de ces deux sites : - `http://www.weewm.org/download.php' - `http://savannah.nongnu.org/files/?group=weewm' * Re'cupe'ration des sources du CVS (utilisateurs avance's seulement) ATTENTION ! Les sources du CVS peuvent e^tre instables et ne pas compiler ! Cre'ez un re'pertoire vide "weewm" ou` vous le souhaitez, allez dans ce re'pertoire et tapez ces commandes : `cvs -d:pserver:anoncvs@subversions.gnu.org:/cvsroot/weewm login' `cvs -z3 -d:pserver:anoncvs@subversions.gnu.org:/cvsroot/weewm co weewm' 2.2.2 Extraction et compilation ------------------------------- Pour extraire l'archive, selon le fichier que vous avez re'cupe're', tapez l'une de ces 2 commandes : `tar xvzf weewm-x.y.z.tar.gz' `tar xvjf weewm-x.y.z.tar.bz2' ou` x.y.z est la version (par exemple 0.1.2) Allez ensuite dans le re'pertoire contenant les sources et tapez cette commande : `make' Le code est ainsi compile'. Puis, en tant qu'utilisateur root : `make install' ce qui installera les fichiers dans les diffe'rents re'pertoires. 2.3 Autres paquets ================== 2.3.1 Paquet Debian ------------------- Tapez cette commande sous l'utilisateur root : `dpkg -i weewm_x.y.z_i386.deb' Vous pouvez e'galement cre'er vous me^me votre paquet .deb a` partir des sources. Il vous suffit pour cela, une fois dans le re'pertoire des sources, de taper la commande suivante : `debuild -rfakeroot -sd' un fichier weewm_x.y.z_i386.deb sera alors disponible dans le re'pertoire parent. Un de'po^t pour apt est e'galement mis a` votre disposition. Pour en profiter, il vous faut ajouter dans votre fichier /etc/apt/sources.list la ligne suivante : deb http://apt.bounga.ath.cx/ unstable main Vous pourrez ensuite installer WeeWM en tapant (en tant que root) les commandes suivantes : `apt-get update' `apt-get install weewm' Gra^ce a` cette me'thode les mises a` jour s'en trouveront fortement simplifie'es. En effet, lorsque une nouvelle version sera mise a` disposition un simple : `apt-get update' `apt-get upgrade' vous permettra de passer a` la nouvelle version. 2.3.2 Paquet Mandrake/Redhat ---------------------------- Tapez cette commande sous l'utilisateur root : `rpm -i weewm_x.y.z-i386.rpm' 2.3.3 Paquet BSD ---------------- *** Non de'veloppe' ! *** 2.3.4 Paquet Gentoo ------------------- *** Non de'veloppe' ! *** 2.3.5 Paquet Sorcerer --------------------- *** Non de'veloppe' ! *** 2.3.6 Paquet Slackware ---------------------- *** Non de'veloppe' ! *** 2.4 Lancer WeeWM ================ Maintenant que l'installation s'est de'roule'e avec succe's, il faut lancer WeeWM. Il y a ge'neralement deux manie`res de de'marrer X (et donc WeeWM). La voie traditionnelle est d'utiliser la commande startx. L'autre manie`re est d'utiliser un gestionnaire de login graphique (tels que gdm, xdm ou kdm). Si X est demarre' par la voie traditionnelle (via startx), le fichier important est appele' .xinitrc et est pre'sent dans votre re'pertoire personnel. Dans le cas ou` vous de'marrez via un gestionnaire de login graphique, le fichier est .Xsession et est e'galement pre'sent dans votre re'pertoire personnel. La prochaine e'tape est de trouver l'exe'cutable pour WeeWM. Pour la plupart des personnes, il est situe' dans /usr/bin/weewm. De'sormais vous devez e'diter (ou cre'er) le fichier mentionne' ci-dessus. Ajoutez seulement la ligne suivante au bas de ce fichier : `exec /usr/bin/weewm' Modifiez le /usr/bin/weewm pour le lieu ou` est votre exe'cutable WeeWM. Si vous ne le trouvez pas, un simple `type weewm' vous donnera son emplacement exact. Une fois cette e'tape termine'e vous pouvez sauvez le fichier en cours d'e'dition et fermer votre e'diteur favori. Si vous lancez XFree a` l'aide de la commande `startx', il vous faut taper la commande suivante, pour rendre e'xecutable votre fichier frai^chement e'dite' : `chmod 700 ~/.xinitrc' Dans le cas d'un login graphique cette manipulation n'est pas ne'cessaire. Vous pouvez maintenant tenter de lancer WeeWM en tapant : `startx' 3 Configuration *************** 3.1 Options ge'ne'rales ======================= Les options ge'ne'rales sont stocke'es dans le fichier config.rc (par de'faut : $HOME/.weewm/config.rc). Vous pouvez donc modifier a` souhait les valeurs des options disponibles dans ce fichier pour faire correspondre WeeWM a` vos attentes. De'tail des options : `border' largeur de la bordure des fene^tres (en pixels) min: 1, max: 3, de'faut: 1 `space' espace entre la fene^tre et sa bordure (en pixels) min: 0, max: 5, de'faut: 1 `desktops' nombre de bureaux disponibles min: 1, max: 256, de'faut: 5 `minwidth' largeur minimale d'une fene^tre min: 1, max: 4096, de'faut: 15 `minheight' hauteur minimale d'une fene^tre min: 1, max: 4096, de'faut: 15 `move_offset' incre'ment de de'placement des fene^tres (en pixels) min: 1, max: 256, de'faut: 16 `color.border.active' couleur de la bordure de la fene^tre active de'faut: 'green' `color.border.inactive' couleur de la bordure des fene^tres inactives de'faut: 'black' `color.sticky' couleur de la bordure pour les fene^tres colle'es de'faut: 'blue' `info.width' largeur de la fene^tre d'information - NON DEVELOPPE ! min: 10, max: 4096, de'faut: 100 `info.height' hauteur de la fene^tre d'information - NON DEVELOPPE ! min: 10, max: 4096, de'faut: 50 `dock.use' utilisation du dock (1=oui, 0=pas de dock) min: 0, max: 1, de'faut: 1 `dock.size' taille du dock (en pixels) min: 8, max: 512, de'faut: 64 `dock.position' position du dock (1=en haut, 2=a` gauche, 3=a` droite, 4=en bas) min: 1, max: 4, de'faut: 3 `dock.align' alignement du dock (0=haut/gauche, 1=centre', 2=bas/droite) min: 0, max: 2, de'faut: 0 3.1.1 Un exemple de fichier config.rc ------------------------------------- Voici un extrait du fichier d'exemple livre' avec les paquets de WeeWM. Vous pouvez le trouver dans son inte'gralite' dans le re'pertoire /usr/share/doc/weewm/examples/. ` border 1 space 1 desktops 5 minwidth 15 minheight 15 move_offset 16 color.border.active green color.border.inactive black color.sticky blue info.width 100 info.height 50 dock.use 1 dock.size 64 dock.position 2 dock.align 0 ' 3.2 Configuration des touches ============================= La configuration des touches est stocke'e dans le fichier keys.rc (par de'faut: $HOME/.weewm/keys.rc). Ce fichier va vous permettre de choisir quelle combinaison de touches lancera telle ou telle commande. De'tail des touches : Tous les noms de touches peuvent e^tre trouve's dans le fichier /usr/include/X11/keysymdef.h (noms de touches sans le pre'fixe "XK_") Les modificateurs sont : - "Mod1": touche alt - "Mod4": touche windows - "Control": touche control - "Shift": touche shift Voici la liste des commandes internes de WeeWM pour les associations de touches : `next_win' active la fene^tre suivante `prev_win' active la fene^tre pre'ce'dente `pos_top_left' de'place la fene^tre dans le coin supe'rieur gauche `pos_top' de'place la fene^tre sur le bord supe'rieur de l'e'cran `pos_top_right' de'place la fene^tre dans le coin supe'rieur droit `pos_left' de'place la fene^tre sur le bord gauche de l'e'cran `pos_center' centre la fene^tre sur l'e'cran `pos_right' de'place la fene^tre sur le bord droit de l'e'cran `pos_bottom_left' de'place la fene^tre dans le coin infe'rieur gauche `pos_bottom' de'place la fene^tre sur le bord infe'rieur de l'e'cran `pos_bottom_right' de'place la fene^tre dans le coin infe'rieur droit `move_win_left' de'place la fene^tre horizontalement (-X pixels) `move_win_right' de'place la fene^tre horizontalement (+X pixels) `move_win_up' de'place la fene^tre verticalement (-X pixels) `move_win_down' de'place la fene^tre verticalement (+X pixels) `prev_desktop' affiche le bureau pre'ce'dent `next_desktop' affiche le bureau suivant `desktop[1-256]' affiche le bureau nume'ro N `send_prev_desktop' envoie la fene^tre sur le bureau pre'ce'dent `send_next_desktop' envoie la fene^tre sur le bureau suivant `win_max_horizontal' maximise la fene^tre horizontalement `win_max_vertical' maximise la fene^tre verticalement `win_max' maximise la fene^tre `win_fix' colle/de'colle le fene^tre `win_memo_pos' me'morise la position et la taille de la fene^tre `win_memo_desktop' me'morise le bureau de la fene^tre `win_forget_pos' oublie la position me'morise'e de la fene^tre `win_forget_desktop' oublie le bureau me'morise' de la fene^tre `win_kill' ferme la fene^tre active `reconfigure' recharge la configuration - NON DEVELOPPE ! `quit' quitte WeeWM 3.2.1 Un exemple de fichier key.rc ---------------------------------- Voici un extrait du fichier d'exemple livre' avec les paquets de WeeWM. Vous pouvez le trouver dans son inte'gralite' dans le re'pertoire /usr/share/doc/weewm/examples/. ` Mod1|Control Left prev_desktop Mod1|Control Right next_desktop Mod4 Left send_prev_desktop Mod4 Right send_next_desktop Mod4 F1 desktop_1 Mod4 F2 desktop_2 Mod4|Shift Up pos_top Mod4|Shift Down pos_bottom Mod4|Shift Left pos_left Mod4|Shift Right pos_right Mod1|Control Escape quit Mod4 Return run aterm 0 7913 xterm Mod4 c run1 xclock 1 0 xclock ' Dans cet exemple, on a : `Mod1|Control Left prev_desktop' donc utiliser les modificateurs Mod1 + Control (Mod1|Control) + la touche fle'che gauche (Left) effectuera l'action d'aller sur le bureau pre'ce'dent (prev_desktop). `Mod4 Return run aterm 0 7913 xterm' va lancer (parame`tre "run") un terminal aterm a` une position donne'e. Si vous cherchez le nom d'une touche, vous pouvez utilisez `xev' pour le trouver. Par exemple, vous de'sirez connai^tre le nom de la touche "fle'che droite". Lancer donc xev, placez vous dans le fene^tre qui apparaît et presser la touche "fle'che droite". Dans votre terminal apparai^tra quelque chose ressemblant a` : ` KeyPress event, serial 24, synthetic NO, window 0xa00001, root 0x3e, subw 0x0, time 11617881, (122,71), root:(126,88), state 0x0, keycode 102 (keysym 0xff53, Right), same_screen YES, XLookupString gives 0 characters: "" ' La partie qui nous inte'resse est : `keycode 102 (keysym 0xff53, Right)' ou` l'on peut voir le mot-clef "Right". Notre touche s'appelle donc "Right". 3.3 Fond d'e'crans ================== Tout d'abord, il faut savoir que les fond d'e'crans ne sont pas ge're's directement par WeeWM mais par un programme externe. Nous vous pre'senterons ici les plus connus et nous vous expliquerons comment s'en servir de façon basique. xsetroot : xsetroot est le logiciel de fond d'e'crans livre' avec XFree. Il peut mettre en place des fonds d'e'crans seulement s'ils sont simples, comme une couleur unie. Il peut aussi utiliser une image bitmap. Pour plus d'information sur ce logiciel reportez vous a` son manuel (`man xsetroot'). Esetroot : Esetroot est quant a` lui plus destine' a` l'affichage d'image et a` la gestion de la transparence. En effet, si vous chargez votre image de fond d'e'cran a` l'aide de Esetroot et que vous utilisez la console Eterm, vous pourrez alors activer la transparence de cette dernie`re. Pour afficher un fond d'e'cran sur toute la totalite' de votre bureau, il vous suffit de taper `Esetroot -f votre_fichier.png'. Pour automatiser le chargement de votre fond d'e'cran pre'fe're' au chargement de WeeWM, vous pouvez par exemple (si vous n'utilisez pas de gestionnaire de login graphique) ajouter cette commande : `Esetroot -f /chemin/vers/mon/image.png' a` la fin de votre fichier ~/.xinitrc. 3.4 .xinitrc / .xsession ======================== 3.4.1 L'utilite' de .xinitrc ---------------------------- Il faut savoir qu'un gestionnaire de fene^tres n'est qu'une application pour X tout comme mozilla, gimp ou aterm. On peut, au premier abord, penser que X lance un gestionnaire de fene^tres et que c'est ce dernier qui va se charger d'exe'cuter les programmes. Pourtant, en re'alite', les choses ne se passent pas comme ça. C'est bien XFree qui lance les applications et le gestionnaire de fene^tres, comme son nom l'indique, ne fait que de s'occuper de la gestion des fene^tres. Vous pouvez par exemple lancer un gestionnaire de fene^tre, lancer vos applications puis tuer le gestionnaire de fene^tres et en lancer un autre et continuer a` travailler. Lorsque X est lance', il lit votre script .xinitrc ou .xsession. Une fois que l'ensemble des commandes de ce fichier ont finit leur e'xecution, X se termine. Et ce n'est pas le fait de sortir de son gestionnaire de fene^tre qui fait que X se termine comme on pourrait le penser. 3.4.2 Syntaxe du script ----------------------- Pour comprendre la suite, vous devez avoir quelques connaissances de base sur le shell. Par exemple, quand vous tapez une commande dans un shell, vous ne pouvez pas faire autre chose dans ce shell jusqu'a` ce que la commande soit finie. Les fichiers de script (et donc .xinitrc ou .xsession) se comportent de la me^me façon. Il y a e'videmment une me'thode qui permet de lancer une commande dans un shell et de reprendre tout de suite la main. Cette me'thode va vous permettre de pouvoir lancer des programmes que vous voulez automatiquement voir s'e'xecuter au de'marrage de X. Ces applications doivent e^tre misent en tâches de fond. On peut faire cela en ajoutant un "&" a` la fin de la ligne de commande. Ainsi, si vous voulez que xclock s'exe'cute a` chaque lancement de XFree, ajoutez cette ligne a` votre .xinitrc : `xclock &' Une fois toutes les commandes a` lancer automatiquement ajoute'es, vous pouvez passer au lancement du gestionnaire de fene^tre. Pour cela, nous allons utiliser la commande `exec'. Un exemple de .xinitrc pourrait e^tre : ` # on lance quelques applications xmms & gkrellm -w & idesk & # puis on lance notre gestionnaire de fene^tres exec weewm ' 4 Debuggage *********** 4.1 Informations ge'ne'rales ============================ Le de'buggage peut paraître une tâche re'serve'e aux de'veloppeur au premier abord mais vous pouvez facilement en apprendre les bases. Deux adresses utiles pour apprendre a` re'diger un bon rapport de bug sont les suivantes : `http://www.mozilla.org/quality/bug-writing-guidelines.html' et `http://www.chiark.greenend.org.uk/~sgtatham/bugs.html'. Ces documents n'existent malheureusement pas en français a` notre connaissance et ce sont les seuls vraiment bons que nous connaissons. 4.2 Informations a` spe'cifier ============================== Les informations que vous devez absolument nous transmettre lorsque vous nous faîtes un rapport de bug sont principalement : - Votre OS / distribution et sa version. - La version de WeeWM, si il s'agit d'une CVS (ou d'un tarball de développement) alors de quel jour ? - Quand cela se produit t il ? Avez vous fait quelque chose ? Pouvez vous le reproduire ? - Vos re'glages. Ils peuvent e^tre trouve's dans ~/.weewm/ 4.3 Et les core-dumps ? ======================= Si lors de l'utilisation de WeeWM survient un crash et que vous obtenez un core-dump, nous vous conseillons de venir sur le canal #weewm sur le serveur irc.freenode.net et de dire a` l'un des ops pre'sent que vous avez un coredump. Il vous demandera tre`s certainement un certain nombre d'informations. Pour pouvoir obtenir des informations inte'ressantes a` partir des core-dumps, vous devrez posse'der une version de WeeWM compile'e avec les options ade'quates ce qui n'est pas le cas des versions de "release" propose'es sur le site. Il vous faudra donc compiler vous me^me WeeWM. 4.3.1 Recompilez WeeWM ---------------------- Pour que WeeWM soit compile' avec les possibilite's de de'buggage, il vous faudra re'cupe'rer les sources de WeeWM. Lorsque vous voudrez lancer le "`make'", pensez a` ajoutez les options suivantes : `$ OPTIONS=-Wall -W -pedantic -pipe -O2 -g3 make' Une fois la compilation termine'e, dans votre shell tapez : `$ ulimit -c unlimited' ce qui vous permettra d'obtenir des core-dumps de taille non limite'e. De'marrez maintenant X et commençons le de'buggage. Reproduisez l'action qui a fait crasher WeeWM la dernie`re fois afin d'obtenir le core dump. Puis de'marrons le de'buggage : `$ gdb weewm core' Vous taperez ensuite cette commande dans gdb : `(gdb) where' De nombreux messages devraient s'afficher. Les de'veloppeurs de WeeWM seront inte'resse's par tous les messages commençant par un #. Une fois tout cela re'cupe're' vous pouvez envoyer un e-mail de'crivant la manipulation qui plante WeeWM, les messages re'cupe're's pre'ce'demment ainsi que vos fichiers de configuration disponibles dans ~/.weewm/. Ne supprimez pas le fichier core et le re'pertoire des sources imme'diatement apre`s. Les de'veloppeurs pourraient vous demander d'autres de'tails et vous auriez donc encore besoin de ces fichiers. N'envoyez aucun fichiers aux de'veloppeurs sans avoir d'abord expose' votre proble`me soit sur le canal IRC, soit par messages instantane'es (AIM, ICQ, Jabber) a` l'un des de'veloppeurs. Le proble`me pourrait e^tre spe'cifique a` votre syste`me, et il serait probablement inutile aux de'veloppeurs d'avoir le fichier core qui est en ge'ne'ral assez volumineux. 4.4 Reporter un bug =================== Avant de reporter un bug, ve'rifiez si le proble`me est de'ja` connu (en regardant le fichier BUGS dans le dernier paquet source ou le CVS). Si vous avez de'couvert un nouveau bug, merci de le soumettre sur cette page : `http://savannah.nongnu.org/bugs/?func=addbug&group=weewm' 5 Auteurs / Support ******************* 5.1 Auteurs =========== WeeWM est e'crit par : * FlashCode: - e-mail: flashcode AT flashtux DOT org - web: `http://www.weewm.org' - irc: serveur: irc.freenode.net, canal: #weewm - jabber: flashcode@jabber.org - icq: 160677660 - aim: FlashCode AIM - yahoo: FlashCode_Y * Xahlexx: - e-mail: xahlexx AT weeland DOT org - web: `http://www.weeland.org' - irc: serveur: irc.freenode.net, canal: #weewm * Bounga: - e-mail: bounga AT altern DOT org - web: `http://bounga.ath.cx' - irc: serveur: irc.freenode.net, canal: #weewm - jabber: Bounga@jabber.org - icq: 178297842 5.2 Obtenir de l'aide ===================== Aide via IRC : - serveur: irc.freenode.net - canal: #weewm Forum WeeWM : `http://forums.flashtux.org' Aide via la liste de diffusion : Vous pouvez souscrire et utiliser la liste de diffusion des utilisateurs pour obtenir de l'aide : - pour souscrire : `http://mail.nongnu.org/mailman/listinfo/weewm-support' - pour envoyer un mail a' toutes les personnes de la liste : envoyez a` Ou vous pouvez contacter les de'veloppeurs, *Note Auteurs::.