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 :
Mod+Entrée -> Terminal
Mod+p -> menu : un menu apparait en bas, il faut taper le début du nom de l'application à lancer puis la choisir.
Mod+d -> Mode divisé : les fenêtres sont divisées sur l'écran
Mod+s -> mode stacked : La fenêtre sélectionnée prend tout l'écran, on ne voit que la barre des autres.
Mod+j -> aller sur la fenêtre du bas
Mod+k -> aller sur la fenêtre du haut
Shift+Mod+j -> déplacer la fenêtre vers le bas
Shift+Mod+k -> déplacer la fenêtre vers le haut
Mod+a -> Menu des actions : choisir « quit » pour quitter
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 :
Mod+Shift+h -> place la fenêtre sélectionée dans une colonne à gauche
Mod+Shift+l -> place la fenêtre sélectionée dans une colonne à droite
Mod+h -> aller sur la colonne de gauche
Mod+j -> aller sur la colonne de droite
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 « stacked » (Mod+s) : la fenêtre selectionée prend toute la colonne, laissant seulement la place de la barre de titre aux autres fenêtres
- Le mode « maximum » (Mod+m) : la fenêtre prend toute la colonne, on ne voit pas les autres fenêtres
- Le mode « fullscreen » (Mod+f) : la fenêtre selectionée prend tout l'écran (Il faut refaire Mod+f pour revenir au mode précédent)
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 ».
Mod+Shift+Espace -> bascule la fenêtre selectionnée dans le mode flottant. On navigue ensuite entre les fenêtres uniquement dans la couche flottante.
Mod+Espace -> passer de la couche flottante à la couche normale et inversement.
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 :
Mod+Clic gauche -> déplacer la fenêtre
Mod+Clic droit -> redimensionner la fenêtre (on peut aussi redimensionner les fenêtres de la sorte dans les autres modes)
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 :
Mod+Shift+2 -> place la fenêtre selectionnée dans la vue "2"
Mod+2 -> aller dans la vue "2"
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 :
Mod+t -> Menu des vues : Les vues utilisées apparaissent en bas. Il suffit d'en choisir une à l'aide des flèches directionelles ou de taper le nom de la vue (ou seulement une partie du nom, si elle a déjà été créée).
Mod+Shift+t -> Idem, mais on se déplace avec la fenêtre selectionée.
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
wmiirc -> il n'existe pas de manpage... autant en écrire une.
- La page en anglais
- Une fois que cette page sera terminé, il serait intéressant de l'envoyer à l'auteur du programme
- Parler de tout ce qui remplace les outils qu'on a dans un gestionnaire d'environnement complet (montage auto des disques, fond d'écran,...). Probablement sur une autre page. On peut s'inspirer des pages fluxbox et openbox (entre autres) de la doc ubuntu.