PycaWM 0.1, un gestionnaire de fenêtres en python

Posté par . Modéré par Bruno Michel.
Tags :
0
22
déc.
2007
Serveurs d'affichage
PycaWM est né de l'envie de faire un gestionnaire de fenêtres aussi configurable (voire plus) que fvwm, sans pour autant devoir apprendre une syntaxe absconse pour le configurer.

PycaWM est écrit en python et distribué sous GPLv3. Il s'agit en fait d'un module python. Le fichier de configuration de PycaWM importe ce module et construit le window manager en python directement.

Un des points importants dans l'architecture de PycaWM est son aspect dynamique. Pratiquement tous les ajouts dans le fichier de configuration peuvent se faire pendant l'exécution du gestionnaire de fenêtres. Toutes les méthodes de PycaWM peuvent aussi être hookées ou changées pendant l'exécution. Ces modifications peuvent être effectuées par l'utilisateur grâce à un REPL. Les fonctionnalités de base d'un gestionnaire de fenêtres sont implémentées : iconification, maximisation (normale, verticale, horizontale, plein écran...), enroulement, gestion des fenêtres non reparentables (xmms ou gkrellm par exemple) et non-rectangulaires, raccourcis clavier, plusieurs types de focus (sloppy focus, click to focus...) et d'algorithmes de placement des fenêtres.

Des plugins sont aussi gérés, ils permettent d'étendre facilement le gestionnaire de fenêtres (pour avoir des bords collants, pour montrer les fenêtres iconifiées...).

Nous tenons également à respecter les standards en vigueur, que cela soit pour :
  • python : le code est conforme à la PEP 8 ;
  • X11 : ICCCM (en grosse partie implémentée) ;
  • freedesktop : XDG Base Directory Specification (implémentée), EWMH/wm-spec (juste une petite partie pour le moment).

Pour la liste complète des fonctionnalités ou pour plus d'informations, merci de vous reporter au wiki.

Aller plus loin

  • # Quelques questions...

    Posté par (page perso) . Évalué à 3.

    Je m'interroge sur plusieurs points quant à ce projet :

    - Est-ce qu'il est utilisable et qu'il est son intérêt ?

    - Est-ce que c'est codé dans le réel but de faire un truc utilisé ou c'est juste histoire de s'amuser à coder un gestionnaire de fenêtre ?

    - Vous travaillez dessus depuis combien de temps ? et vous êtes combien dessus ? 2 ?

    - Est-ce qu'en terme de performance c'est bon ? De manière générale, je m'interroge sur les performances des applications en python et je me demande donc si pour cette utilisation c'est un bon choix technique. (question naïve, pas une critique)

    J'aurais sans doute d'autres questions mais pour le moment ce sera tout.


    Bonne continuation.
    • [^] # Re: Quelques questions...

      Posté par . Évalué à 3.

      Bonjour (je suis aussi un des développeurs de PycaWM),

      > - Est-ce qu'il est utilisable et qu'il est son intérêt ?

      Le projet est d'ores et déjà utilisable (tu peux le tester pour voir les fonctionnalités). L'intérêt, c'est surtout de voir jusqu'où on peut aller avec un langage tel que python (donc dynamique). J'aime beaucoup les langages dynamiques (surtout Lisp en fait). Et je me demandais aussi ce que python avait dans le ventre.

      > - Est-ce que c'est codé dans le réel but de faire un truc utilisé ou c'est juste histoire de s'amuser à coder un gestionnaire de fenêtre ?

      Bien sûr le projet est fait pour être utilisé en vrai. Pour l'instant cependant, on est surtout en train de voir jusqu'à quel point on peut pousser le concept de dynamicité/configurabilité (Et quand tu vois jusqu'où vont d'autres window managers, je pense qu'on peut aller loin =).

      > - Vous travaillez dessus depuis combien de temps ? et vous êtes combien dessus ? 2 ?

      Les premières versions de PycaWM remontent à juin il me semble. Au début, c'était juste un portage rapide de lwm (un window manager minimaliste gérant le repareting). Après, vu que l'alpha marchait pas trop mal, on a rajouté des fonctionnalités manquantes, jusqu'à avoir quelque chose d'assez complet pour la 0.1. Et on est bien 2 développeurs pour le projet.

      > - Est-ce qu'en terme de performance c'est bon ? De manière générale, je m'interroge sur les performances des applications en python et je me demande donc si pour cette utilisation c'est un bon choix technique. (question naïve, pas une critique)

      Pour les performances, un window manager ne consomme pas beaucoup de ressources (et de plus on passe directement par la Xlib). Pour l'instant, avec une utilisation normale, on ne peut pas dire que ça rame (en plus, on n'a pas encore fait de profiling).

      > J'aurais sans doute d'autres questions mais pour le moment ce sera tout.

      Pas de problème.
  • # dwm FTW

    Posté par . Évalué à 2.

    • [^] # Re: dwm FTW

      Posté par . Évalué à 3.

      dans le genre relou a configurer (modification des sources), on fait difficilement pire.

      mieux vaut utiliser d'autres tiled wm genre wmii (http://wmii.suckless.org/), awesome (http://awesome.naquadah.org/), ou xmonad (http://xmonad.org/), et encore bien d'autres
      • [^] # Re: dwm FTW

        Posté par (page perso) . Évalué à 3.

        > dans le genre relou a configurer (modification des sources), on fait
        > difficilement pire.

        Disons que c'est bien adapté pour l'embarqué mais inutilisable sur le bureau d'un PC multi-utilisateur.

        Donc la cible n'est à mon sens pas la même.

        PS : un utilisateur de wmii
      • [^] # Re: dwm FTW

        Posté par . Évalué à 3.

        Si tu veux voir d'autres window managers qui font du tiling, il y a aussi ce qu'il faut en python :

        * PLWM : le plus ancien et le plus complet (développé par la personne qui a fait le binding Xlib pour python). Vraiment configurable si on veut en tirer le maximum. http://plwm.sourceforge.net/

        * Tritium : prévu pour être un clone de ion. Il a l'air d'être déjà bien utilisable. http://vireo.org/~stew/blog/linux/tritium

        * Partiwm : un petit nouveau, utilise GTK et a un début de support pour XComposite. http://partiwm.org/ (mais le site a l'air HS.)

        Pour qui concerne les wms gérant le reparenting (donc, avec des décorations au-dessus des fenêtres), il n'y a que PycaWM qui soit vraiment utilisable pour l'instant.

        Il y a bien un autre projet, Whimsy (http://incise.org/index.cgi/Whimsy), fait par un ancien développeur de Kahakai, mais son développement a l'air d'être un peu freezé (et le support du reparenting a été enlevé pendant un moment, je ne me rappelle plus si c'est toujours le cas).
  • # Syntaxe absconse?

    Posté par . Évalué à 2.

    "sans pour autant devoir apprendre une syntaxe absconse pour le configurer."
    N'exagérons rien, certes la syntaxe FVWM nécessite une familiarisation pour pouvoir en tirer un plein parti, mais ça n'est tout de même pas mission impossible (surtout qud on sait à qui s'adresse ce WM).
    Ce qui me manque le plus (en tant qu'ancien user de ion3) c'est le réarrangement automatique des fenêtres de la meilleure façon possible. C'est (sans doute) faisable sous FVWM mais je n'ai pas encore trouvé comment.
    • [^] # Re: Syntaxe absconse?

      Posté par (page perso) . Évalué à 1.

      Sauf qu'un langage de programmation permet de faire bien plus de choses que ce que permet les configurations Fvwm ... Ou en tout cas, de faire des choses complexes bien plus facilement.

      C'est la raison qui m'a fait abandonner Fvwm ... Trop dificile de maintenir ma configuration
      • [^] # Re: Syntaxe absconse?

        Posté par . Évalué à 1.

        Salut
        Tu as abandonné FVWM pour quel wm Mildred? Et quelles sont les choses complexes dont tu parles?
        • [^] # Re: Syntaxe absconse?

          Posté par (page perso) . Évalué à 1.

          Pour utiliser GNOME ... et même si de temps en temps, je change, je reviens vite à GNOME.

          Avec Fvwm, on peut faire des choses intéressantes, mais ça demande aussi beaucoup d'énergie pour avoir quelque chose d'agréable. Avec GNOME, tout n'est pas parfait (loin de la) mais on perd moins de temps a le configurer pour avoir quelque chose d'agréable.

Suivre le flux des commentaires

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