URL: https://linuxfr.org/news/wmfs-window-manager-from-scratch Title: WMFS, Window Manager From Scratch Authors: David Delassus Date: 2011年04月11日T18:05:58+02:00 License: CC By-SA Tags: tiling et gestionnaire_de_fenêtres Score: 45 WMFS, Window Manager From Scratch =========== WMFS est un gestionnaire de fenêtres dit **_tiling_**. Développé par *xorg62* (et quelques utilisateurs du logiciel) en C à l’aide de la ***XLib***. WMFS se distingue des autres *tiling window managers* sur de nombreux points. Il intègre notamment pas mal d’agencements (_layouts_), de belles fonctionnalités sur les _tags_ et possède une configuration très simple à prendre en main. C’est un WM souple et tout autant léger. ---- [Site officiel](http://wmfs.info) [Github](http://github.com/xorg62/wmfs) [WMFS, acte I : installation](http://msud.pl/pt) [WMFS, acte II : lancement d’applications à l’ouverture d’une session](http://msud.pl/zw) [WMFS, acte III : les raccourcis claviers](http://msud.pl/q4gE) [Wiki Archlinux](https://wiki.archlinux.org/index.php/WMFS) ---- I. Les layouts ----------- Là est le point fort de tout *tiling WM*, les _layouts_ sont les différents modes d’organisation des fenêtres sur votre environnement de travail. En plus des classiques *free*, *max* et *tile* (gauche, droite, haut, bas), on peut utiliser les _layouts_ suivant : * *Grid* : un simple tableau de n ×ばつ n fenêtres ; * *Mirror Vertical* : _layout_ développé pour une utilisation plus aisée de **[[GIMP]]**, la fenêtre principale est au centre de l’écran et les fenêtres secondaires sont placées à gauche et à droite ; * *Mirror Horizontal* : de même que le _layout_ *Mirror Vertical* sauf que les fenêtres secondaires sont placées au dessus et en dessous de la fenêtre principale. ***Remarque :** un nouveau _layout_ est en cours de développement et sera inspiré du traditionnel **{v}split** de Vim.* Vous connaissez sans doute le _layout_ « *magnifier* » dans [awesome](http://fr.wikipedia.org/wiki/Awesome_%28logiciel%29), qui permet de placer une fenêtre spécifique au dessus des autres qui sont organisées en _tile_. WMFS s’inspire de se _layout_ en implémentant le **above_fc**, une option qui permet de placer le client au dessus des autres et cela dans tout _layout_. II. Les tags ----------- Comme beaucoup de WM, WMFS gère les ***tags*** (bureaux virtuels), ainsi que le ***dynamic tagging*** (ajout / suppression de _tags_ à la volée). Il vous est possible de fusionner plusieurs _tags_, de définir un _layout_ spécifique aux nouveaux _tags_, d’échanger deux _tags_, etc.. III. Selbar / Statusbar / Launcher & Systray ----------- Dans un WM classique (non _tiling_) il est utile d’avoir une barre de tâches pour avoir une liste des applications ouvertes. Sous WMFS, on pense que le _tiling_ nous permet d’outrepasser ce besoin (on voit tout ce qui est à l’écran, donc pas besoin). Il a cependant été développée une option bien pratique, la **selbar** : * elle permet d’afficher dans l’*infobar* de WMFS le titre de la fenêtre ayant le _focus_ ; * on définit dans la configuration les événements souris suivants : * l’affichage d’un menu contextuel contenant la liste des clients ouverts (un clic sur l’un d’eux permet de lui donner le _focus_), * de donner le _focus_ au client suivant (dans la liste des clients) ou précédent. Vous connaissez peut‐être *awesome* et son immense souplesse vis‐à‐vis des informations affichées dans les *infobars*. WMFS implémente à peu près la même chose : ``` bash $ wmfs -s [screen number] Example : $ wmfs -s "hello world" $ wmfs -s 0 "hello" ; wmfs -s 1 "world" ``` Créez votre programme / script afin d’afficher le résultat des commandes voulues (trafic réseau, usage disque, lecture _mpd_...) dans l’*infobar*. Bien sûr, cela n’est pas limité à du texte tel quel. À l’aide de différents formats, on peut intégrer des images, des couleurs, des barres de progression, des graphes, etc.. ***Remarque :** je développe actuellement une bibliothèque C qui permet d’envoyer le nouveau statut à WMFS sans passer par `« wmfs -s »`.* En dernier point, WMFS possède également (comme la plupart des autres WM) un lanceur d’application (prompt dans l’*infobar* permettant d’exécuter diverses commandes) et une zone de notification (_systray_). IV. Une configuration aisée ----------- La configuration se fait via le ficher « **`~/.config/wmfs/wmfsrc`** », mais peut-être découpée en de nombreux fichiers (un par section par exemple) grâce à la fonction `« @include "/chemin/vers/le/fichier/à/inclure" »`. La syntaxe est extrêmement simple, le « parseur » développé par « ksh » est basé sur la syntaxe de _libconfuse_, mais simplifiée : ``` ini # Comments start with a '#' @include "other_file.rc" [section] option = "valeur" option2 = 18.2 [sous_section] option = true option2 = false [/sous_section] [/section] ``` Les espaces ne sont pas importants, comme vous pouvez le constater. Un fichier de configuration par défaut est fourni dans le dépôt _git_ (ou installé par votre gestionnaire de paquets, ou via `« make install »`, dans « **`/etc/xdg/wmfs/wmfsrc`** »). Il est possible de configurer les _layouts_ voulus, le nombre de _tags_ voulus et leurs propriétés, les raccourcis clavier et tout ce qui est couleurs, etc.. Si le fichier « **`~/.config/wmfs/status.sh`** » est présent **et** exécutable, alors il sera exécuté par WMFS pour remplir la *statusbar*. V. Conclusion ----------- WMFS, c’est en premier lieu très léger : * **7 886 lignes de code** ; * un exécutable de **203 Kio**. Et en second lieu, simple à installer : ``` bash $ git clone git://github.com/xorg62/wmfs.git $ cd wmfs $ ./configure $ make # make install ``` Je vous invite à regarder « `./configure --help` » pour plus d’infos. :) WMFS, c’est convivial : vous pouvez venir sur le salon [[IRC]] (**#wmfs** @ **irc.freenode.net**), là où de nombreux utilisateurs vous aideront à commencer avec WMFS. C’est un projet actif en continuel développement, selon moi l’essayer, c’est l’adopter ! :)

AltStyle によって変換されたページ (->オリジナル) /