Journal umberwm, un gestionnaire de fenêtre en tuile pour X11

Posté par  (site Web personnel) . Licence CC By‑SA.
21
2
mai
2020

Cher journal,

J'ai commencé à écrire un gestionnaire de fenêtre minimaliste en rust, dont voici un apperçu:

capture d'écran umberwm

Ce dernier est fortement inspiré par qtile au niveau de l'interface,
et DWM au niveau de la configuration (fondée sur du code).

  • # main.rs

    Posté par  (site Web personnel) . Évalué à 6 (+4/-0).

    Merci pour le partage. C'est moi où il y a une erreur dans le readme ou un fichier qui n'a pas été uploadé sur le repos?
    Le readme dit:

    edit src/main.rs (see comments for more details)

    Mais je ne vois pas ce fichier. Je manque quelque chose ? J'étais curieux de voir la configuration dans le code.

  • # X11 ?

    Posté par  (site Web personnel) . Évalué à 3 (+10/-8).

    Il aurait été judicieux de faire un gestionnaire de fenêtre wayland ! Xorg n'étant plus développé…
    De plus il y a wlroots qui permet de "facilement" écrire un compositeur custom pour wayland ! Perso je trouve ça plus fun que de refaire un n-ieme gestionnaire de fenêtre X11.

    • [^] # Re: X11 ?

      Posté par  (site Web personnel) . Évalué à 4 (+4/-1). Dernière modification le 03/05/20 à 00:59.

      J'ai commencé à me documenter sur le sujet, et de ce que j'ai compris c'est pas du tout évident de faire un WM pour wayland.
      À savoir que dans wayland, il n'y a pas de distinction entre le compositor et le WM.
      Du coup si tu veux implémenter l'un il faut implémenter l'autre, ou réutiliser une lib qui fait la partie compositing pour toi.
      et il n'y a malheureusement pas de binding pour wlroot en rust.

      • [^] # Re: X11 ?

        Posté par  . Évalué à 2 (+1/-0).

        Bravo pour ce projet.
        Quel à été ton point de départ pour commencer (tutoriaux, t'es tu inspiré de code existant) ?

        Il semble que ce projet fasse le binding wlroots en rust:
        https://github.com/Smithay/smithay

        Je me demandais justement si en utilisant wlroots, écrire un vm pour wayland était plus compliqué ou non que pour x11.

    • [^] # Re: X11 ?

      Posté par  . Évalué à 8 (+7/-0).

      Il y a sway qui reprend le fonctionnement et la configuration de i3 et utilise wayland.

      Je pense que tu connais, mais pour les éventuels curieux qui passeraient par là :)

    • [^] # Re: X11 ?

      Posté par  . Évalué à 10 (+19/-1). Dernière modification le 03/05/20 à 08:04.

      Il aurait été plus "judicieux" de ne pas développer un n-ième WM non plus …

      Enfin ça c'est la vision pessimiste et pas très constructive.

      C'est bien l'essence du logiciel libre que d'avoir une idée, une envie, de commencer à hacker quelque chose et de le partager avec le monde entier.
      La probabilité qu'umberwm devienne un logiciel libre incontournable est faible (mais sait on jamais ?) et c'est pas grave : il y a mille espoirs que son auteur ou d'éventuels contributeurs et utilisateurs en retirent quelque chose.

      Sur ce, je vais m'essayer à préparer moi même un soda bread irlandais, même s'il aurait été plus judicieux de soutenir mon boulanger de quartier et s'il y a mélanges de farine et de levures prêt l'emploi qui permettent de "facilement" faire des pains délicieux.

      Perso, je trouve ça plus fun que de refaire un n-ième commentaire paternaliste ;-)

      (et oui, je réalise bien l'ironie de ce qu'est mon propre commentaire :)

      BeOS le faisait il y a 20 ans !

      • [^] # Re: X11 ?

        Posté par  . Évalué à 10 (+12/-2). Dernière modification le 03/05/20 à 09:16.

        C'est bien l'essence du logiciel libre que d'avoir une idée, une envie, de commencer à hacker quelque chose et de le partager avec le monde entier.

        C'est d'ailleurs l'essence même du monde dans lequel nous vivons.

        D'ailleurs, si tout le monde pensait comme l'auteur du commentaire auquel tu réponds , il n'y aurait ni Linux ( a quoi ça sert de développer un nième noyau alors qu'il y a un os complet basé sur BSD ? Et on doit pouvoir dire la même chose de plein de logiciels).

        Moi personnellement j'ai vraiment du mal avec ces gens qui veulent tout uniformiser, normaliser, à croire que ces gens ne veulent qu'un monde insipide, uniforme, et bien sûr basé sur leur propre vision des choses.

        Imaginez le monde avec 1 seul fromage, 1 seul vin, 1 seule biere, 1 seule recette de cuisine, un monde composé de clones qui pensent tous la même chose, un monde ou tout le monde est habillé pareil, coiffé pareil, ou toutes les maisons ont pareilles, toutes les voitures identiques, tous les vélos identiques, toutes les villes identiques, avec le boulanger qui ne fabrique qu'un seul pain, les restau qui servent le même plat, etc … Ca ce serait de la rationaisation. Mais moi ce monde là je n'en veux pas.

        Même s'il est peu probable que j'utilise un jour le gestionnaire de l'auteur du journal, je l'encourage à continuer sa démarche. Même si son gestionnaire de fenêtres ne perce pas, au moins, il aura appris un tas de trucs, qu'il pourra certainement réutiliser demain sur un autre projet d'envergure (qui sait, peut-être le prochain meilleur gestionnaire de bureau écrit en Rust et basé sur Wayland ?). C'est loin d'être du temps perdu (moi aussi parfois je commence ce genre de projet, projet que je ne termine jamais car ce n'est pas le but. Le but principal pour moi est d'apprendre).

        • [^] # Re: X11 ?

          Posté par  (site Web personnel) . Évalué à 8 (+6/-0).

          Imaginez le monde avec 1 seul fromage, 1 seul vin, 1 seule biere, 1 seule recette de cuisine […]

          Ça c'est parce que tu fais un procès d'intention. Tu peux penser qu'une 2ème distribution Linux c'est utile, mais qu'une 2563254ème ne l'est peut être pas autant.

          Après j'évite d'aller dire aux gens comment ils auraient du utiliser leur temps libre, mais c'est un autre problème.

          • [^] # Re: X11 ?

            Posté par  . Évalué à 7 (+6/-1).

            Ça c'est parce que tu fais un procès d'intention. Tu peux penser qu'une 2ème distribution Linux c'est utile, mais qu'une 2563254ème ne l'est peut être pas autant.

            Ah, et sur quel critère on se base pour dire que c'est utile ou pas ? Si c'est utile, il y aura preneur. Si ça ne l'est pas, personne n'utilisera et le truc mourra de lui même. C'est exactement comme le fromage, le vin, la biere, la cuisine … : il en existe des tas sur terre, mais je ne vois pas pourquoi on critiuquerai quelqu'un qui veut vendre son propre fromage, qui serait une variante d'un 2563254ème fromage.

            • [^] # Re: X11 ?

              Posté par  (site Web personnel) . Évalué à 9 (+8/-0).

              En ce qui me concerne, je comparereai plutot ça à du home brewing :)
              À savoir que je fais ma bière (mon wm) d'abord pour moi, et que je la partage avec des gens parceque je pense qu'elle peut les intéresser.
              De plus si j'ai des gens qui me donnent des conseils pour l'améliorer, voir qui participent à l'améliorer, elle ne peut que devenir meilleure.

            • [^] # Re: X11 ?

              Posté par  (site Web personnel) . Évalué à 5 (+4/-1).

              Ah, et sur quel critère on se base pour dire que c'est utile ou pas ?

              Je ne sais pas ; d'ailleurs je n'ai rien dit de l'utilité de quoi que ce soit, j'ai parlé de "penser". La seconde partie de mon message étant assez claire sur le fait que, bien souvent, garder son avis pour soi est une bonne chose…

          • [^] # Re: X11 ?

            Posté par  . Évalué à 5 (+4/-0).

            Tout dépend de ce qu'apporte cette distribution. En elle-même, sans doute pas grand chose, mais on peut aussi voir cela comme un projet d'apprentissage : elle permet à celui qui la développe d'acquérir des connaissances. Et cela a deux avantages :

            • ces connaissances seront réutilisables, et pourront potentiellement bénéficier à tous ;
            • la gratification est bien présente pour celui qui réalise le projet.

            Moi aussi, j'adore faire mon propre pain. Sans pour autant prétendre rivaliser avec mon (excellent) boulanger de quartier ;)

            • [^] # Re: X11 ?

              Posté par  (site Web personnel) . Évalué à 4 (+2/-0).

              Ah mais je suis entièrement d'accord.

              Personnellement je ne vais pas dire aux gens que leur projet me semble inutile car il y en déjà plein d'autres qui ont l'air de faire la même chose ; je passe juste mon chemin. C'est mon approche, mais peut-être qu'au final elle n'est pas si bienveillante que ça, je ne sais pas (l'enfer est pavé de bonnes intentions, toussa). Peut-être qu'aller interroger les créateurs sur l'utilité de leur projet serait mieux ; ils pourraient alors expliquer ce qu'il apporte selon eux, ou bien expliquer qu'il est fait juste à titre éducatif, etc… Je n'ai pas la réponse.

              Moi aussi, j'adore faire mon propre pain. Sans pour autant prétendre rivaliser avec mon (excellent) boulanger de quartier ;)

              Si tu te lançais dans la 5ème boulangerie de ta rue, j'imagine que des gens viendraient te demander pourquoi tu fais ça ; d'autres t'ignoreraient. Quelle est la meilleure approche, je ne sais pas.

              • [^] # Re: X11 ?

                Posté par  . Évalué à 3 (+2/-1).

                Et il y aura des gens qui trouvent que les 4 autres boulangeries ne cuisent pas assez leur pain, et que cette 5eme boulangerie, enfin une boulangerie qui sait cuire le pain correctement !

              • [^] # Re: X11 ?

                Posté par  . Évalué à 2 (+0/-0).

                Le message initial de questionne pas l'utilité, il demande autre chose. Tu va voir le 5ème boulanger et tu lui dis qu'il aurait été judicieux d'ouvrir une pâtisserie.

          • [^] # Re: X11 ?

            Posté par  . Évalué à 3 (+1/-0).

            Ça c'est parce que tu fais un procès d'intention. Tu peux penser qu'une 2ème distribution Linux c'est utile, mais qu'une 2563254ème ne l'est peut être pas autant.

            1. Qui est juge de l'utilité ?
            2. Pourquoi ça devrait être utile ?

            Ou dis autrement pourquoi est-ce que le fait que ça ne soit pas utile à une ou plusieurs personnes ici devrait remettre en cause ce projet/code/partage ?

            • [^] # Re: X11 ?

              Posté par  (site Web personnel) . Évalué à 4 (+2/-0).

              Ou dis autrement pourquoi est-ce que le fait que ça ne soit pas utile à une ou plusieurs personnes ici devrait remettre en cause ce projet/code/partage ?

              Je n'ai personnellement rien remis en cause (cf la 2ème partie de mon commentaire).

    • [^] # Re: X11 ?

      Posté par  (site Web personnel) . Évalué à 6 (+6/-1).

      Xorg n'est plus développé ? Dommage pour ceux qui font de la retouche photo ou vidéo sur *BSD ou GNU/Linux parce que les codeurs de Wayland sont à mille lieux des problématiques de colorimétrie ; apparemment, d'après Aurélien Pierre, un des contributeurs de Darktable, ces questions leur passeraient largement au dessus de leur compréhension. Et c'est dommage pour un système graphique …

      • [^] # Re: X11 ?

        Posté par  . Évalué à 4 (+1/-0).

        Il y a plus d'infos là dessus ? Parce qu'il y a du travail dans Wayland pour la calibration colorimétrique: https://lists.freedesktop.org/archives/wayland-devel/2019-April/040431.html

        « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

        • [^] # Re: X11 ?

          Posté par  (site Web personnel) . Évalué à 3 (+2/-0).

          Apparemment c'est plus compliqué que juste de la calibration et du profilage colorimétrique … d'ailleurs le problème relèverait plus du profilage puisque c'est lui qui gère les conversions entre espace et profil colorimétrique. En fait, ce serait plus un problème de compréhension de ce que sont les profils ICC, ce que décrivent les espaces colorimétriques, des capacités des écrans et des imprimantes, etc. Il faudrait que je retrouve où Aurélien Pierre en parle de ça (c'est soit sur l'une de ses vidéos sur Youtube, soit dans une de ses réponses dans les forums darktable ou sur pixls ; en tout cas je n'ai pas trouvé dans son blog sur son site photo).

          • [^] # Re: X11 ?

            Posté par  . Évalué à 3 (+1/-1). Dernière modification le 05/05/20 à 15:21.

            Je ne crois pas que le travail est fini non plus.

            « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

          • [^] # Re: X11 ?

            Posté par  (site Web personnel) . Évalué à 5 (+4/-0).

            Voici plus d'infos sur le sujet (lire les commentaires) :

            https://discuss.pixls.us/t/wayland-color-management/10804

            Il y a d'ailleurs cette phrase de Graeme W. Gill, l'auteur d'ArgyllCMS et d'ArgyllPro, qui m'a interpellé :

            As best I can tell (from the long and unsatisfactory thread I pursed on the Wayland Developers list some little time ago), the core issue with Wayland and Color is social, not technical:

            1. none of the key developers have the faintest idea what Color or Color Management is, and (worse):
            2. they have no idea why it would be at all important.

            C'est de cette discussion qu'Aurélien Pierre faisait, je pense, référence lorsqu'il a parlé du problème de Wayland d'avec la colorimétrie.

            • [^] # Re: X11 ?

              Posté par  . Évalué à 4 (+1/-0). Dernière modification le 05/05/20 à 23:30.

              Cette discussion date de 3 mois avant le commit que j'ai mis. Du coup, les choses bougent.

              « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

  • # Comment ça marche ?

    Posté par  . Évalué à 10 (+12/-0).

    J'ai aucune idée de comment marche un gestionnaire de fenêtres, de quelle API X11 met à disposition, de quel code il reste à écrire… si par hasard tu te sens l'envie d'une dépêche de "comment on écrit un gestionnaire de fenêtres", je suis preneur :)

    En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

    • [^] # Re: Comment ça marche ?

      Posté par  (site Web personnel) . Évalué à 10 (+12/-0).

      Excellente idée, je vais peut-être faire ça !

      • [^] # Re: Comment ça marche ?

        Posté par  (site Web personnel) . Évalué à 2 (+2/-2).

        C'est vrai que ton journal m'a déçu. J'aurais aimé lire le pourquoi et le comment. Je me suis même dit : « Encore un journal bookmark ! ». Et ça aurait sans doute éviter ces trolls à propos de l'utilité du bouzin.

        Ceci-dit, merci de ta participation à la vie du logiciel libre.

        « Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes. »

        • [^] # Re: Comment ça marche ?

          Posté par  . Évalué à 10 (+8/-0).

          Je me suis même dit : « Encore un journal bookmark ! ».

          Pétard ça va vite ! Il a codé un truc il le partage avec nous, c'est loin d'être un journal bookmark (quelque soit sa forme).

  • # Bravo !

    Posté par  . Évalué à 4 (+2/-0).

    Bravo ! Et merci de partager :)

    DWM au niveau de la configuration (fondée sur du code).

    J'ai utilisé un temps tout ce que fais suckless, mais au final je suis pas super fan de cette manière là. Je préfère xmonad.

    • dwm on fork le code pour le modifier et se faire notre propre build.
    • xmonad est une bibliothèque haskel, tu récupère la bibliothèque et tu écris la fonction main qui lance cette bibliothèque.

    Cette seconde solution est bien plus simple à appréhender. Elle est aussi plus élégante je trouve. Enfin on est moins sujet, comme c'est le cas avec dwm à avoir des séries de patch à appliquer potentiellement dans un ordre donné et qui sont très sensibles aux mises à jour du code upstream.

    Voila c'était juste au cas où ça te donne l'idée.

    • [^] # Re: Bravo !

      Posté par  (site Web personnel) . Évalué à 5 (+4/-0). Dernière modification le 03/05/20 à 12:45.

      Merci

      En fait c'est ce que je propose aussi pour umberwm :)
      (à savoir que umberwm est une lib (crate) qu'on appelle dans un main :) (par exemple main.rs )

      • [^] # Re: Bravo !

        Posté par  . Évalué à 4 (+2/-0).

        Pardon je ne suis pas allé jusqu'à lire vraiment le fameux main.rs. Je ne lis pas encore couramment le rust. C'est la référence à dwm qui m'a trompée.

Envoyer un commentaire

Suivre le flux des commentaires

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