XFwm, le gestionnaire de fenêtres

           

           
           
           
           
           

          XFce possède désormais son propre gestionnaire de fenêtres ! Léger et efficace, tout comme XFce, XFwm est un puissant gestionnaire de fenêtres configuré depuis la barre principale de XFce !

          1) Introduction

          XFwm est basé sur FVWM2, de Robert Nation et Charles Hines. Historiquement, XFCE était prévu pour fonctionner avec FVWM, si bien que, lorsque j'ai décidé de doter XFCE de son propre gestionnaire de fenêtres, j'ai débuté a partir de FVWM... Le code de FVWM a été profondément modifié et rendu plus simple, chaque fonctionnailté superflue pour XFCE supprimée et pas mal de bugs ont été arrangés.

          Maintenant, XFwm est disponible, et il est exactement comme je le voulais : Joli, léger et efficace !
           

          XFwm supporte dorénavant une large variété de "hints" d'autres Gestionnaires de Fenêtres :
          • Open Look Window Manager
          • Motif Window Manager
          • GNOME hints (partiellement)
          • KDE Hints
          Note : J'ignore comment traduire le mot "hints" en français. A la base, cela signifie "tuyau". Ici, cela signifie que les applications peuvent donner des instructions au Gestionnaire de Fenêtres concernant leur aspect et leur comportement.
             
          2) Anatomie d'une fenêtre

          Dans XFwm, chaque fenêtre possède une barre de titre et 4 boutons situés de chaque coté.

          Note : L'aspect dégradé des barres de titre n'est disponible uniquement que sur un écran de plus de 256 couleurs. A 256 couleurs ou moins, la barre de titre apparaît unie.
           

          Ce bouton ouvre un petit menu qui permet d'appliquer des operations de base sur une fenêtre, comme le déplacement, la fermeture, le redimensionnement, l'icônification, etc. 
          Un double click sur ce bouton ferme la fenêtre
          Ce bouton fonctionne comme une bascule. Il permet de "coller" la fenêtre a l'écran. Une fenêtre ainsi collée restera visible sur tous les écrans virtuels.
          Ce petit bouton permet d'icônifier une fenêtre. Si l'application a sa propre icône, celle-ci sera utilisée pour la représentation icônifiée. Sinon, une icône par défaut sera affichée.
          Ce bouton agrandit la fenêtre a la taille de l'écran de manière à ce qu'elle occupe la totalité de la surface visible..

          N'importe quel bord de la fenêtre peut être utilisé pour agrandir ou redimensionner la fenêtre.

          La fenêtre "active" est celle qui possède le focus. Les autres fenêtres sont considérées comme inactives.

          On peut facilement distiguer la fenêtre active des autres par la couleur de sa barre de titre.
           
          Correspond a la fenêtre active (avec la palette de couleur par défaut)
          Correspond a une fenêtre inactive

          3) Les couleurs

          Les palettes de couleurs utilisées dans XFwm sont celles de XFCE. Chaque fois que vous modifiez les couleurs dans XFCE, toutes les fenêtres héritent de la même palette.

          Cette possibilité permet d'arranger votre gestionnaire de fenêtre a votre goût très facilement, sans avoir a éditer la moindre ligne d'un fichier de configuration !

          Selectionnez  le panneau de configuration, puis chargez ou définissez votre propre palette :

          1 Couleur du pointeur de souris
          2 Couleur des éléments sélectionnés dans les menus de XFwm
          4 Couleur de fenêtre inactive
          7 Couleur de fenêtre active
          8 Couleur pour les bordures de fenêtres et menus

          Grâce a ces paramètres, vous pourrez facilement changer l'aspect des fenêtres dans XFwm :
           
           

          A partir du panneau de configuration de XFce, vous pouvez également définir le mode de focalisation des fenêtres, à savoir cliquer pour focaliser ou si  le focus suit le pointeur de la souris.

          4) Le fichier de configuration de XFwm

          XFwm est déjà préconfiguré. Cependant, la plupart des paramètes peuvent être modifiés en créant ou en modifiant votre propre fichier de configuration.

          Poue être reconnu comme tel, un fichier de configuration doit avoir l'un des noms suivants :
           

          • .xfwmrc
          • system.xfwmrc
          • sample.xfwmrc
          Ils sont recherchés dans le répertoire courant en premier, puis le repertoire "home" de l'utilisateur et enfin le répertoire de XFCE, à savoir /var/XFCE/ (si ce paramètre n'a pas été changé lors de la compilation).

          XFwm accepte les mots clés suivants dans ses fichiers de configuration :
           
           
          ActiveColor <c1> <c2> (*) Définit la couleur des fenêtres actives  ActiveColor #c0c0c0 #ffffff
          AddToFunc <fn> Commence ou augmente une définition de fonction AddToFunc Move-or-Raise "I" Raise 
          + "M" Move 
          + "D" Lower
          AddToMenu <mn> Commence ou augmente une définition de menu AddToMenu "Utilities" 
          + "Xterm"         Exec  xterm -e tcsh
          AnimateWin  Autorise ou inhibe les animations de fenêtres AnimateWin On 
          AnimateWin Off
          AutoRaise (*) Autorise ou inhibe la mise au premier plan automatique des fenêtres (lorsque FocusMode est définit à FollowMouse) AutoRaise On
          AutoRaise Off
          Beep Emet un beep Beep
          ClickTime <ct> Spécifie le délai maximum (en millisecondes) entre l'appuis et la relache d'un bouton de souris ClickTime 150
          Close Ferme la fenêtre courante Close
          ColormapFocus La table des couleurs est associée à la fenêtre ayant le focus ColormapFocus
          CursorColor <c1> <c2> (*) Définit la couleur du pointeur de souris  CursorColor red white
          CursorMove <n1> <n2> Déplace le curseur de souris de n1% d'écran verticallement et n2% d'écran horizontalement CursorMove 10 10
          Delete Envoie un message à une fenêtre lui demandant de se fermer. Delete 
          Desk <d1> [<d2>] (*) Change de bureau virtuel  Desk <0>
          DesktopSize <Hor>x<Ver> Définit la taille virtuelle de l'écran physique DesktopSize 4x1
          Destroy Détruit la fenêtre d'une application Destroy
          DestroyFunc <fn> Supprime une fonction DestroyFunc "Move-or-Raise"
          DestroyMenu <mn> Supprime un menu DestroyMenu "Utilities"
          Echo <s> Envoie une chaîne vers "stderr" Echo "Done"
          Exec <c> Execute une commande exec xedit
          ExecUseSHELL <c> Définit le shell par défaut utilisé par Exec ExecUseSHELL bash
          FlipFocus Echange de focus entre les fenêtre qui avaient le focus précédemment FlipFocus
          Focus Donne le focus à une fenêtre Focus
          FocusMode (*) Definit le mode de focalisation des fenêtres Focus ClickToFocus 
          Focus FollowMouse
          Function <fn> Associe une fonction à une touche ou à la souris Mouse 1 T A Function Move-or-Raise
          GotoPage <x> <y> Déplace le point de vue à la  page (x,y) GotoPage 3 2
          IconFont <font> Définit la fonte utilisée pour les icônes IconFont -*-helvetica-medium-r-*-*-12-*-*-*-*-*-*-*
          Iconify Iconifie/Deiconifie une fenêtre Iconify
          InactiveColor <c1> <c2> (*) Définit les couleurs pour les febêtres inactives  InactiveColors grey77 black
          Key <key> <context> <modif> <fn> Associe une touche clavier à une fonction spécifique Key F11  A  SCM  WindowList
          KillModule <m> Supprime un module KillModule xfce
          Lower Passe une fenêtre en arrière plan Lower
          Maximize Agrandit une fenêtre à la taille de l'écran Maximize
          Menu <m> <dbl-click-action> Affiche le menu <m> ou déclenche une action si l'utilisateur a double-cliqué Menu "Utilities" Close
          MenuColor <c1> <c2> <c3> <c4> (*) Définit les couleurs de menu  MenuColor red blue yellow green
          MenuFont <font> Définit la fonte utilisée pour les menus MenuFont 
          -*-helvetica-medium-r-*-*-12-*-*-*-*-*-*-*
          Module <m> Execute un module Module xfce
          ModulePath Définit le chemin d'accès aux modules ModulePath $PATH
          Mouse <mouse> <context> <modif> <fn> Associe un bouton de la souris à une fonction spécifique Mouse 1   R    A   Menu "Root" Nop
          Move [<x> <y>] Déplace une fenêtre Move
          Nop Ne fait rien ! Nop
          OpaqueMove (*) Définit si le contenu des fenêtres est affiché pendant leur déplacement OpaqueMove On
          OpaqueMove Off
          PopUp Ouvre un menu ou un sous-menu Popup "Quit"
          Quit Termine XFwm Quit
          Raise Amène une fenêtre au premier plan Raise
          RaiseLower Amène une fenêtre au premier plan ou la renvoie au second plan RaiseLower
          Recapture Recapture toutes les fenêtres Recapture
          Refresh Rafraîchit l'écran Refresh
          Resize [<x> <y>] Redimensionne une fenêtre Resize
          Restart Relance XFwm Restart
          Stick Rend une fenêtre "collante" Stick
          Style <win> <s1> [,<s2> [,<s3> [<s4>]...]] Asocie un style a une ou plusiers fenêtres Style "XFce*" Sticky
          TitleStyle <type> Gradient <c1> <c2> (*) 
          TitleStyle <type> Solid <c> (*)
          Définit un style de barre de titre  TitleStyle Active Gradient blue grey77 
          TitleStyle Inactive Solid grey60
          Wait <nom> Attends jusqu'à l'apparition de la fenêtre <nom> Waiit xterm
          WindowFont Définit la fonte utlisée pour les fenêtres indowFont -*-helvetica-bold-r-*-*-12-*-*-*-*-*-*-*
          WindowList Donne la liste de toutes les fenêtres affichées à l'écran Windowlist
          XORvalue <n> Change la valeur XOR pour l'affichage du pourtour des fenêtres lors de leur redimensionnement

          Note : (*) indique les paramètres pris en charge par XFce lors du démarrage

          Liste des Modifieurs :
           
          N Pas de  modifieur
          S Shift
          M Méta
          A N'importe quel modifieur
          Liste des contextes :
           
          R Fenêtre de fond d'écran
          W Fenêtre applicative
          T Titre
          S Cotés
          F Cadre
          I Icône
          1-4 Boutons de barre de titre
          A N'importe quel contexte

          5) Fichier sample.xfwmrc par défaut

          MenuFont            -*-helvetica-medium-r-*-*-12-*-*-*-*-*-*-*
          WindowFont          -*-helvetica-bold-r-*-*-12-*-*-*-*-*-*-*
          IconFont            -*-helvetica-medium-r-*-*-12-*-*-*-*-*-*-*

          CursorColor         red white
          AnimateWin          On
          FocusMode           ClickToFocus

          Style "*"           RandomPlacement
          Style "*"           BorderWidth 5

          Style "XFce*"       Sticky
          Style "XFbd*"       Sticky
          Style "Popup menu*" Sticky
          Style "Alert*"      Sticky
          Style "Question*"   Sticky

          AddToMenu "Exit"
          + "&Restart "       Restart xfwm
          + "&Quit "          Quit
          + ""                Nop
          + "&Cancel "        Nop

          AddToMenu "Window"
          + "&Move"           Move
          + "&Resize"         Resize
          + "(De)&Iconify"    Iconify
          + "(Un)&Stick"      Stick
          + "(Un)Ma&ximize"   Maximize 100 100
          + ""                Nop
          + "&Close"          Delete
          + ""                Nop
          + "S&witch to..."   WindowList

          AddToMenu "Root"
          + "New window"      Exec xterm
          + "Shuffle Up"      Next [*] focus
          + "Shuffle Down"    Prev [*] focus
          + "Refresh"         Refresh
          + ""                Nop
          + "&Backdrop..."    Exec xfbd -i
          + ""                Nop
          + "&Quit XFWM"      Popup "Exit"

          # This defines the most common window operations

          AddToFunc "windowops-or-die"
          + "M" PopUp "Window"
          + "C" PopUp "Window"
          + "D" Close

          #     But Cont Mod Function
          Mouse 1   R    A   Menu "Root" Nop
          Mouse 2   R    A   Menu "Window" Nop

          #     But Cont Mod Function
          Mouse 0   1    A   Function "windowops-or-die"

          Mouse 2   I    A   Menu "Window" Nop

          Key Left  A    SC  CursorMove -1  0
          Key Right A    SC  CursorMove +1 +0
          Key Up    A    SC  CursorMove +0 -1
          Key Down  A    SC  CursorMove +0 +1

          Key Left  A    SM  CursorMove -10 +0
          Key Right A    SM  CursorMove +10 +0
          Key Up    A    SM  CursorMove +0 -10
          Key Down  A    SM  CursorMove +0 +10

          Key F1    A    M   Popup "Window"
          Key F2    A    M   Popup "Root"
          Key F3    A    M   Lower
          Key F4    A    M   Destroy
          Key F5    A    M   Next [*] focus
          Key F6    A    M   Prev [*] focus
          Key F7    A    M   Move
          Key F8    A    M   Resize
          Key F9    A    M   Iconify
          Key F10   A    M   Maximize

          Key L5    IW   N   RaiseLower
          Key L5    IW   S   Lower
          Key L5    IW   C   Raise
          Key L7    IW   A   Iconify