CLFSWM - Un gestionnaire de fenêtres en Common Lisp.

Posté par  (site web personnel) . Modéré par Florent Zara.
Étiquettes :
0
7
jan.
2008
Serveurs d’affichage
Dans le but d'avoir un gestionnaire de fenêtre simple, qui se fait oublier, est né CLFSWM. Comme son nom l'indique, CLFSWM est écrit entièrement en Common Lisp; il a comme base tinywm et s'inspire de stumpwm pour le principe des cadres. CLFSWM est distribué sous licence GPLv3.

Le principe de CLFSWM est que l'affichage est divisé en espaces de travail, groupes et fenêtres. Les fenêtres étant elle-mêmes contenues dans des groupes. Par défaut, un groupe est maximisé à l'écran sans bouton, menu ou décoration, rien d'autre que l'application en plein écran. Lorsqu'un groupe de fenêtres n'est pas maximisé, alors il peut être déplacé, redimensionné etc Les groupes et les bureaux sont créés à la volée quand on en a besoin. Il peut y avoir plusieurs fenêtres par groupe et une fenêtre peut apparaître dans plusieurs groupes ou bureaux (ce qui est pratique pour avoir différentes vues des mêmes fenêtres). CLFSWM est extrêmement dynamique : au démarrage du programme il n'y a qu'un seul bureau et qu'un seul groupe. Les autres bureaux et groupes sont créés ou enlevés à la volée quand le besoin s'en fait sentir. On peut bien sûr créer des bureaux/groupes par défaut via un fichier de configuration.

Deux modes permettent de le gérer. Le mode principal avec très peu de raccourcis pour éviter les collisions avec les autres programmes (qui a dit Emacs ?). Et un second avec beaucoup plus de raccourcis clavier qui permettent de gérer les groupes (fill, pack, resize...), les bureaux et les fenêtres. La liste des touches peut donner une idée de ce que l'on peut faire. Tout ce qui est faisable dans le second mode peut aussi être fait à l'aide d'un 'pager' qui présente une vue d'ensemble de tous les bureaux. Par ailleurs, CLFSWM est extensible à la volée grâce à une fenêtre d'évaluation ou avec un fichier de configuration.

Pour se faire un idée, des vues d'écran et une vidéo de démonstration sont disponibles sur le site de CLFSWM. Pour le tester il suffit d'installer une implémentation de Common Lisp (clisp, sbcl ou cmucl par exemple) et de charger le fichier load.lisp.

Aller plus loin

  • # Pas tres sexy

    Posté par  . Évalué à 3.

    Je ne sais pas ce que ca vaut au niveau ergonomie (quoique je n'ai pas compris grand chose à la video), mais même sans parler d'effet spéciaux à la compiz, on ne peut pas dire que ce soit très agréable à regarder.

    Est ce que le principe apporte quelquechose de nouveau par rapport aux wmii, ratpoison et autres ion3 ?
    • [^] # Re: Pas tres sexy

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

      Ah, oui c'est vrai que c'est tout sauf sexy si on le compare à Compiz vu que le but est de ne pas voir le gestionnaire de fenêtre.
      Comparé aux autres wm, il me semble un peut plus souple que ratpoison/stumpwm. Il reprend le principe des cadres de ion3 sans afficher les onglets. Et il gère un peu moins les fenêtres que wmii, même si se mode de fonctionnement reste faisable (d'ailleurs c'est ce qu'essai de montrer la video).
      Et au niveau ergonomie il me convient, normal non ? :)
      • [^] # Re: Pas tres sexy

        Posté par  . Évalué à 2.

        c'est pour cela que je precisais:
        même sans parler d'effet spéciaux à la compiz

        Je voulais parler de l'aspect graphique du placement et redimensionnement des cadres et fenêtres, des couleurs ainsi que des polices de caractères utilisées.
        • [^] # Re: Pas tres sexy

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

          Je suis passé d'un XFCE + Compiz à un environnement AWESOME y a quelques semaines ... le placement et le redimensionnement des fenêtre n'est pas vraiment un problème vu que dans mon cas ... je l'utilise tout simplement plus du tout, le WM le fait lui même, et moi je me concentre sur l'utilisation des mes applications plutôt que sur le placement des mes fenêtres.

          C'est un peu la même approche dans ce WM.

          Perso, je repasserais pas sur un WM "classique" ;-)
          • [^] # Re: Pas tres sexy

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

            C'est effectivement le principe de clfswm sans le côté automatique. Les groupes peuvent être manipulés à la souris ou au clavier pour se placer sans laisser de place perdue.
            Cette approche me semble plus souple qu'avec des gestionnaires comme AWESOME mais ça demande un tout petit peu plus de travail pour placer les fenêtres comme on le veut.
            D'ailleurs on peut programmer le comportement que l'on veut. Je donne l'exemple d'un placement à la larswm qui est très facile à simuler.
            (voir le fichier de configuration en exemple : http://common-lisp.net/cgi-bin/viewcvs.cgi/*checkout*/clfswm(...) )
        • [^] # Re: Pas tres sexy

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

          Pour le placement et le redimensionnement il ne faut pas perdre de vue que le gestionnaire de fenêtre gère plusieurs fenêtres dans le même groupe. La gestion d'une fenêtre seule dans sont groupe est fluide (en tout cas je ne vois pas de différence avec dwm par exemple). Mais c'est vrai que je peut retravailler ce point en cachant les fenêtres non visibles.
          Pour les couleurs j'ai fais de mon mieux, les couleurs précédentes du pager me semblant encore pires :)
          Et pour la font, j'en ai mis une par défaut présente sur tous les systèmes mais ça reste configurable bien évidement (faut que je regarde se que mettent les autres par défaut).
      • [^] # Re: Pas tres sexy

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

        Sais-til aussi gérer les fenêtres flotantes ? wmii se débrouille pas trop mal mais a un problème tout de même a ce niveau car il n'est pas facile de gérer les différents plan des fenêtres flotantes (ni de les fermer).

        Je sais que c'est bizarre comme question mais je n'utilise les fenêtres flotants que pour quelques applications mais qui me sont fondamentales, par exemple clusterssh qui 'ouvre en parallèle 50 fenêtres sur 50 machines à la fois. J'ai besoin de pouvoir voir les 50 fenêtres en même temps. Tant ion que wmii ne savent pas faire cela en dehors du mode flotant.
        • [^] # Re: Pas tres sexy

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

          Je ne connais pas clusterssh. Par contre il n'y a pas de notion de fenêtre flotante dans clfswm. Une fenêtre appartient à un ou plusieurs groupes et c'est le groupe qui est redimensionnable.

          Pour ouvrir plusieurs fenêtres d'un coup clfswm propose une fonction qui permet d'ouvrir la prochaine fenêtre dans un nouveau bureau et les autres fenêtres dans de nouveaux groupes. On obtient un groupe par fenêtre dans un nouveau bureau. Après il ne reste plus qu'à tilé ce bureau par exemple. C'est ce que j'utilise quand j'ai besoin de suivre en même temps les logs de plusieurs programmes lancés automatiquement.
  • # Meilleur des deux mondes

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

    Il y a bien longtemps que je n'ai pas utilisé ce type de WM.

    Personnellement, j'attend le WM qui alliera le meilleur des deux mondes, sans oublier l'esthétique. Cela signifie :
    - un WM qui offre des fonctionnalité pour améliorer ma productivité (notion de frame, de groupe, fixé/flottant, full-screen, contrôle sans souris...)
    - un WM qui permette d'accéder à toutes ces fonctionnalité y compris avec la souris (pour les jours où ma mémoire flanche, ou pour les actions peu courantes)
    - un WM esthétique (qui s'intègre bien dans mon bureau Gnome)
    - un WM qui se configure "automatiquement" (il faut qu'il mémorise les groupes que je fait, qu'il se souvienne que j'aime avoir Emacs en plein écran, sans que j'ai à ouvrir un éditeur texte pour programmer dans un langage de script barbare).

    Pour moi c'est ça le St Graal du WM.

    A une époque, j'aimais beaucoup Ion, mais il fallait tout se coder à la mimine, c'était vraiment pas drôle.

    Si vous connaissez un tel WM (ou un WM qui a cet objectif).
    • [^] # Re: Meilleur des deux mondes

      Posté par  . Évalué à 3.

      Tu as pensé à E17 ?
      L'esthétique est au rendez vous, il est très configurable, la souris n'est pas indispensable, mais tu peux très bien l'utiliser pour à peut près tout faire.

      Il gère très bien les fenêtre fixes, plein écran, etc...mais pas les groupes ou en tout cas je me souviens pas l'avoir vu.
      Sa grande force, c'est que TOUT fonctionne sous forme de module, tu peux désactiver tout ce qui ne te sers pas.

      Tout se configure via une interface, c'est juste qu'il faut jongler entre plusieurs menus pour arriver là où tu le souhaite.

      J'adore cet environnement, je l'ai beaucoup utilisé avant que les paquets Debian ne foirent, je suis revenu à KDE et depuis je cherche un gestionnaire de fenêtre proche de FVWM le côté configuration à la main en moins.

      Parce que j'allais oublier, mais E17 est quand même en chantier depuis plusieurs années et c'est pas près d'être fini et il arrive parfois que les paquets fournis foirent.
    • [^] # Re: Meilleur des deux mondes

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

      > - un WM qui offre des fonctionnalité pour améliorer ma productivité (notion de frame, de groupe, fixé/flottant, full-screen, contrôle sans souris...)
      Ok c'est ce que fait clfswm.

      > - un WM qui permette d'accéder à toutes ces fonctionnalité y compris avec la souris (pour les jours où ma mémoire flanche, ou pour les actions peu courantes)
      Tout est faisable à la souris dans le second mode par contre comme il n'y a pas de décoration il faut faire des alt+bouton.

      > - un WM esthétique (qui s'intègre bien dans mon bureau Gnome)
      Là ce n'est pas encore possible. Mais j'ai commencé à suivre les recommandations de Net WM (mais ce n'est pas une priorité).

      > - un WM qui se configure "automatiquement" (il faut qu'il mémorise les groupes que je fait, qu'il se souvienne que j'aime avoir Emacs en plein écran, sans que j'ai à ouvrir un éditeur texte pour programmer dans un langage de script barbare).
      Ca ce n'est pas très dur à rajouter vu que l'arbre des bureaux est connu. Il suffit de sauver la variable *workspace-list* de manière compréhensible à la fin de la session. Mais on peut déjà créer au demarrage un groupe dans tel bureau avec une géometrie donnée dans lequel on lance telle application.

      Le principe de clfswm est que toutes les fenêtres sont maximisées à l'ecran (c'est le cas de la majorité des applications que j'utilise). Et si on veut des fenêtres plus petites, il suffit de les retailler pour les mettre où on veut (exemple : Le Gimp).
      • [^] # Re: Meilleur des deux mondes

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


        > - un WM qui permette d'accéder à toutes ces fonctionnalité y compris avec la souris (pour les jours où ma mémoire flanche, ou pour les actions peu courantes)
        Tout est faisable à la souris dans le second mode par contre comme il n'y a pas de décoration il faut faire des alt+bouton.


        En fait, il y a une exigence que je n'ai pas exprimé : l'intuitivité. C'est un peu à ce que je pensais quand j'écrivais que mon WM idéal doit aussi être manipulable à la souris. On a tous plus ou moins l'habitude de tirer sur un bord de la fenêtre pour la retailler ou cliquer sur la barre de titre pour la déplacer. A mon sens, c'est important qu'un WM reprenne ces possibilités. L'idée, c'est qu'ainsi, n'importe qui peut se servir à peut près normalement (et immédiatement) du WM. Si pour bouger une fenêtre il faut lire la doc pour découvrir que c'est un Alt+Button1, même si ce n'est pas compliqué, c'est pas pratique.

        De plus, utiliser des combinaisons de touches pour des actions WM (aussi simple que Alt+Button) risque d'empécher l'utilisation de certaines appli, non ?
        Je me souviens de mes débuts avec Ion qui, configuré de base, m'empéchait de manipuler Emacs (certains raccourcis Emacs étant interceptés et interprétés par Ion).
        • [^] # Re: Meilleur des deux mondes

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

          Ah, bien moi c'est l'inverse, je sais que dans beaucoup de WM Alt+Bouton1 déplace la fenêtre et c'est plutôt pour enlevé le titre de la fenêtre que je suis obligé de lire la doc.
          C'est vrai que dans ce sens clfswm n'est pas intuitif. Mais une fois la prise en main faite, on (je) n'a plus besoin des titres des fenêtres qui deviennent plus génant qu'autre chose.

          J'ai aussi rencontré ce problème de conflit avec les applications dans d'autres WM. C'est pour ça que clfswm ne gère pas la souris et très peu de touches dans le mode normal. Par contre il prend intégralement le contrôle de la souris et du clavier dans le second mode.
          Donc : mode normal=Application ; second mode=Gestion des fenêtres. Ce qui evite les conflits.
          C'est le principe utilisé par stumpwm ou screen par exemple.
          Le plus dur aura été de trouvé une touche (Alt+t) par defaut qui fait passer dans le second mode, qui est valide sur tous les claviers et qui n'a pas de conflit avec les autres applications.
          • [^] # Re: Meilleur des deux mondes

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

            Le plus dur aura été de trouvé une touche (Alt+t) par defaut qui fait passer dans le second mode, qui est valide sur tous les claviers et qui n'a pas de conflit avec les autres applications.


            Perso, lorsque j'utilisais Ion, j'avais choisi la touche "Windows" : aucune appli (que je connais) ne l'utilise et ça fait un bon mémo (la touche "Windows" permet de gérer les fenêtres).
            • [^] # Re: Meilleur des deux mondes

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

              Oui, moi j'utilise control+< (c'est ce que j'ai trouvé de plus rapide : faisable avec la main gauche). Par contre pour distribué clfswm j'ai eu des problèmes avec des gens qui non pas de clavier français. J'utilise aussi le twosuperior (du coup je ne peux plus le taper :) ou les touches accentuées qui ne sont pas présentes sur tous les claviers. Donc j'ai fais une répartition des touches que je n'utilise pas mais qui passe normalement sur tous les claviers.
          • [^] # Re: Meilleur des deux mondes

            Posté par  . Évalué à 2.

            > problème de conflit avec les applications

            J'apprécie beaucoup ce type de gestionnaire de fenêtres, malheureusement je retrouve toujours le même soucis : un conflit entre le mode plein écran géré par l'application et celui du WM. Par exemple, là je suis sous Awesome et je poste avec Epiphany, F11 pour le mode plein écran et paf (non pas de chocapic) les barres d'icones / signets disparaissent bien mais l'applie ne passe pas en plein écran et rappuyer sur F11 ne fait pas réapparaitre mes barres :/. C'est encore plus flagrant avec les lecteurs de vidéos comme mplayer, vlc où le comportement peut devenir complètement farfelue (vidéo qui disparrait complètement !).

            Un point critique aussi c'est la gestion des icones de notification. Je n'en suis pas fan, mais un WM qui ne les affiche pas correctement devient inutilisable si l'on utilise des logiciels comme Amarok, Basket, Gajim ...

            Je pense tester clfswm (comment ça se prononce ça ? ^^) dans la semaine, peut-être que ce serat enfin la perle qui répond à tous mes besoins. :)
            • [^] # Re: Meilleur des deux mondes

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

              Sous clfswm ce sera la même chose à une grosse différence près c'est que le groupe que tu utilises est réellement en plein écran. Donc les barres disparaissent et l'application est en plein écran si le groupe l'est. Par contre tu peux réduire/maximiser le groupe et epiphany suit le mouvement (dans sont état maximiser (sans barres)). Rho une vidéo serait plus claire :)
              Pour vlc, mplayer je n'est pas constaté de problème mais si tu testes clfswm et que tu en vois, je suis vraiment prenneur de tout retour.
              Pour les icones de notification, il me semble avoir vu que ceux de thunderbird marchaient, je n'ai pas testé avec les autres programmes mais clfswm respecte les 'voeux' des fenêtres qui ne doivent pas être dans un groupe. Donc à voir.
              Sinon je le prononce lettre par lettre même si je ne l'ai pas encore dit tout haut :)
    • [^] # Re: Meilleur des deux mondes

      Posté par  . Évalué à 2.

  • # WikiPedia a besoin de nous !

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

    Dites, c'est la dèche sur Wikipedia concernant les Window Manager. Pourtant, ce serait un bon média pour y lister tout ce beau monde, et faire une liste des WM dynamiques (tiling window manager).

    Allez allez, tous sur Wikipedia : http://fr.wikipedia.org/wiki/Gestionnaire_de_fen%C3%AAtres

Suivre le flux des commentaires

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