Journal Mavie : le window manager dont je rêve

Posté par  (site web personnel) .
Étiquettes : aucune
0
6
août
2005
Voici les fonctionnalités qui sont selon moi nécessaires pour un window manager parfait :

Aucun affichage (pas de bordures, pas de barres de titre...)

Un raccourci pour changer de fenêtre fonctionnant de la manière suivante :
Un raccourci affiche la liste de toutes les fenêtres du bureau, avec les informations suivantes : icône, nom de la fenêtre, position sur l'écran (pratique lorsque plusieurs fenêtres ont le même nom) et une lettre-raccourci (dont l'ordre est personnalisable, i.e. on peut choisir le raccourci de la première fenêtre, le raccourci de la deuxième fenêtre, etc ce qui permettrait de mettre par exemple les 10 touches directement sous les doigts)
L'affichage reste même si le raccourci n'est pas maintenu. Un appui sur la touche Echap retourne en affichage normal, sans changer le focus.
Un appui sur une lettre met la fenêtre correspondante en avant-plan et met le focus sur celle-ci.

Multi-bureaux (avec des raccourcis personnalisables pour changer de bureau, et pour changer une application de bureau)

Fenêtres déplaçables et redimensionnables au clavier (raccourci personnalisable pour entrer en mode redimensionnement/déplacement puis raccourcis personnalisables pour changer la position/taille de la fenetre)

Lancement d'applications (personnalisables) avec des raccourcis (personnalisables)

Raccourcis personnalisables pour réduire, maximiser, fermer une fenêtre

Et éventuellement :
Un raccourci personnalisable pour ouvrir le menu Debian.

J'ai deja pensé à tenter de coder ça, mais c'est long, et la Xlib ça a l'air bien compliqué pour ma petite cervelle de programmeur débutant.
Je suis tout seul dans mon délire?
  • # juste un petit lien

    Posté par  . Évalué à 4.

    en fait Deux :
    Il y a eu un post sur le sujet ya pas longtemps :
    http://linuxfr.org/~Security__Watch/17171.html(...)

    Et dans le journal il y a un lien vers un site *génial* pour choisir son WM .
    http://www.xwinman.org/(...)
    Je te conseille vivement d'y jeter un coup d'oeil. Même si ce n'est pas toujours à jour :)
    • [^] # Re: juste un petit lien

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

      J'avais déja parcouru la liste plusieurs fois, et je viens de le refaire, mais je ne trouve rien qui corresponde à ce que j'ai dit dans ce journal.
      La meilleure solution que j'ai trouvé jusqu'à présent c'est openbox + devilspie (http://www.burtonini.com/blog/computers/devilspie)(...) pour enlever automatiquement les décorations.
      Le seul problème, c'est le alt-tab. Cycler dans 9 terms plus 1 ou 2 applications, c'est galère...
      Dès que j'ai le temps et les compétences, je vais tenter de coder ça.
      • [^] # Re: juste un petit lien

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

        << Cycler dans 9 terms >>

        Utilise konsole. On est pas mal dans KDE a penser que konsole est une des killer app de KDE. Citons notamment :
        - evidemment, les onglets pour avoir une konsole faisant plusieurs terminaux
        - transparence (c'est plutot pour les goodies)
        - possibilite de dupliquer ce que tu tapes sur un onglet dans plusieurs onglets (pratique pour faire des deploiements sur plusieurs machines)
        - monitoring visuel : un signal visuel t'informe qu'il y a eu un affichage dans un de tes onglets. Impeccable pour surveiller des logs systemes
        - envoi de signaux par le menu popup : pratique pour killer ou mettre une application en attente sans passer par ps ou top
        - bookmarks pour les repertoires
        - notion de session avec tous tes repertoires sauvegardes
        - choix completement libre des couleurs d'affichage
        - controle a distance avec dcop (je m'en suis servi pour lancer d'un coup un serveur et 3 clients textes pendant que je debuggais un jeu en reseau)
        - leger en memoire : un dev KDE a montre que konsole consommait en fait moins que xterm, surtout si tu lances plusieurs xterm
        • [^] # Re: juste un petit lien

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

          evidemment, les onglets pour avoir une konsole faisant plusieurs terminaux
          J'aime bien voir tous mes terms à la fois. (C'est pour ça que j'ai 9 terms en 80x25, c'est ce qui rentre dans mon 15" 1600x1200)

          transparence (c'est plutot pour les goodies)
          J'ai un fond d'écran noir, pour plus de lisibilité sur mes terms.

          leger en memoire : un dev KDE a montre que konsole consommait en fait moins que xterm, surtout si tu lances plusieurs xterm
          Même quand on utilise pas KDE?

          Pour le reste, ça peut être (parfois) pratique, mais je trouve ça assez inutile.
          En conclusion, pas (encore) convaincu.
          (J'imagine qu'on peut enlever tous les menus, barres d'outils, et autres choses que je n'aime pas?)
  • # FVWM

    Posté par  . Évalué à 3.

    Je pense que FVWM peut faire tous ça, et même assez facile à configurer pour un expert (pas moi).

    Si tu écris l'anglais, essaie les deux forums :

    http://forums.gentoo.org/viewtopic-t-333503.html(...)
    (un très très long sujet, depuis septembre 2003 et toujours active)

    http://fvwm.lair.be/(...)
    (un forum assez jeune)
    • [^] # Re: FVWM

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

      Et bien, "je plusoie" FVWM qui reste a mon avis le WM pour les gens qui veulent "créer" leur WM, tout est configurable, les menu peuvent être créer comme on le désire, les racourcis
      se font comme ont le désire, l'apparence des menu, barre de titres etc...reste entièrment configurable. enfin que des bonnes choses!

      Utiliser FVWM, c'est comme créer son WM.

      Seul point négatif il faut un peux chercher dans les doc les exemples pour arriver a faire ce que l'on désire vraiment.
      • [^] # Re: FVWM

        Posté par  . Évalué à 4.

        Je plussoie aussi :)

        Ca s'arrete meme pas la, la configuration de FVWM, c'est littérallement de la programmation, que l'on peut compléter avec les nombreux modules fournis de base (il y a meme une API Perl). Juste un exemple pas forcément très représentatif: si application X ouvre une fenetre, la passer en arriere plan, lui passer le focus, simuler au clavier la tape de certaines lettres, simuler l'appui sur OK (c'est ce que j'utilisais pour empecher l'affichage d'une popup d'authentification proxy de Firefox). Et c'est à mon avis bien anecdotique par rapport à ce qu'il est possible de faire...

        La manpage est en général à jour par rapport aux fonctionnalités, mais il est souvent difficile d'en tirer quelque chose facilement (peu d'exemples). Le mieux est de regarder des configurations déjà écrites pour comprendre un peu la mécanique.

        De bonnes ressources pour commencer:
        - Fvwm Crystal: http://fvwm-crystal.berlios.de/(...)
        Il s'agit en fait d'une configuration de Fvwm, avec pas mal de bonnes idées. C'est proprement écrit donc ca permet de voir ce qu'il est possible de faire, et la méthode pour y arriver.
        - La page de Tavis Ormando: http://dev.gentoo.org/~taviso/(...)
        Développeur FVWM et mainteneur de FVWM sous Gentoo. Il fournit son fichier de conf avec énormément de commentaires utiles.
        La section screenshots vaut aussi son pesant de cacahouetes.
        (Pour les connaisseurs de FVWM, il y a une partie en commentaire dans son fichier qui simule le fonctionnement de Exposé sous MacOS X et c'est assez bluffant...)
  • # E16 peut-etre

    Posté par  . Évalué à 2.

    Il me semble que tu peux avoir sans decorations (ca depend du theme utilise je pense) et en combinant l'utilitaire d'edition de touche raccourci avec eesh, ca doit peut-etre etre possible (mais ca risque d'etre difficile) de faire une partie du reste.
  • # Ion

    Posté par  . Évalué à 6.

    Un autre journal parle justement de Ion, un window manager ou tout peut se faire au clavier, et sans aucune décoration de fenêtre (http://linuxfr.org/~Juba/19033.html(...) ). J'ai donc essayé et ça m'a vraiment plu.

    On peut configurer vraiment beaucoup de choses, à base de scripts en lua (langage assez obscur ou c'est moi qui manque de culture générale ?) donc même s'il ne fait pas par défaut ce que tu veux exactement, tu dois pouvoir le coder, ceci étant de toute façon plus facile que de te faire ton propre WM.
    • [^] # Re: Ion

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

      Lua, c'est un langage facile a embarquer dans une application. C'est un peu plus primaire que python, ruby, etc mais l'avantage, c'est qu'en 10 minutes, tu peux rendre une application scriptable en lua.
  • # ma petite pierre

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

    Bon bah moi je pense que fluxbox correspond bien (sauf un point) à ce que tu décris :

    Aucun affichage (pas de bordures, pas de barres de titre...)

    aucun problème

    Un raccourci pour changer de fenêtre fonctionnant de la manière suivante : (...)

    bon là c'est clair et net il n'y a pas d'affichage de liste. Mais en revanche tu as plusieurs modes de navigation entre les fenetres (voir ici http://fluxbox.org/docbook/en/html/x298.html#KEYS-NOTE-1(...) )

    Multi-bureaux ...

    aucun problème

    Fenêtres déplaçables et redimensionnables au clavier (...)

    aucun problème

    Pour tout ce qui est raccourcis ... aucun problème

    Je parle bien sur ici de la derniere release dev de fluxbox soit 0.9.13 à l'heure actuelle.
    • [^] # Re: ma petite pierre

      Posté par  . Évalué à 2.

      il n'y a pas d'affichage de liste
      Je ne suis pas d'accord. Ou alors on ne parle pas de la même chose?
      Dans mon fichier .fluxbox/keys j'ai cette ligne:
      Control Menu :WorkspaceMenu

      Et hop, une liste des fenêtres triées par bureaux. Je ne sais pas si on peut leur affecter un raccourci, par contre tout le reste à l'air ok.
  • # Sawfish comme d'hab.

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

    Ben, je crois qu'avec sawfish, tu dois pouvoir à peu près faire tout ce que tu demandes, out-of-the-box. La magie de ce WM, c'est que sa conf, ben c'est du script. Alors, certes, je ne cacherai pas que c'est du LISP. Le dialecte "rep", même. En même temps, ça en fait un WM super extensible et en l'occurence très étendu. On trouve des scripts pour faire tout un tas de chose très sympathiques, comme gérer des onglets, ordonner l'espace comme sous ion, etc.
    Sinon :
    . pour les numéros de fenêtre, ya wid.jl , qui attribue à chaque fenêtre un numéro (qui s'affiche dans la barre de titre), suffit de presser la combinaison de touche (que tu définis à ton gré) dédiée, et hop! ça switche.
    . j'irai jusqu'à recommander iswitch-window.jl qui permet de faire de la recherche incrémentale sur les fenêtres, un peu comme dans les navigateurs avec la touche "/" (le type-ahead-find). Évidemment, ya de la completion et tout le toutim. Une fois essayé, c'est adopté.
    . pour le coté multi-bureau, ben, je ne connais pas de WM qui ne le fasse pas de nos jours,
    . pour les raccourcis, ben tu fais ce que tu veux, ya pas de soucis.

    Bon, voilà, j'ai encore pu faire mon prosel sawfish.
    • [^] # Re: Sawfish comme d'hab.

      Posté par  . Évalué à 2.

      J'aime bien sawfish, c'est ce que j'utilise depuis quelques années.

      Il y a juste un truc qui m'ennuie : qu'il ne se rappelle pas dans quel bureau je demande de lancer une fenêtre.

      Si je veux lancer une appli qui met du temps à se charger sur tel bureau, soit :
      - je suis obligé d'attendre sur le bon bureau qu'elle se soit lancée,
      - je fais autre chose pendant qu'elle se charge, et je dois estimer son temps de lancement pour revenir au bon moment au bureau désiré,
      - je me plante dans l'estimation et il faut amener la fenêtre sur le bon bureau.

      Je crois que KDE le fait. Ça serait un truc intéressant à rajouter à sawfish.
      • [^] # Re: Sawfish comme d'hab.

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

        Je crois qu'il te manque un peu d'info sur sawfish. Le window matching est l'une de ces fonctionnalités les plus connues et les plus sympathiques. Elle permet d'affecter à une fenêtre / application un ensemble de caractéristiques, dont par exemple le bureau de démarrage, sur la base de la classe, du nom, du rôle, etc de l'application.


        ;; exemple pour firefox
        ;; démarrer sur le bureau 5
        ;; à rajouter dans ~/.sawfish/rc
        (require 'sawfish.wm.ext.match-window)
        ...
        (add-window-matcher 'WM_CLASS "^Firefox-bin/Gecko$"
        '(workspace . 5))
        ...
  • # \_o<

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

    E.DR16 et e17 font tous les deux la quasi totalite de ce que tu demandes, et un peu plus.

    Il m a f allu un temps d adaptation non negligeable pour comprendre ces deux outils, disons 2 mois pour comprendre la base ... puis 5 ans pour capter tous les tricks possibles ...

    sous e17 il est trivial via les editeurs integres de faire sauter toutes les bordures dans un theme que tu aura customise.

    sous e16, tu fais sauter les bords en editant .enlightenment/themes/no_border/borders/DEFAULT/border.cfg

    je peux te passer mon theme, et celui dont je suis inspire que tu fasse un diff.

    Pour les raccourcis claviers ... en fait tu ne peux rien faire sans :)
    pour les apprendre, tu devra vivre quelques temps avec les infos bulles ... avant de les desactiver. Le plus interessantsous e16 ce sont les groupes de fenetres ... un concepte assez bizarer et unique, mais tres tres fonctionnel.

    Bref, deux WM formidables, tout a fait stables, et qui ont grandement augmente mon confort, et ma rentabilite.

    J utilise e16 sur les mono-ecran, et e17 sur les xinerama.

    E17 est en beta depuis Noel, (le WM, pas les plugins inutiles); il manque encore de quelques outils integres, comme l editeur d icones qui est assez rustre (pas de D&D pour larguer l icone voulue dans l editeur), mais ca vient mois apres mois.
    • [^] # Re: \_o<

      Posté par  . Évalué à 2.

      Bonjour,
      Je trouve tes ideés très intéressantes.
      Je doit dire que ca fait plaisir de voir qu'il n'y a pas que des blaireaux
      obsédés par l'idée de singer les fonctionalités de Osx :) .

      "Un raccourci affiche la liste de toutes les fenêtres du bureau, avec les informations suivantes : icône, nom de la fenêtre"

      Ca existe sous e17.

      "position sur l'écran"

      Ca n'existe pas sous e17. je verais bien une représentation du pager
      avec une mise en surbrillance de la fenetre. plus qu'un affichage des coordonnées. Qu'en penses-tu?

      "une lettre-raccourci"
      Sur le alt-tab de e17 (et les menus d'ailleurs) tu peux accéder a un item via
      un chiffre : "2" envoi vers le deuxieme item etc.
      Tu peux également te servir de la mollette pour passer d'un item a l'autre.

      Si tu a la possibilité de tester e17, tu pourras t'amuser avec la 20aine d'options de config de Alt-Tab :).

      L'idée d'un raccourcis pour acceder a une fenetre est intéressante et doit etre possible.

      Un fonctionnement a la iswitch de emacs serait génial.

      "Multi-bureaux (avec des raccourcis personnalisables pour changer de bureau, et pour changer une application de bureau)"

      Tout cela est possible. le déplacement d'une fenetre vers un autre bureau est accessible via le menu. je ne suis pas sur qu'il y ai un raccourcis.
      On peut également drag'n'droper l'icone de la fenetre vers le pager au bureau voulu.

      "Fenêtres déplaçables et redimensionnables au clavier (raccourci personnalisable pour entrer en mode redimensionnement/déplacement puis raccourcis personnalisables pour changer la position/taille de la fenetre)"

      Pour le redimensionnement au clavier, je ne suis pas sur de ce que tu
      veux exactement. pourrais-tu etre plus précis?
      sous e17:
      Pour le déplacement de la fenetre, il y a alt-click gauche
      Pour le redimensionnement, il y a alt-click milieu.

      "Lancement d'applications (personnalisables) avec des raccourcis (personnalisables)
      Raccourcis personnalisables pour réduire, maximiser, fermer une fenêtre
      Et éventuellement :
      Un raccourci personnalisable pour ouvrir le menu Debian."

      Tout cela est bien sur possible. Pour le menu debian, il faudra:
      le faire toi meme :)
      ou attendre un petit peu, le temps que la gestion du menu debian dans e17genmenu se finalise. Il supporte pour le moment le menus gnome et kde.

      "J'ai deja pensé à tenter de coder ça, mais c'est long, et la Xlib ça a l'air bien compliqué pour ma petite cervelle de programmeur débutant."

      Tu devrais regarder du coté des EFL, ecore wrappe tout un tas de fonctions de X11.
      E17 est facilement extensible via son systeme de module, et le code est a mon avis très compréhensible.

      Tout cela implique tout de meme de bonnes bases en C.

      "Je suis tout seul dans mon délire?"
      NoooN ! :)

      Pour plus d'infos sur e17 :
      http://get-e.org(...)

      pour e17genmenu:
      http://sourceforge.net/projects/e17genmenu/(...)

      Si tu connais l'anglais un mail a la mailing list e-users serait génial. je suis sur que tu aura du feedback
      http://www.enlightenment.org/Main/Community.html(...)

      Tu peux l'envoyer en francais(n'oubli pas de t'excuser). mais seul raster
      pourra te répondre car il maitrise plutot bien le francais( il a codé 99% du wm donc ce n'est pas si mal comme interlocuteur :) ).

      Je ne saurais enfin trop te conseiller de faire un tour sur : #e.fr
      freenode.net :)
      • [^] # Re: \_o<

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

        "position sur l'écran"
        Ca n'existe pas sous e17. je verais bien une représentation du pager
        avec une mise en surbrillance de la fenetre. plus qu'un affichage des coordonnées. Qu'en penses-tu?

        Que je n'aime pas le pager, et que ça ne me convient donc pas vraiment (d'autant plus que ça oblige à déplacer les yeux de la liste vers le pager).

        Le but est d'accélérer le plus la manoeuvre, c'est pour ça que même des raccourcis à la fvwm (les chiffres) ne me semblent pas parfait (faut bouger les doigts, toussa)

        Ce qui pourrait être interéssant aussi, c'est d'assigner un raccourci à une fenêtre particulière, mais de manière automatique. Peut-être que c'est possible en executant une commande et en récupérant son windowid au démarrage.

        Tu peux également te servir de la mollette pour passer d'un item a l'autre.
        Le but est de se débarasser de cet outil du démon qui m'oblige à changer ma main de place chaque fois que je veux changer de term.
        • [^] # Re: \_o<

          Posté par  . Évalué à 1.

          "faut bouger les doigts, toussa"
          ouais. C'est un peu le principe du clavier .... :)

          "Ce qui pourrait être interéssant aussi, c'est d'assigner un raccourci à une fenêtre particulière, mais de manière automatique. Peut-être que c'est possible en executant une commande et en récupérant son windowid au démarrage."

          la question est comment. surtout s'il s'agit de fenetres de la meme application.
          • [^] # Re: \_o<

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

            "faut bouger les doigts, toussa"

            la question est comment. surtout s'il s'agit de fenetres de la meme application.


            =>

            One nice feature (something you probably won't find it if you don't know about it) that's only in the module version is the ability to switch desktops by moving the mousewheel on an icon; the desktop will switch to the one where the application is running. If you have more than one running instance of the application, it'll shuffle between them in a logical way (mousewheel down switches to the lower subicon etc).


            http://www.get-e.org/User_Guide/English/_pages/4.2.html(...)

            bon, c est GUI, je sais, mais un deplacement de souris plus un roulage de l index est bien plus agreable, et moins fatigant, qu un clic sur le pager, ou que certains key binds.

Suivre le flux des commentaires

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