Ceci est la documentation de WeeWM, un gestionnaire de fenêtre pour XFree. Elle est créée à 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 à différents formats de sortie.
Actuellement la personne responsable de la documentation est Nicolas "Bounga" C. Vous pouvez le contacter à l'adresse suivante bounga@altern.org. N'hésitez donc pas à le contacter pour toutes les questions relatives à la documentation de WeeWM. Vous pouvez é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 évidemment les propositions de documentations si celles ci sont bien rédigées. En particulier à propos des sujets non ou trop peu couverts ici. Les traductions sont également les bienvenues, en particulier dans les langues les plus courantes (italien, espagnol, allemand, etc). Envoyez simplement un email à l'adresse donnée précédemment si vous avez des questions sur la manière dont vous pourriez aider ou si vous avez de la documentation que vous voudriez nous fournir.
WeeWM est un gestionnaire de fenêtre rapide et léger pour XFree.
Tout peut être contrôlé au clavier. Entièrement paramétrable, il
gère le dock, le placement intelligent des fenêtres, les bureaux virtuels,
et bien d'autres choses encore...
Réalisées :
En développement :
WeeWM accepte les options suivantes sur la ligne de commande :
weewm
[ -cdfhklmov ] [long-options]
-c, --config
-d, --display
-f, --font
-h, --help
-k, --keys
-l, --licence
-m, --list-commands
-o, --list-options
-v, --version
Bien que WeeWM soit facile à utiliser et configurer, il est possible que des questions ou des problèmes subsistent. Tout d'abord, avant de poser votre question sur les mailing lists ou sur le canal IRC de WeeWM, pensez à lire la FAQ disponible avec les sources.
De nombreux paquets binaires de WeeWM sont ou seront bientôt disponibles pour les différentes distributions les plus courantes. Ces paquets vous permettront une installation simplifié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 récente de WeeWM peut ne pas être disponible en paquet binaire. Vous pouvez encore vouloir compiler WeeWM avec certaines options qui ont étés laissées de côté dans les paquets binaires.
Cette partie de la documentation permettra donc aux moins aguerris d'entre vous, de pouvoir tout de même compiler et installer le gestionnaire de fenêtre WeeWM.
Vous devez disposer de ces programmes pour faire fonctionner WeeWM sur votre système :
Vous pouvez télécharger un paquet avec le code source ou bien récupérer la base CVS.
Téléchargez le paquet des sources sur l'un de ces deux sites :
ATTENTION ! Les sources du CVS peuvent être instables et ne pas compiler !
Créez un répertoire vide "weewm" où vous le souhaitez, allez dans ce ré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
Pour extraire l'archive, selon le fichier que vous avez récupéré, tapez l'une de ces 2 commandes :
tar xvzf weewm-x.y.z.tar.gz
tar xvjf weewm-x.y.z.tar.bz2
où x.y.z est la version (par exemple 0.1.2)
Allez ensuite dans le répertoire contenant les sources et tapez cette commande :
make
Le code est ainsi compilé.
Puis, en tant qu'utilisateur root :
make install
ce qui installera les fichiers dans les différents répertoires.
Tapez cette commande sous l'utilisateur root :
dpkg -i weewm_x.y.z_i386.deb
Vous pouvez également créer vous même votre paquet .deb à
partir des sources. Il vous suffit pour cela, une fois dans le
répertoire des sources, de taper la commande suivante :
debuild -rfakeroot -sd
un fichier weewm_x.y.z_i386.deb sera alors disponible dans le
répertoire parent.
Un dépôt pour apt est également mis à 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
Grâce à cette méthode les mises à jour s'en trouveront
fortement simplifiées. En effet, lorsque une nouvelle version sera
mise à disposition un simple :
apt-get update
apt-get upgrade
vous permettra de passer à la nouvelle version.
Tapez cette commande sous l'utilisateur root :
rpm -i weewm_x.y.z-i386.rpm
*** Non développé ! ***
*** Non développé ! ***
*** Non développé ! ***
*** Non développé ! ***
Maintenant que l'installation s'est déroulée avec succés, il faut lancer WeeWM.
Il y a géneralement deux manières de démarrer X (et donc WeeWM). La voie traditionnelle est d'utiliser la commande startx. L'autre manière est d'utiliser un gestionnaire de login graphique (tels que gdm, xdm ou kdm).
Si X est demarré par la voie traditionnelle (via startx), le fichier important est appelé .xinitrc et est présent dans votre répertoire personnel. Dans le cas où vous démarrez via un gestionnaire de login graphique, le fichier est .Xsession et est également présent dans votre répertoire personnel.
La prochaine étape est de trouver l'exécutable pour WeeWM. Pour la
plupart des personnes, il est situé dans /usr/bin/weewm. Désormais
vous devez éditer (ou créer) le fichier mentionné ci-dessus. Ajoutez
seulement la ligne suivante au bas de ce fichier :
exec /usr/bin/weewm
Modifiez le /usr/bin/weewm pour le lieu où est votre exécutable WeeWM. Si vous ne le trouvez pas, un simple type weewm vous donnera son emplacement exact. Une fois cette étape terminée vous pouvez sauvez le fichier en cours d'édition et fermer votre éditeur favori.
Si vous lancez XFree à l'aide de la commande startx, il vous
faut taper la commande suivante, pour rendre éxecutable votre fichier
fraîchement édité :
chmod 700 ~/.xinitrc
Dans le cas d'un login graphique cette manipulation n'est pas nécessaire.
Vous pouvez maintenant tenter de lancer WeeWM en tapant :
startx
Les options générales sont stockées dans le fichier config.rc
(par défaut : $HOME/.weewm/config.rc).
Vous pouvez donc modifier à souhait les valeurs des options
disponibles dans ce fichier pour faire correspondre WeeWM à vos attentes.
Détail des options :
border
space
desktops
minwidth
minheight
move_offset
color.border.active
color.border.inactive
color.sticky
info.width
info.height
dock.use
dock.size
dock.position
dock.align
Voici un extrait du fichier d'exemple livré avec les paquets de WeeWM. Vous pouvez le trouver dans son intégralité dans le ré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
La configuration des touches est stockée dans le fichier keys.rc (par défaut: $HOME/.weewm/keys.rc). Ce fichier va vous permettre de choisir quelle combinaison de touches lancera telle ou telle commande.
Détail des touches :
Tous les noms de touches peuvent être trouvés dans le fichier
/usr/include/X11/keysymdef.h (noms de touches sans le pré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
prev_win
pos_top_left
pos_top
pos_top_right
pos_left
pos_center
pos_right
pos_bottom_left
pos_bottom
pos_bottom_right
move_win_left
move_win_right
move_win_up
move_win_down
prev_desktop
next_desktop
desktop[1-256]
send_prev_desktop
send_next_desktop
win_max_horizontal
win_max_vertical
win_max
win_fix
win_memo_pos
win_memo_desktop
win_forget_pos
win_forget_desktop
win_kill
reconfigure
quit
Voici un extrait du fichier d'exemple livré avec les paquets de WeeWM. Vous pouvez le trouver dans son intégralité dans le ré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 fléche gauche (Left) effectuera
l'action d'aller sur le bureau précédent (prev_desktop).
Mod4 Return run aterm 0 7913 xterm
va lancer (paramètre "run") un terminal aterm à une position donnée.
Si vous cherchez le nom d'une touche, vous pouvez utilisez xev pour le trouver. Par exemple, vous désirez connaître le nom de la touche "fléche droite". Lancer donc xev, placez vous dans le fenêtre qui apparaît et presser la touche "fléche droite". Dans votre terminal apparaîtra quelque chose ressemblant à :
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 intéresse est : keycode 102 (keysym 0xff53, Right) où l'on peut voir le mot-clef "Right". Notre touche s'appelle donc "Right".
Tout d'abord, il faut savoir que les fond d'écrans ne sont pas gérés directement par WeeWM mais par un programme externe. Nous vous pré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'écrans livré avec XFree. Il peut
mettre en place des fonds d'é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 à son manuel
(man xsetroot).
Esetroot :
Esetroot est quant à lui plus destiné à l'affichage d'image et à la
gestion de la transparence. En effet, si vous chargez votre image de
fond d'écran à l'aide de Esetroot et que vous utilisez la console
Eterm, vous pourrez alors activer la transparence de cette
dernière. Pour afficher un fond d'écran sur toute la totalité de votre
bureau, il vous suffit de taper Esetroot -f votre_fichier.png.
Pour automatiser le chargement de votre fond d'écran préféré 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 à la fin de votre fichier ~/.xinitrc.
Il faut savoir qu'un gestionnaire de fenê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 fenêtres et que c'est ce dernier qui va se charger d'exécuter les programmes. Pourtant, en réalité, les choses ne se passent pas comme ça. C'est bien XFree qui lance les applications et le gestionnaire de fenêtres, comme son nom l'indique, ne fait que de s'occuper de la gestion des fenêtres. Vous pouvez par exemple lancer un gestionnaire de fenêtre, lancer vos applications puis tuer le gestionnaire de fenêtres et en lancer un autre et continuer à travailler.
Lorsque X est lancé, il lit votre script .xinitrc ou .xsession. Une fois que l'ensemble des commandes de ce fichier ont finit leur éxecution, X se termine. Et ce n'est pas le fait de sortir de son gestionnaire de fenêtre qui fait que X se termine comme on pourrait le penser.
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'à ce que la commande soit finie. Les fichiers de script (et donc .xinitrc ou .xsession) se comportent de la même façon.
Il y a évidemment une méthode qui permet de lancer une commande dans un shell et de reprendre tout de suite la main. Cette méthode va vous permettre de pouvoir lancer des programmes que vous voulez automatiquement voir s'éxecuter au démarrage de X. Ces applications doivent être misent en tâches de fond. On peut faire cela en ajoutant un "&" à la fin de la ligne de commande. Ainsi, si vous voulez que xclock s'exécute à chaque lancement de XFree, ajoutez cette ligne à votre .xinitrc :
xclock &
Une fois toutes les commandes à lancer automatiquement ajoutées, vous pouvez passer au lancement du gestionnaire de fenêtre. Pour cela, nous allons utiliser la commande exec.
Un exemple de .xinitrc pourrait être :
# on lance quelques applications
xmms &
gkrellm -w &
idesk &
# puis on lance notre gestionnaire de fenêtres
exec weewm
Le débuggage peut paraître une tâche réservée aux développeur au premier abord mais vous pouvez facilement en apprendre les bases. Deux adresses utiles pour apprendre à ré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 à notre connaissance et ce sont les seuls vraiment bons que nous connaissons.
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 réglages. Ils peuvent être trouvés dans ~/.weewm/
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 à l'un des ops présent que vous avez un coredump. Il vous demandera très certainement un certain nombre d'informations.
Pour pouvoir obtenir des informations intéressantes à partir des core-dumps, vous devrez posséder une version de WeeWM compilée avec les options adéquates ce qui n'est pas le cas des versions de "release" proposées sur le site. Il vous faudra donc compiler vous même WeeWM.
Pour que WeeWM soit compilé avec les possibilités de débuggage, il vous faudra récupérer les sources de WeeWM. Lorsque vous voudrez lancer le "make", pensez à ajoutez les options suivantes :
$ OPTIONS=-Wall -W -pedantic -pipe -O2 -g3 make
Une fois la compilation terminée, dans votre shell tapez :
$ ulimit -c unlimited
ce qui vous permettra d'obtenir des core-dumps de taille non limitée.
Démarrez maintenant X et commençons le débuggage. Reproduisez l'action qui a fait crasher WeeWM la dernière fois afin d'obtenir le core dump. Puis démarrons le débuggage :
$ gdb weewm core
Vous taperez ensuite cette commande dans gdb :
(gdb) where
De nombreux messages devraient s'afficher. Les développeurs de WeeWM seront intéressés par tous les messages commençant par un #.
Une fois tout cela récupéré vous pouvez envoyer un e-mail décrivant la manipulation qui plante WeeWM, les messages récupérés précédemment ainsi que vos fichiers de configuration disponibles dans ~/.weewm/.
Ne supprimez pas le fichier core et le répertoire des sources immédiatement après. Les développeurs pourraient vous demander d'autres détails et vous auriez donc encore besoin de ces fichiers. N'envoyez aucun fichiers aux développeurs sans avoir d'abord exposé votre problème soit sur le canal IRC, soit par messages instantanées (AIM, ICQ, Jabber) à l'un des développeurs. Le problème pourrait être spécifique à votre système, et il serait probablement inutile aux développeurs d'avoir le fichier core qui est en général assez volumineux.
Avant de reporter un bug, vérifiez si le problème est déjà connu (en regardant le fichier BUGS dans le dernier paquet source ou le CVS).
Si vous avez découvert un nouveau bug, merci de le soumettre sur cette page :
http://savannah.nongnu.org/bugs/?func=addbug&group=weewm
WeeWM est écrit par :
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 á toutes les personnes de la liste : envoyez à weewm-support@nongnu.org
Ou vous pouvez contacter les développeurs, Voir Auteurs.