Style Normal | Light
Logo OFF | ON
Police -- | == | ++
Fermer

FVWM : Guide du débutant

Les principaux paramètres

Les premières choses à configurer sont les paramètres principaux, comme les variables d'environnement, et les paramètre basiques du bureau. Une variable d'environnement est utilisée comme dans un shell, vous pouvez stocker des valeurs et ainsi vous pouvez les utiliser à plusieurs endroits dans votre fichier fvwm2rc. Ainsi au lieu de changer plusieurs fois le même paramètres dans le fichier, vous ne modifiez que la variable. J'utilise principalement les variables d'environnement pour spécifier à FVWM où se trouvent les images, les fond d'écrans, les icônes etc. Par exemple, vous pouvez utilisez les variables d'environnement suivantes :

#####
# Set Environment variables
###########
SetEnv fvwm_home $[HOME]/.fvwm
SetEnv fvwm_img $[fvwm_home]/images
SetEnv fvwm_icon $[fvwm_home]/icons
SetEnv fvwm_scrpt $[fvwm_home]/scripts
SetEnv fvwm_wallpapers $[fvwm_img]/wallpaper

Vous pouvez également utiliser les variables d'environnement pour paramétrer vos logiciels préférés pour écouter de la musique, pour regarder des vidéos etc. Par exemple :

SetEnv fvwm_webbrowser /usr/bin/firefox
SetEnv fvwm_term /usr/bin/aterm
SetEnv fvwm_mail /usr/bin/mutt
SetEnv fvwm_media_player /usr/bin/xmms
SetEnv fvwm_video_player /usr/bin/mplayer

Ensuite, paramétrez le chemin pour les images (ImagePath). Ceci est identique à la variable d'environnement $PATH. Cet ImagePath permet d'indiquer à FVWM où se situent les images (les icones) pour les menus ou les docks. Un ImagePath peut ressembler à ceci :

#####
# Set the image path
###########
ImagePath $[fvwm_icon]:$[fvwm_icon];.png:+

Toutes mes icones que j'utilise sur trouve dans le dossier $[fvwm_icon]. Vous avez peut-être remarqué que j'ai écris $[fvwm_icon] deux fois, ceci permet à FVWM d'utiliser indifférement les fichiers .xpm (ceux par défaut) et les fichiers .png pour les icones. Vous pouvez également ajouter d'autres répertoires à l'ImagePath. Vous pouvez ajouter les répertoires communs à tous les utilisateurs (par exemple /usr/share/images/) mais aussi les répertoires personnels (exemple $HOME/images).

Ensuite, nous allons configurer les Bureaux Virtuels. FVWM vous permet d'utiliser autant de Bureaux Virtuels que vous voulez. Notez également que chaque Bureau Virtuel peut posséder plusieurs Pages. Pour cet exemple, choisissons d'utiliser 3 Bureaux Virtuels avec chacun 9 pages (3x3). Voici la configuration :

#####
# Virtual Desktops
###########
DesktopSize 3x3
DesktopName 0 Main
DesktopName 1 Work
DesktopName 2 Games
EdgeScroll 100 100
EdgeResistance 150  150
EdgeThickness 1

L'option DesktopSize définie le nombre de pages sur chaque Bureau Virtuel. Dans cette exemple, nous avons donc sur chaque Bureau Virtuel une grille de 3 pages par 3. Voici un petit schéma plus explicatif.
DesktopSize 3x3

Puis nous nommons ces 3 Bureaux Virtuels, Main, Work et Games (numérotés 0, 1 et 2). Une fonction intéressante qui s'appelle EdgeScroll permet de changer de Page lorsque la sourie touche le bord de l'écran. Cette option se définie par 2 pourcentages. Le premier indique le défilement horizontal et le deuxième le défilement vertical. 'EdgeScroll 100 100' permet de faire défiler entièrement l'écran vers une autre page lorsque la sourie touche un des bords. L'option EdgeResistance permet de configurer la 'résistance' ou le temps nécessaire avant le défilement. Et l'option EdgeThickness permet de définir la taille en pixel du bord de l'écran pour activer le défilement. Si vous n'aimez pas cette fonctionnalité, vous pouvez la désactiver mettant 'EdgeThickness 0' ou bien 'EdgeScroll 0 0'.

Nous allons maintenant voir le comportement par défaut de la souris et du focus. Voici un petit exemple :

#####
# Mouse and Focus Behavior
###########
ClickTime 350
MoveThreshold 3
Style * SloppyFocus, MouseFocusClickRaises

L'option Clicktime permet de définir le temps en millisecondes pour que soit considéré comme un 'clic' le moment où le bouton de la souris est appuyé puis relaché. Si vous maintenez le bouton plus longtemps, FVWM considère que le bouton de la souris est 'enfoncé'. L'option MoveThreshold est le nombre de pixels que peut parcourir la souris avant que FVWM considère cette action comme un 'déplacement'. Notez que tous ces paramètres ne sont pas à négliger, et ont un rôle important dans le comportement de votre gestionnaire de fenêtres et dans la créations de fonctions.

L'option Styles est une option également très importante dans la configuration de FVWM. Elle permet de changer l'apparence, le comportement, etc. des applications, des fenêtres. Cette option est largement utilisée, mais pour commencer, nous allons juste regarder quelle est sa syntaxe. Le '*' est un joker. Cela signifie que 'Style *' s'applique à toutes les fenètres sans exception. Puis, on ajoute les différentes options de styles séparées par des 'virgules'. Dans cet exemple, j'ai utilisé 'SloppyFocus'. Ceci configure le comportement du Focus : dès que la souris 'rentre' dans une fenètre, cette dernière obtient directement le Focus (sauf quelques exceptions comme par exemple les fenètres 'intégrées' au bureau). Le deuxième paramètre 'MouseFocusClickRaises' concerne également le Focus : lorsque l'on clique sur un fenêtre qui possède le Focus, elle est alors placée au premier plan. Il existe bien sur d'autres paramètres pour configurer le Focus qui sont par exemple 'ClickToFocus', 'ClickToFocusPassesClick', 'ClickToFocusPassesClickOff', 'ClickToFocusRaises' et 'ClickToFocusRaisesOff'. Je vous conseilles de lire la page de man pour avoir plus d'informations sur ces paramètres.

Il existe d'autres options importantes qui définissent le comportement du bureau. Par exemple :

EwmhBaseStruts 62 162 0 48
IgnoreModifiers L25

La premiere ligne 'EwmhBaseStruts' indique la zone 'utilisable de l'écran. Le 1er nombre correspond au haut, le 2eme à droite, le 3eme, en bas et le dernier à gauche. Ces nombres correspondent à la taille en pixels de la zone aux bords de l'écran qui ne peut pas être utilisée pour la maximisation des fenêtres par exemple. Cette option est souvement utilsées pour éviter de recouvrir par exemple FvwmTaskBar, FvwmPager et FvwmButtons lorsque qu'on maximise une application. Vous pouvez toutefois utiliser l'option de Style EWMHMaximizeIgoreWorkingArea pour une application spécifique pour ignorer 'EwmhBaseStruts'. La deuxième ligne permet à FVWM d'ignorer certains modifieurs de clavier (CTRL, ATL etc.) Dans cette exemple, il s'agit d'ignorer la touche 'Num Lock' et permet d'éviter quelques problèmes. Je vous conseille de garder cette ligne dans votre configuration.

Voici d'autres Styles que j'utilise dans mon fichier fvwm2rc, je ne vais pas expliquer leurs fonctionnement ici, mais il s'agit seulement de vous faire découvrir d'autres options que vous pouvez ajouter pour votre configuration et de voir ainsi les conséquences sur le fonctionnement de votre bureau.

#####
# Global Styles and options
###########
Style * TileCascadePlacement, GrabFocusOff
Style * NoPPosition, ResizeOpaque
OpaqueMoveSize -1
Emulate MWM
HideGeometryWindow Never
SnapAttraction 5 SameType Screen
SnapGrid 3 3
XorValue 55555
Style * DecorateTransient, DontRaiseTransient
Style * DontLowerTransient, StackTransientParent
Style * GrabFocusTransientOff
Style * WindowShadeSteps 20, WindowShadeScrolls
SetAnimation  10  -.01 0 .01 .03 .08 .18 .3 .45 .6 .75 .85 .90 .94 .97 .99 1.0
Style * MwmDecor, SlipperyIcon
Style * IconBox screen w 15 15 -165 -15, IconGrid 3 3, IconFill right top

Ensuite, je configure des Styles pour des applications précises. La syntaxe est 'Style [application] [style]'. FVWM compare la valeur de [application] (* inclus) avec le Nom, la Classe et/ou les Ressources d'une fenêtre. Pour trouver le Nom, la Classe et la Ressource d'une application, vous devez utiliser le module FvwmIdent. Dans cet exemple, je paramètre l'Icone ainsi que la MiniIcone qui seront associées au programme avec également d'autres options de Style qui peuvent être appliqué à ce programme.

#####
# Program Styles
###########
Style "*" Icon 48x48/unknown.xpm
Style "XTerm" Icon 48x48/xterm.png, NoActiveIconOverride, MiniIcon mini/xterm.png
Style "gvim" Icon 48x48/gvim.png, IconOverride, MiniIcon mini/gvim.png, EWMHMiniIconOverride
Style "Firefox-bin" Icon 48x48/firefox.png, MiniIcon mini/firefox.png, EWMHMiniIconOverride
Style "irssi" Icon 48x48/gaim.png, MiniIcon mini/irc.png
Style "xmms" WindowListSkip, CirculateSkip
Style "MPlayer" Icon 48x48/mplayer.png