# FVWM

Le F Virtual Window Manager (anciennement Feeble Virtual Window Manager) est un gestionnaire de fenêtres virtuelles pour le système X Window. Au départ un dérivé de twm, FVWM a évolué en un environnement pour système Unix hautement configurable.
C'est un logiciel libre distribué selon les termes de la licence GNU GPL.

## Histoire

En juillet 1993, lors de son travail sur l'analyse des signatures acoustiques pour le département Américain de la défense, Rob Nation a commencé à hacker twm afin de trouver pourquoi il utilisait autant de ressources mémoires et pour ajouter la gestion de fenêtres virtuelles.
Déjà bien connu pour son populaire émulateur de terminal rxvt, Rob a travaillé à réduire la consommation mémoire de son nouveau gestionnaire de fenêtres. Décidant de tester la réception de FVWM, le 1er juin 1993, Nation le rendit public avec une release de rxvt, ce fut un succès, FVWM proposant une alternative valable à twm.
Plusieurs développeurs ont basé leurs propres projets sur FVWM afin de bénéficier de son développement. Plusieurs gestionnaires de fenêtres populaires utilisés aujourd'hui sont liés à FVWM : AfterStep, XFce, Enlightenment (voir section Dérivés).
En 1994 Rob Nation a arrêté de développer FVWM, et fit de Chuck Hines le mainteneur. La dernière release de Rob Nation est fvwm-1.24r. Les versions suivantes de FVWM utilisèrent un format de fichier de configuration différent et eurent une architecture significativement différente. Ainsi beaucoup de distributions Linux proposèrent fvwm-1.24r et les dernières versions de FVWM en tant que programmes différents. En 2005, fvwm-1.24r compile et tourne toujours sur les systèmes Linux modernes. Certains utilisateurs continuent d'utiliser l'ancienne version de FVWM.

## Signification du sigle FVWM et du logo

Le sigle FVWM avait une signification précise au début du projet, mais à un moment, sa signification s'est perdue, notamment celle de la première lettre F. Les autres lettres VWM étant évidemment liées à l'histoire de ce gestionnaire de fenêtres virtuelles, elles correspondent aux initiales de Virtual Window Manager.
Mais, quand Google publia les vieilles archives des newsgroups acquises par le rachat de DejaNews (en), la signification originale fut redécouverte : FVWM signifiait Feeble Virtual Window Manager. Donc F correspond à Feeble signifiant faible en Anglais comme dans l'expression "faible empreinte mémoire".
Cependant, les développeurs de FVWM ont décidé de garder le "F mystérieux". Et jusqu'à aujourd'hui cette décision a été suivie, comme en témoigne sa FAQ.
Le terme Feline a été largement présenté sur le site officiel maintenu par l’équipe de Chuck Hines (qui y consacre une section à la passion des chats) et le thème des félins a inspiré son logo actuel (dont les lettres forment un chat) résultant d’un concours où ce thème était très présent dans les différentes propositions. Il semble que ce soit ce terme (d'invention récente) qui soit maintenant le plus populaire (également mentionné dans la FAQ).

## Fonctionnalités

Beaucoup des fonctionnalités de FVWM peuvent être désactivées à la compilation ou à l'exécution, ou de façon dynamique pour des fenêtres spécifiques ou chargées et déchargées en tant que modules. Il n'y a pas de fonctionnalités rigides, les développeurs de FVWM ne prétendent pas savoir comment votre bureau devrait fonctionner ou à quoi il devrait ressembler, FVWM peut être configuré pour fonctionner comme on le souhaite et ressembler à ce que l'on veut.
Liste non exhaustive:
* Prise en charge complète des Hints EWMH, ICCM2 et GNOME.
** Ces standards permettent à FVWM d'interagir avec les environnements de bureau comme GNOME et KDE.
* Gestion complète de l'internationalisation, comprenant les caractères multi-octets et le texte bidirectionnel.
** FVWM a été traduit en beaucoup de langues en utilisant gettext et prend en charge les caractères asiatiques et les langues bidirectionnelles, comme l'hébreu. FVWM peut être utilisé pour faire un environnement très accessible, par exemple des opérations sans souris.
* Prise en charge de Xft2.
** Anticrénelage.
* Les barres de titre peuvent être désactivées ou mises sur n'importe quel bord de la fenêtre.
* Icônification animée des fenêtres dans toutes les directions, y compris en diagonale.
* L'enroulement des fenêtres permet de cacher une fenêtre pendant que l'on travaille à quelque chose d'autre.
* Prise en charge complète du PNG, y compris l'alpha blending.
** On peut créer des images png pour les utiliser dans ses barres de titre et menus, l'alpha blending permet de créer quelques effets très attrayants.
* La bibliothèque Perl pour étendre les possibilités de FVWM en utilisant Perl, des scripts et en pré-traitant les fichiers de configuration en utilisant m4, FvwmPerl ou CPP.
* FVWM peut être facilement étendu par des scripts et le pré-traitement permet de faire des configurations FVWM de manière dynamique.
* Il est possible de construire des boîtes de dialogues, des menus et des applications avec FvwmForm, FvwmGtk et FvwmScript.
* Module FvwmButtons.
** FvwmButtons est un module puissant permettant de créer des panneaux sur le bureau, il peut contenir d'autres applications, changer dynamiquement et a beaucoup d'autres fonctionnalités.
* Prise en charge des mouvements de souris.
** Les mouvements de souris permettent de dessiner des formes avec la souris et de les lier avec des commandes.
* Créer des menus dynamiques, beaucoup d'utilitaires utilisant cette fonctionnalité sont compris dans FVWM.
** FVWM comporte des utilitaires pour naviguer dans le système de fichiers, récupérer des titres sur internet et beaucoup plus, à partir des menus.
* Gestion de session.
** On peut utiliser un gestionnaire de session pour enregistrer les états de votre bureau, sauver votre session exactement comme on l'a laissée et la recréer quand on est de retour.
* Prise en charge de l'extension Xinerama.
** On peut utiliser FVWM avec deux moniteurs ou plus, FVWM va permettre de travailler sur ces moniteurs de manière transparente et efficace.
* Extensible dynamiquement en utilisant des modules.
** On peut n'utiliser que les fonctionnalités dont on a besoin, charger et décharger des modules selon ses besoins.

## Citations

"FVWM est la bonne façon de faire. [...] Il est beau, marche bien, a toutes les fonctionnalités importantes et est petit à démarrer. J'apprécie ce que propose twm, mais twm est plutôt laid et a quelques problèmes. FVWM est plus beau, fait tout et est très configurable."
    Linus Torvalds, Coordinateur de projet et développeur original du noyau Linux, le 16 décembre 1993 dans comp.os.coherent Usenet post.
"Question: Quel est votre gestionnaire de fenêtre préféré ? Alan: Êtes-vous en train d'essayer de commencer un combat avec quelqu'un ? Je ne sais pas. La plupart du temps, j'utilise FVWM. [...] Le gestionnaire de fenêtres qui est je pense le plus ordonné, et que je n'utilise pas, est window maker."
    Alan Cox, Programmeur du noyau Linux, 2nd Linux-Tag conference (28 Nov. 1999).
"J'étais un fan confirmé de FVWM même depuis que j'ai commencé à utiliser son layout; cela a amélioré mon efficacité de manière fantastique. N'importe quel autre gestionnaire de fenêtres Linux a des mauvaises idées sur le focus -- chaque option de KDE et GNOME est cassée d'une certaine manière assez importante !"
    Donald Knuth, 31 Dec. 2003 postant sur la liste de diffusion fvwm.
"Le nom FVWM voulait dire quelque chose, mais j'ai oublié quoi (Feeble, fameuw, foobar ? Ça n'a pas vraiment d'importance, c'est de toute façon une société basée sur un acronyme.)"
    Rob Nation, dans une ancienne page de manuel. Voir aussi : fvwm faq.

## Thèmes pour FVWM
### FVWM-Crystal

FVWM-Crystal est un ensemble de thèmes basés sur FVWM qui transforme ce dernier en un environnement de bureau facile à utiliser et performant. Ses préférences sont accessibles directement depuis le menu. Il propose différents styles de décorations de fenêtres et un gestionnaire de fichier peut être utilisé pour afficher des icônes sur le bureau, ROX-Filer et Nautilus sont supportés pour cela. Depuis, la version 3.1.7, un gestionnaire d'icônes de bureau autonome sous forme d'un module FVWM a été rajouté. Avec la version 3.2.0, ce gestionnaire d'icône supporte n'importe quel gestionnaire de fichiers ainsi que les commandes personnalisées.
FVWM-Crystal propose l'intégration de plusieurs émulateurs de terminal dont xterm, aterm, urxvt et terminator, d'un système de notifications qui supporte stalonetray et trayer, de différents lecteurs de médias dont Audacious, MPD, Quod Libet, XMMS2, AlsaPlayer et MPlayer. Les contrôles de ces systèmes peuvent s'avérer très puissants. Par exemple, le contrôle de MPlayer dans les dernières versions permet de contrôler une carte DVB si une telle carte est disponible.
Le menu de FVWM-Crystal peut facilement être modifié par l'utilisateur. Ce menu peut être généré automatiquement, il est conforme à la norme FreeDesktop et comprend le support de ses catégories additionnelles.
N'importe quelle application peut être mise en mode plein écran. Cette fonction a été étendue dans les dernières version pour permettre de naviguer entre les fenêtres plein écran et le bureau d'une façon similaire à celle de l'Amiga OS, ceci sans compromettre la navigation entre les pages multiples du bureau.
La configuration de FVWM-Crystal est assurée par des scripts Python et un ensemble de fichiers à la syntaxe FVWM. Ces derniers peuvent être copiés dans le répertoire utilisateur et modifiés, ce qui permet de profiter ainsi de la souplesse de FVWM. Un répertoire de configuration système peut aussi être utilisé, ce qui peut s'avérer utile dans un environnement multi-utilisateurs.

### FVWM Themes

FVWM Themes propose un canevas de configuration pour FVWM et une large gamme de configurations prêtes à l'emploi. Il est basé entièrement sur FVWM. Les thèmes sont divisés en modules qui peuvent être chargés, déchargés et mélangés à la demande. Il propose aussi des menus dynamiques, le support de plusieurs lecteurs audio, le support des menus Debian et celui de Xinerama.