Configuration de FVWM

Vincent Bernat

Il y a actuellement pas mal de bruit autour de GNOME 3 ainsi que de la dernière release d’Ubuntu qui utilise désormais Unity au lieu de GNOME. Cela me paraît donc le moment idéal de poster un billet pour indiquer que j’utilise toujours FVWM dont la dernière version a été publiée il y a un mois.

FVWM est un gestionnaire de fenêtres très vieux. Tellement vieux que personne ne sait vraiment ce que signifie le F. Il est livré avec une configuration par défaut plutôt désuète mais il est possible de le rendre encore plus moche. Toutefois, FVWM est très puissant et totalement paramétrable. De plus, il est désormais plutôt léger en mémoire et en CPU.

Ma configuration#

Ma configuration de FVWM est disponible sur GitHub. Elle nécessite l’installation de fvwm-crystal. Si vous utilisez Debian ou Ubuntu, il y a déjà un paquet pour ça. fvwm-crystal est un ensemble de fichiers de configuration particulièrement corsés. Cela permet de choisir parmi de nombreux thèmes et de configurer pas mal de détails. Malheureusement, il semble que le site du projet a disparu. Les sources sont toujours disponibles sur les miroirs Debian.

Tout ceci est assez impressionnant, mais si, comme moi, vous aimez plutôt les trucs minimalistes sans crouler sous les icônes et les menus, il va falloir écrire sa propre recette pour obtenir quelque chose de plus simple. Ce qui est assez bien pensé avec fvwm-crystal est qu’il est possible de superposer sa configuration pour en modifier le comportement. Si un fichier de configuration existe dans votre home, c’est celui-ci qui sera utilisé au lieu de celui du système. Modifier ce qui nous déplaît est donc généralement facile.

Ce qui est intéressant à voler dans ma configuration est la possibilité de modifier la configuration selon que vous soyiez dans une configuration avec un ou deux écrans. Avec un écran, on a :

  • une barre de lancement en haut à gauche,
  • un gestionnaire d’icônes (qui accueille les applications minimisées) en haut à droite,
  • la barre de notification juste à sa gauche,
  • les bureaux virtuels juste en-dessous,
  • deux barres des tâches, l’une pour les applications normales et l’autre pour les terminaux (que j’ai souvent en plus grand nombre).
Configuration de FVWM avec un écran
FVWM sur un seul écran

Avec deux écrans, l’agencement est différent. Les barres des tâches sont chacune sur leurs propres écrans. Les bureaux virtuels se retrouvent à cheval entre les deux écrans et le reste se trouve en haut à gauche sur l’écran de droite.

Configuration de FVWM avec deux écrans
FVWM sur une configuration bi-écran

Si je suis sur mon portable avec un seul écran et que je branche un écran externe, il me suffit de deux commandes pour reconfigurer mon environnement de travail sans fermer une seule application :

$ xrandr --output  VGA-1 --auto --output DVI-I-1 --auto --right-of VGA-1
$ killall trayer ; FvwmCommand Restart

J’utilise également conky, un moniteur système plutôt léger. Il est toutefois démarré via mon .xsession et non pas via FVWM.

Fonds d’écran & dual-screen#

En dual-screen, la construction d’un fond d’écran peut s’avérer assez compliquée. Les deux écrans peuvent être de tailles différentes et ne pas avoir le même ratio. Comme je change mes fonds d’écran toutes les heures, j’ai écrit un petit script pour gérer ce problème. Il s’utilise comme ceci :

$ ./build-wallpaper.py -d ~/.fvwm/wallpapers -c -t ~/tmp/mywallpaper.png

Il va :

  • sélectionner autant de fonds d’écran qu’il n’y a d’écrans,
  • assigner chaque fond à un écran,
  • redimensionner l’image pour s’adapter à l’écran (en la coupant ou en la centrant au besoin si le ratio n’est pas adapté à l’écran).

Ce script a besoin des paquets python-xpyb et python-imaging pour fonctionner.

Mise à jour (05.2011)

Thomas Adam m’indique l’existence de Nitrogen, un outil graphique permettant de configurer le papier peint de son bureau et supportant les configurations avec plusieurs écrans. Il ne permet cependant pas de sélectionner aléatoirement une image.

Mise à jour (09.2021)

J’utilise actuellement une version mise à jour de ce script avec i3.

Je récupère désormais la plupart de mes fonds d’écran sur InterfaceLIFT.