Sortie de CLFSWM 0809.

Posté par  (site web personnel) . Modéré par Nÿco.
Étiquettes :
10
25
sept.
2008
Serveurs d’affichage
Une nouvelle version de CLFSWM vient de voir le jour. CLFSWM (Common Lisp FullScreen Window Manager) est un gestionnaire de fenêtre écrit entièrement en Common Lisp qui a pour but de se faire oublier en présentant les fenêtres d'applications en plein écran sans décoration ni fioriture.

Il est basé sur tinywm et stumpwm et est distribué sous licence GPLv3.

CLFSWM est extrêmement dynamique : par défaut il n'y a qu'un cadre. Les autres cadres sont ajoutés au fur et à mesure suivant les besoins. Un cadre peut contenir des fenêtres ou d'autres cadres. Une fenêtre peut être présente dans plusieurs cadres. Ce qui permet différentes vue des mêmes fenêtres.

CLFSWM n'est pas à proprement parler un 'tiling window manager' puisque les fenêtres sont la plupart du temps maximisées mais la possibilité de les mettre en pavage (tiler) est présente. De plus, une fenêtre peut être flottante ou prise en charge par son cadre (maximisée, ­pavée…) Depuis la dernière annonce sur LinuxFr.org, beaucoup de changements ont été effectués.

Tout d'abord CLFSWM ne fait plus référence aux bureaux (workspaces). En effet, maintenant CLFSWM n'est constitué que de cadres ou de fenêtres d'applications. L'écran est constitué d'un cadre principal et de ses enfants. Chaque cadre peut contenir des fenêtres ou d'autres cadres. Le cadre principal est maximisé à l'écran sans décoration.

Chaque cadre peut arranger ses enfants de manière différente : les uns derrière les autres (à la Ion), en pavé, en colonnes avec une fenêtre principale (à la larswm).

Un agencement spécial pour le GIMP est aussi présent : les fenêtres en colonnes avec une fenêtre principale et un focus qui suit la souris.

Chaque cadre peut avoir une gestion du focus de la souris différent : clic pour avoir le focus, le focus suit la souris (sloppy focus), le focus suit la souris de manière stricte (seulement pour le cadre courant), la souris sélectionne le cadre en passant dessus.

De plus chaque cadre peut avoir un hook associé à la création d'une fenêtre pour lui indiquer ce qu'il doit faire de la nouvelle fenêtre : l'absorber, l'ignorer ou la placer dans un autre cadre...

Maintenant, utiliser CLFSWM est comme naviguer dans un arbre de cadres et de fenêtres. Il suffit d'entrer dans un enfant (cadre ou fenêtre) pour le maximiser.

Pour ce faire une idée, voila les touches par défaut pour naviguer dans CLFSWM :
  • Alt-Tab : circule à travers les enfants du cadre sélectionné ;
  • Alt-Droite/Gauche : circule à travers les frères du cadre sélectionné. C'est comme circuler entre différents bureaux pour un gestionnaire de fenêtre plus conventionnel ;
  • Alt-Haut : sélectionne le premier enfant du cadre courant ;
  • Alt-Bas : sélectionne le parent de l'enfant courant ;
  • Alt-Entrer : entre dans l'enfant courant et le maximise à l'écran;
  • Alt+Shift-Entrer : sort de l'enfant courant et maximise son parent.
Avec cette méthode il n'y a plus besoin d'un pager : on est dans le pager.

CLFSWM utilise toujours deux modes. Le mode principal avec très peu de raccourcis pour éviter les collisions avec les autres programmes (qui a dit Emacs ?).

Et un second mode avec beaucoup plus de raccourcis qui permettent de gérer les cadres et les fenêtres, le tout se faisant uniquement au clavier ou à l'aide de la souris. La liste des touches peut donner une idée de ce que l'on peut faire avec.

De plus, beaucoup de fonctions sont accessibles par un système de menu qui évite de retenir trop de raccourcis clavier.

Les coins de l'écran sont actifs dans CLFSWM. Ce qui permet d'avoir un Exposé comme dans Mac OS X en cliquant dans le coin en bas à droite ou un clavier virtuel en cliquant dans le coin en haut à droite ou un terminal à la Quake console en cliquant en haut à gauche, etc.

CLFSWM étant écrit en Common Lisp, le fichier de configuration est lui aussi en Common Lisp. En fait, on peut voir CLFSWM comme un gros fichier de configuration autour de quelques fonctions de la XLib. Un système de hook est présent mais tout est modifiable via le fichier de configuration, il suffit de regarder le code source et de redéfinir la/les fonction(s) voulue(s).

Des vidéos sont présentes sur le site pour se faire une idée plus précise. Et un trac est ouvert pour suivre le développement de CLFSWM.

Aller plus loin

  • # Intéressant !

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

    Tout ça m'a l'air riche en fonctionnaités et très intéressant ! Va falloir que je prenne un peu de temps pour l'essayer, même si jusqu'à présent je suis très satisfait de dwm.

    Par contre, le wiki/trac a l'air dans les choux présentement...
  • # Pourquoi pas utilisable à la souris ?

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

    Je me demande toujours pourquoi ce genre de gestionnaire de fenêtre ne peux pas utiliser à la souris (c'est valable pour CLFSWM mais aussi pour awesome ou autre). Pourquoi ne peux-t-on pas utiliser la souris pour splitter un cadre en deux, changer l'agencement des cadres ...?

    Ce genre de gestionnaire de fenêtre m'intéresse beaucoup, j'aime beaucoup l'interface de Blender justement pour cet aspect qui permet de tout avoir à l'écran, mais je n'aime pas trop être forcée d'utiliser le clavier.

    Surtout que maintenant que j'ai un portable avec un trackpad à coté du clavier, je trouve la souris bien plus agréable. Et puis, comme je personnalise au maximum ma carte du clavier, les raccourcis clavier ne sont jamais sur de fonctionner chez moi (dernièrement je n'avais pas de touche Alt, je l'avais remplacée par AltGr, maintenant je l'ai mappée sur Ctrl car c'est quand même pratique des fois ...)

    Je sais, propose un patch ... mais c'est pas très urgent, je préfèrerais patcher mon lecteur de mail (claw-mail) pour avoir une interface qui freeze un peu moins (et une IDM digne de ce nom), mais je crois que je vais tout simplement créer le mien :)
    • [^] # Re: Pourquoi pas utilisable à la souris ?

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

      Ben il y a erreur sur le gestionnaire de fenêtres. CLFSWM gère très bien la souris : beaucoup d'actions sont faisable avec elle.
      Par exemple, on peut déplacer ou retailler un cadre ou une fenêtre avec Alt+bouton gauche/droit.
      Pour créer un nouveau cadre il suffit de le dessiner avec la souris sur le fond d'écran. Les coins de l'écran réagissent aux clics de la souris, etc...
      Toutes ses actions sont aussi faisables rien qu'avec le clavier.
      D'ailleurs c'est une des raisons qui m'ont fait quitter Stumpwm parce que la souris n'est pas gérée de base : c'est un Ratpoison en Common Lisp.
      • [^] # Re: Pourquoi pas utilisable à la souris ?

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

        désolée, j'ai testé trop vite sans tester. En fait c'était plus un commentaire pour awesome et j'ai considéré trop rapidement sans doute que les deux WM étaient similaires sur ce point.
        • [^] # Re: Pourquoi pas utilisable à la souris ?

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

          J'en rajoute une couche. Mais si tu veux faire une action particulière avec la souris, il suffit de définir la fonction que tu veux puis de l'associer à un bouton :

          par exemple

          (defun mon-action-avec-la-souris ()
            "La documentation de la fonction"
            (le code ici))

          (define-main-mouse (1 :control) 'mon-action-avec-la-souris)


          Ici, control + le bouton gauche de la souris lance mon-action-avec-la-souris dans le mode principal.
        • [^] # Re: Pourquoi pas utilisable à la souris ?

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

          Mais c'est pareil pour awesome, tu peux faire à peu près tout à la souris aussi. ;)
          • [^] # Re: Pourquoi pas utilisable à la souris ?

            Posté par  . Évalué à 2.

            Bonjour,
            Je joue avec clfswm depuis... ce matin, installé grâce au script que tu as posté (merci hocwp!). Mais ayant fait plusieurs tentatives je n'ai réussi qu'une seule fois à l'utiliser; les autres fois j'ai la première fenêtre mais aucun raccourci ni de clavier ni de souris n'a marché, et je ne sais pas pourquoi une fois ça fonctionnait bien au contraire...
            Bien sûr je peux lancer une app dans cette fenêtre, même plusieurs de suite, mais impossible de définir une autre fenêtre ni de circuler entre mes applications.
            Il n'y a pas d'incompatibilité avec xbindkeys quand même?

            Un peu perdu quand même...

            (ubuntu 8.04)
            • [^] # Re: Pourquoi pas utilisable à la souris ?

              Posté par  . Évalué à 2.

              Re-bonjour,
              Par tâtonnement j'ai fini par enlever numlockx de mon fichier .xsession, et là tout semble aller pour le mieux....

              Très agréable à utiliser ce clfswm, un grand merci donc à hocwp en personne et à LISP en général.
              (s'il y a un truc pour avoir quand même numlockx au démarrage je serai bien sûr preneur)

              jean
              • [^] # Re: Pourquoi pas utilisable à la souris ?

                Posté par  . Évalué à 1.

                Re-re!
                En fait ce n'est pas le programme numlockx qui bloque chez moi, mais l'activation du pavé numérique même faite à la main; est-ce bien normal?

                jean
                • [^] # Re: Pourquoi pas utilisable à la souris ?

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

                  Salut sbaboc, content que clfswm te plaise :)
                  Ton problème avec le pavé numérique est tout à fait normal : je n'ai pas encore fais comme dans xbindkeys où on peut ignorer le numlock du pavé numérique.
                  Pour l'instant la version bourrine pour gérer le pavé est de rajouter :mod-2 à toutes les association de touches.
                  Je rajoute ça dans la TODO liste pour la prochaine version (et dans le git/svn sous peu).
                  • [^] # Re: Pourquoi pas utilisable à la souris ?

                    Posté par  . Évalué à 1.

                    Salut,
                    Bien compris pour le pavé numérique; autre dommage collatéral mais pas mortel :-) :
                    la touche menu qui remplace avantageusement M-x dans emacs ne fonctionne plus, à moins que je n'active le pavé numérique...

                    Mais je continue mes expériences,
                    à+,
                    • [^] # Re: Pourquoi pas utilisable à la souris ?

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

                      C'est normal aussi : la touche Menu sert à changer rapidement l'agencement d'un cadre dans clfswm.
                      Pour pouvoir t'en servir à autre chose, tu peux rajouter ceci dans ton fichier de configuration
                      ($XDG_CONFIG_HOME/clfswm/clfswmrc ou ~/.clfswmrc) :
                      (undefine-main-key ("Menu"))
  • # Performances ?

    Posté par  . Évalué à 1.

    Il serait intéressant d'avoir un ordre de grandeur des performances :
    - temps de boot
    - empreinte mémoire
    - ...

    Ce n'est pas parce que les choses sont difficiles que nous n'osons pas. C'est parce que nous n'osons pas qu'elles sont difficiles. - Sénéque

    • [^] # Re: Performances ?

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

      > Il serait intéressant d'avoir un ordre de grandeur des performances :
      > - temps de boot

      Le temps de charger le Lisp : quelques secondes pour CLisp un peu plus pour SBCL.

      > - empreinte mémoire

      Environ 2Mo pour CLisp, 30Mo pour SBCL/CMUCL.
      M'enfin CLFSWM passe la certification P133-32M : il est parfaitement utilisable sur ma vielle brouette de 133 MHz 32 Mo de RAM :)

      > - ...

      Il faut qu'en même noter que le compilateur Lisp reste chargé en mémoire. C'est comme si on chargeait GCC et que l'on permette la compilation à la volée avec un gestionnaire de fenêtre écrit en C.
  • # paquet debian ?

    Posté par  . Évalué à 2.

    bonjour !

    étant utilisateur de ion3 et celui-ci ayant quelques problemes au moins sur ma config, le concept de CLFSWM m'interesse beaucoup, vu qu'il semble bien plus general que ion3 (l'arbre de cadres me plait beaucoup !), et qu'il semble facile de refaire ion3 au moins partiellement comme un cas particulier de CLFSWM...bref, il est clairement dans ma liste "TO-TEST" :)

    mais pour le tester, il faut l'installer, et ne voulant pas le faire à la main, j'ai cherché un paquet debian...mais je n'en ai trouvé aucun, meme pas pour une version plus ancienne...il n'y a donc que l'installation à la main comme possibilité ? ou j'ai mal cherché ?
    • [^] # Re: paquet debian ?

      Posté par  . Évalué à -1.

      Non il yq des paquets pour les vraies distribs: slackware et archlinux.

      Mauvaise distro => change distro.
      • [^] # Re: paquet debian ?

        Posté par  . Évalué à 3.

        ta reponse est aussi fine et utile que ta signature....

        ....

        ah mince on est vendredi :D
    • [^] # Re: paquet debian ?

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

      Il n'y a pas encore de paquet Debian : je n'aime pas trop le fait de faire un paquet non officiel.

      Par contre j'ai fait un paquet binaire ici (testé sur Slackware et Ubuntu) :

      http://common-lisp.net/project/clfswm/clfswm-bin-0809.tar.gz

      Il suffit de l'extraire quelque part et de lancer le script clfswm à la place du gestionnaire de fenêtres.

      Par exemple pour le tester sur un display en parallèle il suffit de mettre dans le ~/.xinitrc :
      #!/bin/sh
      # xhost local:local ## si problème de protocole
      xterm

      puis dans une console
      startx -- :1
      et dans le xterm du display :1

      cd clfswm-bin-0809
      ./clfswm

      Sinon sous debian le test doit donner un truc du genre:
      apt-get install sbcl cl-clx-sbcl
      puis dans un terminal sans gestionnaire de fichier:
      tar xzvf clfswm-0809.tar.gz
      sbcl --load /ou/est/clfswm/load.lisp

      Il y a plus de détails sur le wiki, mais pour l'instant il est aux fraises... :(
      • [^] # Re: paquet debian ?

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

        J'ai oublié, mais la différence avec un paquet debian c'est qu'a aucun moment il est nécessaire d'être root pour faire le test. Tout peut se faire avec un utilisateur lambda.
      • [^] # Re: paquet debian ?

        Posté par  . Évalué à 2.

        merci !

        cela ne me regarde peut-etre pas, mais pourquoi tu devrais faire un paquet non-officiel ? pourquoi pas un officiel ?
        • [^] # Re: paquet debian ?

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

          Parce qu'il faut un mainteneur et que je n'ai pas envie de surchargé celui qui maintient déjà un de mes autres programmes (xbindkeys).
          Bon je vais demander chez debian vue qu'il semble y avoir une demande.
  • # vs Stumpwm

    Posté par  . Évalué à 3.

    J'utilise actuellement Stumpwm. Qu'est-ce que CLFSWM apporte par rapport a lui ?
    • [^] # Re: vs Stumpwm

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

      Stumpwm est vraiment un tiling window manager : on découpe l'écran en zones qui ne peuvent pas se superposer.
      Dans clfswm au contraire les cadres peuvent se superposer : leur coordonnés s'expriment de manière relative (en %) au cadre parent.
      L'autre différence est qu'un cadre de clfswm peut contenir d'autres cadres. Ce qui permet de grouper les applications pour naviguer rapidement entre elles.
      Un cadre peut agencer les cadres et les fenêtres qu'il contient de manière différentes (tiler, maximiser...)
      La gestion de la souris est prévue depuis le début dans clfswm (dans tous les modes), au contraire de stumpwm qui prône sont bannissement.
      clfswm gère aussi les fenêtres flottantes. N'importe quelle fenêtre peut être flottante ou prise en charge par son cadre.
      Comme exemple de différences, regarde comment se gère le GIMP dans clfswm (5ème lien dans la news) et comment tu le gère dans stumpwm.

      Sinon de manière (beaucoup) plus subjective, je trouve clfswm plus souple à utiliser que stumpwm.
  • # Le trac n'est plus aux fraises.

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

    Il est enfin de nouveau accessible ici : http://trac.common-lisp.net/clfswm/
  • # tutorial texte ?

    Posté par  . Évalué à 2.

    Et ça ne serait pas possible d'avoir un petit tutorial au format texte. Je ne connais pas du tout ce genre de wm et j'ai envie de tester. J'arrive à lancer X et démarrer clfswm, à créer des frames. Ok. Et après ? Comment on fait pour démarrer une application dans une frame ? Comment on fait pour passer d'une frame à une autre ?
    Bref, les tutorials en video c'est bien mais un petit fichier texte qui décrit les manips de base, ça serait une *très* bonne idée. Une fois les quelques manips de base comprises, j'irai voir les videos pour en savoir plus.
    Merci d'avance ;-)
    • [^] # Re: tutorial texte ?

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

      Ben tu peux faire beaucoup de choses avec les menus (control+> et > ou m par defaut) : http://common-lisp.net/project/clfswm/menu.html
      Ensuite la liste des touches t'indique ce que tu peux faire avec le clavier _et_ la souris dans chacun des modes : http://common-lisp.net/project/clfswm/keys.html
      Et enfin la liste des actions avec les coins de l'écran est indiquée ici :
      http://common-lisp.net/project/clfswm/corner.html

      Sinon les touches que j'utilise beaucoup:
      * Control+> et o pour ouvrir la prochaine fenêtre dans un nouveau cadre.
      * Control+> et ! pour exécuter une commande quand je n'ai pas un terminal d'ouvert.
      Après la navigation se fait comme indiqué dans la news.
      Pour déplacer une fenêtre d'un cadre à l'autre, c'est control+x/c pour couper/copier puis control+v pour coller. Tout ceci dans le second mode (control+>).

      Je vais rajouter une page sur le wiki qui est enfin (pour l'instant) accessible :)
      • [^] # Re: tutorial texte ?

        Posté par  . Évalué à 2.

        Merci.
        Je m'y perd encore un peu et je suis parfois bloqué (genre quand je clique sur une application ça passe à la suivante !) mais je vais persévérer. Je vais surtout vite regarder pour définir mes bindings habituels pour avoir la base, le reste viendra après ;)
        • [^] # Re: tutorial texte ?

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

          Quand tu cliques sur une application, elle devient la principale et si le cadre la prend en charge, il va la mettre en évidence. C'est le comportement de larswm par exemple, où la fenêtre principale est toujours en plus grand à gauche des autres applications qui sont organisées en colonne.
          Sinon merci pour ta persévérance parce que clfswm demande sûrement un temps assez long d'adaptation. Mais ça ne devrais pas être trop dur si tu a déjà joué avec d'autres tiling wm (larswm, ion, dwm...).
    • [^] # Re: tutorial texte ?

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

      Voila un début d'explications en *texte* ici : http://trac.common-lisp.net/clfswm/wiki/Start

      Un version française est aussi prévue. N'hésite pas à corriger ou à demander des infos complémentaires.

Suivre le flux des commentaires

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