Traduction(s) : English - Français - Italiano - Русский

(!) ?Discussion


Attention : La page n'est pas à jour, elle décrit l'utilisation de wmii 3.5 alors que la version de l'archive stable (squeeze) est la 3.9

Wmii (Window Manager Improved) est un « tiling WM » : c'est un gestionnaire de fenêtres qui place automatiquement les fenêtres sans les superposer de manière à ce qu'elles occupent le plus de place possible. De plus, il est entièrement pilotable au clavier, ce qui permet de gérer son bureau de manière très efficace.

Installation

Si vous n'avez pas encore d'interface graphique, installez d'abord les paquets suivants :

aptitude install xserver-xorg xterm xinit

Il suffit d'installer le paquet wmii :

aptitude install wmii

Utilisation

Prise en main

Quand on a l'habitude d'avoir un gestionnaire de fenêtres « classique », la prise en main n'est pas toujours évidente, il faut apprendre à utiliser les raccourcis claviers pour lancer des programmes et placer les fenêtres. La touche « Mod » par défaut est Alt. Voir la partie Configuration pour la changer si besoin. Les quelques raccourcis à connaitre pour ne pas être trop perdu au départ :

Les colonnes

Par défaut, le bureau ne prend qu'une seule colonne. Il est possible de mettre des fenêtres côte à côte avec les touches h et l :

Les colonnes sont crées automatiquement en fonction du placement des fenêtres. Il est possible de les élargir ou rétrécir avec la souris, simplement en cliquant entre deux colonnes.

Les modes

Sur le bureau, on démarre par defaut en mode « divisé » : l'écran est divisé équitablement entre les fenêtres. On peut élargir ou rétrécir une fenêtre en cliquant sur le petit carré à gauche de la barre de titre Il existe d'autres modes :

Le mode flottant

Il est possible de superposer certaines fenêtres comme avec un gestionnaire classique. On appelle ça le mode flottant. Ça peut être utile pour certaines applications comme the Gimp, qui sont difficilement gérable en « tiling ».

Dans le mode flottant, on passe d'une fenêtre à l'autre avec Mod+j et Mod+k. On peut déplacer les fenêtres en cliquant sur le petit carré de la barre de titre. On peut redimensionner les fenêtres comme dans un gestionnaire classique en cliquant dans les coins de la fenêtres. Mais on a aussi des raccourcis pour ça :

Les vues

Les vues, c'est un peu le principe des bureaux qu'on retrouve sur les autres gestionnaires de fenêtres. Elles sont crées automatiquement en fonction du placement des fenêtres. Les raccourcis claviers fonctionnent toujours avec la même logique :

On procède de la même façon avec n'importe quel numéro de O à 9. Mais on peut aussi leur donner des noms :

Configuration

Configuration per-user

La configuration se fait à l'aide du fichier /etc/X11/wmii-3.5/wmiirc. Pour avoir une configuration personnelle, il suffit de copier le fichier dans le répertoire .wmii-3.5 situé dans le répertoire personnel.

cp /etc/X11/wmii-3.5/wmiirc /home/<login>/.wmii-3.5/

Configuration de base

Il suffit d'éditer le fichier wmiirc.

Touches « hotkeys »

# Configuration Variables
MODKEY=Mod1
UP=k
DOWN=j
LEFT=h
RIGHT=l

Changez Mod1 en Mod4 pour utiliser la touche Windows à la place de la touche Alt, qui peut être utile pour d'autres programmes. Changer k, j, h, l, si vous souhaitez utiliser d'autres touches pour naviguer entre les fenêtres.

Couleurs des fenêtres

# Colors tuples: "<text> <background> <border>"
WMII_NORMCOLORS='#ffffff #000000 #ffffff'
WMII_FOCUSCOLORS='#ffffff #5c0000 #ffffff'

WMII_BACKGROUND='#333333'
WMII_FONT='fixed'

Les couleurs des fenêtres non selectionnées sont dans la variable NORMCOLORS. Les couleurs de la fenêtre selectionée est dans FOCUSCOLORS. Vous pouvez avoir le code hexadecimal d'une couleur avec The Gimp (en cliquant sur les deux carrés blancs et noirs dans la fenêtre des outils) par exemple. La couleur du papier peint (que l'on ne voie pas souvent, à moins d'avoir un terminal transparent) se trouve dans la variable NORMCOLORS.

Terminal

set -- $(echo $WMII_NORMCOLORS $WMII_FOCUSCOLORS)
WMII_MENU="dmenu -b -fn '$WMII_FONT' -nf '$1' -nb '$2' -sf '$4' -sb '$5'"
WMII_9MENU="wmii9menu -font '$WMII_FONT' -nf '$1' -nb '$2' -sf '$4' -sb '$5' -br '$6'"
WMII_TERM="x-terminal-emulator'"

Voir man dmenu pour le menu. La variable WMII_TERM contient la commande lancée lorsqu'on ouvre un terminal avec Mod+Entrée.

Le système Plan9

Wmii utilise un pseudo-système de fichier, un peu comme /proc, pour sa configuration. On peut lire et écrire dedans avec wmiir : On utilise « ls » pour voir les fichiers et dossiers :

$ wmiir ls /
client/
colrules
ctl
event
keys
lbar/
rbar/
tag/
tagrules

On peut lire les fichiers avec « read » :

$ wmiir read /colrules
/.*/ -> 58+42

On peut créer un fichier avec « write » ou écrire dans un fichier existant avec xwrite. Par exemple :

wmiir xwrite /ctl view 5

écrira « view 5 » dans le fichier ctl, ce qui nous déplacera dans la vue "5".

On trouve d'autres exemples dans la suite du wmiirc :

Comportement

Largeur des colonnes

Dans la section #Column Rules, il suffit de remplacer « 58+42 » par la largeur des colonnes (en pourcentage de la largeur de l'écran) que l'on souhaite.

Placement des fenêtres

La section #Tagging Rules permet d'instaurer des règles au fenêtres, en fonction du contenu de leur barre de titre. On selectionne les fenêtres à partir d'une expression rationnelle (http://fr.wikipedia.org/wiki/Expression_rationnelle) et on lui applique, soit un tag (le nom ou numéro d'une vue), soit le tilde (~) pour passer la fenêtre en mode flottant. Par exemple :

# Tagging Rules
wmiir write /tagrules <<!
/XMMS.*/ -> ~
/MPlayer.*/ -> ~
/VLC.*/ -> ~
/Gajim.*/ -> ~+jabber
/Téléchargements.*/ -> sel+download
/.*/ -> sel
/.*/ -> 1
!

Toutes les fenêtres dont le titre commence par XMMS, MPlayer, ou VLC se placeront automatiquement dans le mode flottant. Gajim se lancera en mode flottant dans la vue nommée "jabber" et la fenêtre de téléchargement d'iceweasel se lancera à la fois dans la vue selectionnée et dans la vue "download". Les deux dernières lignes (présentes par défaut), permettent de lancer une nouvelle fenêtre dans la vue sélectionnée, et de démarrer dans la vue "1".

On peut donc aussi utiliser wmii en mode flottant uniquement en mettant :

# Tagging Rules
wmiir write /tagrules <<!
/.*/ -> ~+sel
/.*/ -> 1
!

Barre de status

Dans la section #Status Bar Info, il suffit de remplacer la fonction status par la commande de son choix, le résultat de la commande apparaîtra dans la barre en bas à droite. Par exemple, pour voir l'état de la batterie, ainsi que la date et l'heure dans un format plus réduit, on peut faire :

# Status Bar Info
status() {
        echo -n $(acpi -b) '|' $(date +"%d/%m/%y - %H:%M:%S")
}

Actions

Tout script placé dans le dossier /etc/X11/wmii-3.5 ou ~/.wmiirc ayant les droits d'éxecution sera accessible via le menu Actions (Mod+a).

Raccourcis claviers

Il suffit de rajouter les raccourcis que l'on souhaite, dans la partie # Key Bindings, en suivant la même syntaxe, par exemple :

        Key $MODKEY-b
                amixer set Master 2dB+ 
        Key $MODKEY-v
                amixer set Master 2dB-
        Key $MODKEY-n
                iceweasel &

On peut ainsi réduire et augmenter le son avec Mod+b et Mod+v. Mod+n lancera iceweasel. N'oubliez pas le « & » à la fin de la commande, pour rendre la main au script (exceptée quand la commande s'exécute et rend aussitôt la main, comme dans le cas de amixer), faute de quoi wmii ne répondra plus aux raccourcis claviers tant que vous n'aurez pas quitté l'application. Pour les claviers multimedias, voir Keyboard/MultimediaKeys (en) et http://www.lea-linux.org/documentations/index.php/Hardware-hard_autres-clavier_multimedia(fr)

Attention : Il faut utiliser de vraies tabulations, pas des espaces (les tabulations sont reconnues par sed lorsque la fonction eventstuff() est utilisée).

Programmes au démarrage

Pour lancer des programmes au démarrage de la section, il suffit de les rajouter dans le wmiirc. Il faut par contre les placer avant la dernière section :

# Stop any running instances of wmiirc
echo Start wmiirc | wmiir write /event || exit 1

wmiir read /event |
while read event; do
        set -- $event
        event=$1; shift
        Event_$event $@
done 2>/dev/null

Ceci fait tourner wmiir read /event en boucle, donc toute ligne rajoutée après dans le script ne sera pas exécutée.

Pour éviter que le programme se lance une deuxième fois lorsqu'on recharge le wmiirc, on peut faire :

[ "`ps aux | grep <nom_du_programme> | grep -v grep`" =  "" ] && <nom_du_programme> &

Le programme ne se lancera que s'il n'est pas déjà lancé.

Ici aussi n'oubliez pas le « & » à la fin de la commande, pour que le script puisse continuer.

Prendre en compte les modifications sans redémarrer

On peut relancer le wmiirc avec le menu Actions (Mod+a > wmiirc). Pour pouvoir lancer un programme nouvellement installé via le menu Applications, il faut lancer l'action Rehash.

Scripter wmii

En regardant dans le système Plan9 avec wmiir ls et wmiir read, ainsi qu'en regardant les raccourcis claviers du wmiirc, on peut facilement voir quel commande utiliser pour modifier le comportement de wmii, et donc se faire des petits scripts, comme par exemple :

#!/bin/sh
# /usr/local/bin/tag 

if [ $# -ne 2 ]; then
    echo "Usage: tag WINDOWTITLE TAG"
    exit 1
fi

for i in `wmiir ls /client | sed '/sel/d'` ; do
    if [ "`wmiir read /client/$i/label | grep $1`" = "$1" ]; then
        wmiir xwrite /client/$i/tags $2
    fi
done

Permet de tagguer une ou plusieurs fenêtres. Par exemple, tag Iceweasel 2+web placera la(les) fenêtre(s) d'iceweasel dans la vue "2" et dans la vue "web".

On peut faire toute sorte de scripts, selon la convenance. Mais généralement, pour une meilleure intégration, on préfèrera scripter directement dans le .wmiirc, qui est lui-même un script bash, par exemple, on peut rajouter le raccourci clavier suivant :

 Key $MODKEY-Shift-r
                export TAG=$(tagsmenu) ; wmiir xwrite "/client/$(wmiir read /client/sel/ctl)/tags" "$TAG" ; wmiir xwrite /ctl "view $TAG"

et ainsi pouvoir changer une fenêtre de vue et aller dans la vue en question en faisant simplement Mod+R.

Pour ceux qui souhaiteraient apprendre à faire des scripts bash, vous trouverez un guide très complet à http://abs.traduc.org/abs-5.3-fr/

On peut aussi utiliser d'autres clients Plan9 que wmiir (plan9port, libixp,...) qui s'intègrent parfois mieux avec d'autres langages. Par exemple, les amateurs du langage ruby aimeront ruby-wmii : http://eigenclass.org/hiki.rb?wmii+ruby

N'hésitez pas à fouiner sur le web, on y trouve plein d'astuces pour configurer wmii en profondeur....

Ressources

Site officiel : http://wmii.suckless.org/

ToDo


CategoryFrDesktopEnvironment