WMFS 2 est disponible

Posté par  (site web personnel) . Édité par Nÿco, Benoît Sibaud et Xavier Teyssier. Modéré par Nÿco. Licence CC By‑SA.
Étiquettes :
26
18
jan.
2012
Serveurs d’affichage

Extrait de journal de discussion sur IRC :

 19:06 <xorg62_> WMFS2 dans le master \o/

Traduction : la version 2 de WMFS est sortie, c'est par conséquent une joie intense palpable qui s'exprime aujourd'hui dans l'atmosphère.

Non ce n'est pas une fausse annonce, la nouvelle version tant attendue de WMFS2 est bien sortie ce lundi 16 janvier ! Qu'apporte-t-elle ? Pourquoi une nouvelle version ?

Pour information ou rappel, WMFS est l'acronyme de Window Manager From Scratch. Il s'agit d'un gestionnaire de fenêtres libre (licence BSD) pour X11, du type « tiling », comme Ion et Awesome par exemple.

Nouvelle version, nouveau code

xorg62 avait décidé il y a quelques mois de reprendre le code de WMFS de zéro, afin de repartir sur une base saine et une architecture propre. Ayant désormais un cahier des charges bien défini pour ce bijou des tiling window managers, il fallait donc écrire un code en conséquence, là fût le but premier de WMFS2.

Ainsi, cette nouvelle version dispose d'une architecture toute nouvelle, et toute propre. Cela signifie donc : de nouvelles fonctionnalités, d'anciennes fonctionnalités améliorées, et d'autres à venir.

Un point sur WMFS1

Actuellement, si vous avez WMFS1, vous disposez des fonctionnalités suivantes :

  • Différentes dispositions dynamiques
  • Un mode de pavage manuel (le splitmode)
  • Une barre d'infos avec :
    • Liste des tags
    • Menu disposition
    • Une barre de sélection (optionnelle, permet d'afficher le titre du client actuellement sélectionné, en cliquant dessus on obtient un menu contenant tout les clients du tag courant)
    • Une barre d'état (permet d'afficher différentes informations dans la barre d'info, via une XProp)
  • Des tags (avec possibilité de cacher les tag sans aucun client, ainsi que le tagging dynamique)
  • Un lanceur (avec complétion, possibilité de configurer la commande de lancement, pour par exemple lancer directement une commande WMFS)
  • Une zone de notification (optionnelle)
  • Une configuration aisée

Les nouveautés de WMFS2

Pavage manuel

La plus importante des nouveautés est au niveau du pavage (tiling), désormais il est entièrement manuel (il fut appelé un temps split layout). Les fenêtres sont séparées automatiquement (verticalement ou horizontalement selon la taille du client) et vous pouvez les redimensionner comme bon vous semble.

La technologie des réglages précédents (presets)

Mais ce n'est pas la seule nouveautés, xorg62 a introduit le concept des presets, un historique des dispositions des clients. Ainsi lorsque vous redimensionnez un client, vous pouvez revenir à la disposition précédent le redimensionnement, ingénieux non ?

Le tabbing

Plusieurs clients dans une seule frame ? C'est désormais possible, vous pouvez tabber vos clients dans toutes les directions, et lorsque vous souhaitez les untabber, ces derniers reprennent leurs anciennes places.

Les infobar

Oui, j'ai bien dit les. Avec l'apparition de la section bars dans la configuration, on peut ainsi créer de multiples barres d'info. Dans cette section de la configuration, on peut donc nommer chaque infobar et choisir quels éléments seront présents dedans :

 [bars]
      # Elements :
      # t - Tag list
      # s - Status
      # more elements are coming


      [bar]
           name = "topbar"
           screen = 0
           position = 0
           elements = "t"
           theme = "default"
      [/bar]


      [bar]
           name = "botbar"
           screen = 0
           position = 0
           elements = "s"
           theme = "other_theme"
      [/bar]
 [/bars]

Apparition de la section themes

Notre cher xorg62 a donc concentré toutes les options graphiques (couleurs, polices, etc.) dans une section de la configuration. Mieux, il a introduit la possibilité de créer plusieurs thèmes, vous pouvez donc choisir un thème spécifique pour une barre d'info en particulier, ou alors définir (à l'aide des règles) un thème différent pour certaines applications, les possibilités sont multiples !

 [themes]
      [theme]
           name = "mon_theme"


           font = "fixed"


           #...
      [/theme]


      [theme]
           name = "autre_theme"


           font = "terminus"


           # ...
      [/theme]
 [/themes]

Le FIFO

C'est le seul endroit de WMFS2 sur lequel j'ai participé. Vous vous souvenez de wmfs -s et de wmfs -c ? Cela vous permettait d'envoyer un nouveau texte d'état (statustext), et de lancer quelques fonctions de WMFS.

Ceci a été remplacé par un FIFO :

 $ echo "spawn urxvt" > /tmp/wmfs-$DISPLAY.fifo
 $ echo "status <infobar name> <statustext>" > /tmp/wmfs-$DISPLAY.fifo

Bon, et maintenant, il vous reste plus qu'à prendre votre cher conky, à lui faire afficher sur la ligne de commande
"status <infobar name> ..." et enfin :

 $ conky > /tmp/wmfs-$DISPLAY.fifo

Les possibilités sont encore une fois multiples !

Les choses manquantes, mais qui vont arriver

Le lanceur, la zone de notification et certaines uicb (user interface callback) n'ont pas encore été implémentées, mais cela ne saurait tarder.

Conclusion

Je vous invite à tester cette nouvelle version qui promet d'être encore plus énorme que la première !

Aller plus loin

  • # WMFSFS

    Posté par  . Évalué à 10.

    xorg62 avait décidé il y a quelques mois de reprendre le code de WMFS de zéro […].

    Ce qui fait de WMFS 2 : « Window Manager From Scratch From Scratch ».

  • # La terminaison "fs"...

    Posté par  . Évalué à 10.

    La terminaison "fs" est trompeuse. Moi ça me fait penser d'abord à un système de fichiers. En lisant juste le titre, je me suis dit "tiens un nouveau système de fichiers... euh... spécial pour Window maker ?". :)

  • # FIFO

    Posté par  . Évalué à 9.

    En ce qui concerne le FIFO, c'est pas un peu risqué d'avoir un fichier dans /tmp avec un nom prédictible? Il pourrait être créé par un malfrat juste avant que WMFS2 ne le crée, ce qui ouvre la voie à toutes sortes de manigances...

  • # Possibilité

    Posté par  . Évalué à 2.

    WMFS2 me semble très intéressant. Je me demande juste s'il est possible de prédéfinir un pavage, je m'explique ce que j'aime c'est pouvoir dire « Je donne tel tag à ce client et il iras dans tel frame ». C'est, avec le tabbing, pour moi la fonctionnalité ultime qui me ferrais passer à un nouveau WM (note, je sais ça existe mais j'ai pas encore pris le temps de tout essayé, j'ai tenté avec xmonad, mais ça configuration est assez complexe je trouve).

    Enfin mais c'est secondaire pour moi est-il possible de gérer de multiples écrans dans WMFS2 ? Dans awesome j'aime beaucoup avoir une série de tag dans un écran et une autre dans l'autre.

    Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

    • [^] # Re: Possibilité

      Posté par  (site web personnel) . Évalué à 2.

      « Je donne tel tag à ce client et il iras dans tel frame »

      Actuellement impossible, désolé. Tu peux toujours faire une feature request sur le bugtracker.

      est-il possible de gérer de multiples écrans dans WMFS2 ?

      Ou bien évidement :)

      https://link-society.com - https://kubirds.com

    • [^] # Re: Possibilité

      Posté par  (site web personnel) . Évalué à 4. Dernière modification le 19 janvier 2012 à 05:57.

      Kwin le fait. Active le dallage (il y a plusieurs comportements pré-définis, prends celui que tu préfères, et de toutes façons ils sont tous modifiables) Lorsque tu lances une app pour la première fois : click droit sur son kwin : dans les multiples options de configuration tu peux choisir la taille la position le bureau, etc.. Ces fonctions couplées au dallage, et sa configuration spécifique, te permettront d'obtenir : "prédéfinir un pavage" et "Je donne tel tag à ce client et il iras dans tel frame". Perso n'étant pas un pur amateur de tiling, je préfère le mode "floating" : tiling au lancement, pour le placement par défaut, mais n'empêche pas des fenêtres surperposées si besoin

      • [^] # Re: Possibilité

        Posté par  . Évalué à 2.

        Ça tombe bien je voulais re-tester KDE auquel je n'ai pas touché depuis 4.0 ou 4.1. Par contre je vais tester la version 4.4 parce que je suis sous Debian Stable.

        Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

        • [^] # Re: Possibilité

          Posté par  . Évalué à 2.

          Faut regarder à partir de quelle version le tilling est apparu, je ne suis pas certain que ce soit si vieux. Il serait peut-être préférable de passer par une version live-usb de chakra par exemple pour avoir la version 4.7.

          • [^] # Re: Possibilité

            Posté par  (site web personnel) . Évalué à 2.

            Ouhai, en plus je ne sais pas (n'ayant pas d'éléments comparatifs) si on peut faire du "vrai dallage pur et dur", il me semble avoir lu à plusieurs reprises que ce n'était pas ça. Bref, à voir par quelqu'un ayant l'habitude de ce type de comportement : vous :)

          • [^] # Re: Possibilité

            Posté par  . Évalué à 2.

            Me faire changer d'environnement de bureau c'est une chose de distribution ça en est une autre (et je en me vois pas backporter KDE …).

            Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

            • [^] # Re: Possibilité

              Posté par  . Évalué à 4.

              C'est juste pour faire un essai, je ne te propose pas de l'installer.

    • [^] # Re: Possibilité

      Posté par  . Évalué à 2.

      Tu peux peut-être regarder du côté de Subtle, c'est du tilling mais l'approche est un peu différente de ce qu'on voit ailleurs.

  • # problem pour lancer un terminal

    Posté par  . Évalué à 3.

    Je n'arrive pas a lancer un terminal, j'ai le message "execl(sh -c emacs").
    Je regarde dans le code => util.h:115
    Je test avec la fonction execl avec "/bin/bash" au lieux de la varaible sh, ça marche.
    Le problème vient du fait que getenv("SHELL") retourne "bash".
    Petite précision mon $SHELL = "bash" et je n'ai jamais eut de problèmes.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.