WeeWM - Wee Enhanced Environment

Table des matières


Noeud:Top, Noeud « Next »:, Noeud « Previous »:(dir), Noeud « Up »:(dir)


Noeud:Introduction, Noeud « Next »:, Noeud « Previous »:Top, Noeud « Up »:Top

1 Introduction


Noeud:A propos de cette documentation, Noeud « Up »:Introduction

1.1 A propos de cette documentation

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.


Noeud:A propos de WeeWM, Noeud « Up »:Introduction

1.2 A propos de WeeWM

1.2.1 Qu'est ce qu'est WeeWM ?

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...

1.2.2 Fonctionnalités

Réalisées :

En développement :

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 défaut : $HOME/.weewm/config.rc)

-d, --display
Choisir un autre <<display>> pour X.

-f, --font
Choisir une fonte X (pour les messages, comme le redimensionnement des fenêtres).

-h, --help
Afficher l'aide et quitter.

-k, --keys
Choisir un fichier de configuration des touches
(par dé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 à 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.


Noeud:Installation, Noeud « Next »:, Noeud « Previous »:Introduction, Noeud « Up »:Top

2 Installation

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.


Noeud:Pre-requis, Noeud « Next »:, Noeud « Previous »:Installation, Noeud « Up »:Installation

2.1 Pré-requis

Vous devez disposer de ces programmes pour faire fonctionner WeeWM sur votre système :


Noeud:Installation depuis les sources, Noeud « Next »:, Noeud « Previous »:Pre-requis, Noeud « Up »:Installation

2.2 Installation depuis les sources

2.2.1 Obtenir le code source

Vous pouvez télécharger un paquet avec le code source ou bien récupérer la base CVS.

2.2.2 Extraction et compilation

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.


Noeud:Autres paquets, Noeud « Next »:, Noeud « Previous »:Installation depuis les sources, Noeud « Up »:Installation

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 é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.

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 développé ! ***

2.3.4 Paquet Gentoo

*** Non développé ! ***

2.3.5 Paquet Sorcerer

*** Non développé ! ***

2.3.6 Paquet Slackware

*** Non développé ! ***


Noeud:Lancer WeeWM, Noeud « Previous »:Autres paquets, Noeud « Up »:Installation

2.4 Lancer WeeWM

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


Noeud:Configuration, Noeud « Next »:, Noeud « Previous »:Installation, Noeud « Up »:Top

3 Configuration


Noeud:Options generales, Noeud « Next »:, Noeud « Previous »:Configuration, Noeud « Up »:Configuration

3.1 Options générales

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
largeur de la bordure des fenêtres (en pixels)
min: 1, max: 3, défaut: 1
space
espace entre la fenêtre et sa bordure (en pixels)
min: 0, max: 5, défaut: 1
desktops
nombre de bureaux disponibles
min: 1, max: 256, défaut: 5
minwidth
largeur minimale d'une fenêtre
min: 1, max: 4096, défaut: 15
minheight
hauteur minimale d'une fenêtre
min: 1, max: 4096, défaut: 15
move_offset
incrément de déplacement des fenêtres (en pixels)
min: 1, max: 256, défaut: 16
color.border.active
couleur de la bordure de la fenêtre active
défaut: 'green'
color.border.inactive
couleur de la bordure des fenêtres inactives
défaut: 'black'
color.sticky
couleur de la bordure pour les fenêtres collées
défaut: 'blue'
info.width
largeur de la fenêtre d'information - NON DEVELOPPE !
min: 10, max: 4096, défaut: 100
info.height
hauteur de la fenêtre d'information - NON DEVELOPPE !
min: 10, max: 4096, défaut: 50
dock.use
utilisation du dock (1=oui, 0=pas de dock)
min: 0, max: 1, défaut: 1
dock.size
taille du dock (en pixels)
min: 8, max: 512, défaut: 64
dock.position
position du dock (1=en haut, 2=à gauche, 3=à droite, 4=en bas)
min: 1, max: 4, défaut: 3
dock.align
alignement du dock (0=haut/gauche, 1=centré, 2=bas/droite)
min: 0, max: 2, défaut: 0

3.1.1 Un exemple de fichier config.rc

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


Noeud:Configuration des touches, Noeud « Next »:, Noeud « Previous »:Options generales, Noeud « Up »:Configuration

3.2 Configuration des touches

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
active la fenêtre suivante
prev_win
active la fenêtre précédente
pos_top_left
déplace la fenêtre dans le coin supérieur gauche
pos_top
déplace la fenêtre sur le bord supérieur de l'écran
pos_top_right
déplace la fenêtre dans le coin supérieur droit
pos_left
déplace la fenêtre sur le bord gauche de l'écran
pos_center
centre la fenêtre sur l'écran
pos_right
déplace la fenêtre sur le bord droit de l'écran
pos_bottom_left
déplace la fenêtre dans le coin inférieur gauche
pos_bottom
déplace la fenêtre sur le bord inférieur de l'écran
pos_bottom_right
déplace la fenêtre dans le coin inférieur droit
move_win_left
déplace la fenêtre horizontalement (-X pixels)
move_win_right
déplace la fenêtre horizontalement (+X pixels)
move_win_up
déplace la fenêtre verticalement (-X pixels)
move_win_down
déplace la fenêtre verticalement (+X pixels)
prev_desktop
affiche le bureau précédent
next_desktop
affiche le bureau suivant
desktop[1-256]
affiche le bureau numéro N
send_prev_desktop
envoie la fenêtre sur le bureau précédent
send_next_desktop
envoie la fenêtre sur le bureau suivant
win_max_horizontal
maximise la fenêtre horizontalement
win_max_vertical
maximise la fenêtre verticalement
win_max
maximise la fenêtre
win_fix
colle/décolle le fenêtre
win_memo_pos
mémorise la position et la taille de la fenêtre
win_memo_desktop
mémorise le bureau de la fenêtre
win_forget_pos
oublie la position mémorisée de la fenêtre
win_forget_desktop
oublie le bureau mémorisé de la fenêtre
win_kill
ferme la fenê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 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".


Noeud:Fond d ecrans, Noeud « Next »:, Noeud « Previous »:Configuration des touches, Noeud « Up »:Configuration

3.3 Fond d'écrans

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.


Noeud:xinitrc, Noeud « Previous »:Fond d ecrans, Noeud « Up »:Configuration

3.4 .xinitrc / .xsession

3.4.1 L'utilité de .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.

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'à 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


Noeud:Debuggage, Noeud « Next »:, Noeud « Previous »:Configuration, Noeud « Up »:Top

4 Debuggage


Noeud:Informations generales, Noeud « Next »:, Noeud « Up »:Debuggage

4.1 Informations générales

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.


Noeud:Informations a specifier, Noeud « Next »:, Noeud « Previous »:Informations generales, Noeud « Up »:Debuggage

4.2 Informations à spé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 réglages. Ils peuvent être trouvés dans ~/.weewm/


Noeud:Et les core-dumps, Noeud « Next »:, Noeud « Previous »:Informations a specifier, Noeud « Up »:Debuggage

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 à 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.

4.3.1 Recompilez 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.


Noeud:Reporter un bug, Noeud « Previous »:Et les core-dumps, Noeud « Up »:Debuggage

4.4 Reporter un bug

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


Noeud:Auteurs / Support, Noeud « Previous »:Debuggage, Noeud « Up »:Top

5 Auteurs / Support


Noeud:Auteurs, Noeud « Next »:, Noeud « Previous »:Auteurs / Support, Noeud « Up »:Auteurs / Support

5.1 Auteurs

WeeWM est écrit par :


Noeud:Obtenir de l aide, Noeud « Previous »:Auteurs, Noeud « Up »:Auteurs / Support

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 á toutes les personnes de la liste : envoyez à weewm-support@nongnu.org

Ou vous pouvez contacter les développeurs, Voir Auteurs.