❌

Vue lecture

Il y a de nouveaux articles disponibles, cliquez pour rafraĂźchir la page.

Hyprland, un compositeur Wayland « tiling »

Hyprland est un compositeur Wayland pavant (tiling) crĂ©Ă© par Vaxri et placĂ© sous licence BSD 3-Clause. Si vous n’avez aucune idĂ©e de ce que cela signifie, un compositeur inclut des fonctionnalitĂ©s de gestion de fenĂȘtres. D’autres compositeurs Wayland incluent GNOME, KDE et ceux basĂ©s sur wlroots.

Plus de dĂ©tails dans la suite de la dĂ©pĂȘche.

Sommaire

Hall of fame

Avant Hyprland, Vaxri avait crĂ©Ă© Hypr, qui fonctionnait sous Xorg et utilisait XCB, tout en adoptant une philosophie similaire en matiĂšre de gestion des fenĂȘtres. Revenons Ă  Hyprland : c’est un « compositeur moderne avec du style Â» pour traduire leur formulation. La derniĂšre version est la v0.47.2 (une mise Ă  jour mineure), la v0.47 datant de janvier 2025. Il existe des paquets officiels pour Arch et NixOS, mais le site fournit des instructions pour l’installer ailleurs. Je l’ai testĂ© sur Arch, j’ai voulu me faire une idĂ©e et j’ai trouvĂ© que ça valait le coup de partager l’expĂ©rience (NdM: « Je Â» est l’auteur du journal, saltimbanque).

Notez que Hyprland est principalement un compositeur avec des fonctionnalitĂ©s de gestion des fenĂȘtres, mais pas un environnement de bureau complet. Plus de dĂ©tails sur ça plus tard.

D’aprĂšs le site officiel : « Hyprland fournit les derniĂšres fonctionnalitĂ©s de Wayland, un tiling dynamique, de nombreux effets visuels, des plugins puissants et bien plus, tout en restant lĂ©ger et rĂ©actif Â». Sans surprise, son crĂ©ateur apprĂ©cie tout ce qui touche Ă  l’esthĂ©tique graphique.

Ah, l’apparence !
 a probablement beaucoup contribuĂ© Ă  faire connaĂźtre Hyprland. D’aprĂšs les sondages du crĂ©ateur, r/unixporn a Ă©tĂ© l’un des principaux vecteurs de sa popularitĂ©. J’aime aussi, dans une certaine mesure, les effets visuels et j’apprĂ©cie l’effort fait en ce sens : de beaux espacements, des bordures, des animations. Nous avons tous jouĂ© avec Compiz quelques minutes
 avant de le jeter Ă  la poubelle car ça ne sert Ă  rien. Heureusement, Hyprland ne se limite pas Ă  l’esthĂ©tique et lorsque nous travaillons quotidiennement sur un ordinateur, nous pouvons apprĂ©cier son autre atout : la configurabilitĂ©. Vous pouvez utiliser plusieurs fichiers de configuration ou un seul, mais tout passe par fichier texte.

Petit dĂ©tail : modifiez le fichier texte de config, enregistrez-le et votre configuration se recharge automatiquement Ă  chaud. Simple dĂ©tail, mais agrĂ©able. Si vous faites une erreur de syntaxe, un bandeau apparaĂźtra et affichera les erreurs qui empĂȘchent le rechargement. Il vous suffira alors de corriger et de sauvegarder Ă  nouveau.

Gestion des fenĂȘtres

Pour comprendre la personnalisation, il faut d’abord comprendre les bases. Hyprland est un gestionnaire en mosaĂŻque. Par dĂ©faut, il utilise la mise en page (layout) “Dwindle”, qui Ă©tait dĂ©jĂ  utilisĂ© par le gestionnaire de fenĂȘtres BSPWM. La description la plus courte de ce layout serait : « Pensez Fibonacci ! Â»

Fibonacci

Bon appliquĂ© Ă  des fenĂȘtres
 voilĂ  un extrait du README de BSPWM

                     a                          a                          a
                    / \                        / \                        / \
                   1   b         --->         1   c         --->         1   d
                      / \                        / \                        / \
                     2   3                      4   b                      5   c
                     ^                          ^  / \                     ^  / \
                                                  3   2                      b   4
                                                                            / \
                                                                           3   2

         +-----------------------+  +-----------------------+  +-----------------------+
         |           |           |  |           |           |  |           |           |
         |           |     2     |  |           |     4     |  |           |     5     |
         |           |     ^     |  |           |     ^     |  |           |     ^     |
         |     1     |-----------|  |     1     |-----------|  |     1     |-----------|
         |           |           |  |           |     |     |  |           |  3  |     |
         |           |     3     |  |           |  3  |  2  |  |           |-----|  4  |
         |           |           |  |           |     |     |  |           |  2  |     |
         +-----------------------+  +-----------------------+  +-----------------------+

                     X                          Y                          Z

Un autre layout standard est “Master”. Vous pouvez modifier votre fichier de configuration pour l’utiliser Ă  la place ou mĂȘme assigner une touche pour basculer entre eux. Le layout Master fonctionne avec une fenĂȘtre occupant la moitiĂ© de l’écran, tandis que les autres s’empilent sur l’autre moitiĂ©. Vous pouvez Ă©galement changer la fenĂȘtre maĂźtresse.

Bon cette fois partageons les GIF enragés du wiki de Hyprland :

MasterLayout

Hyprland offre aussi des fonctionnalitĂ©s de gestion des fenĂȘtres, communes aux diffĂ©rents layouts :

  • plusieurs espaces de travail (avec placement manuel ou automatique des fenĂȘtres),
  • un espace de travail spĂ©cial,
  • un systĂšme de “groupement”, permettant de regrouper et dĂ©grouper des fenĂȘtres,
  • mode plein Ă©cran,
  • fenĂȘtres flottantes.

Hyprland propose aussi un systĂšme de plugins. Et devinez quoi, un plugin a Ă©tĂ© dĂ©veloppĂ© pour ajouter le layout de i3 (i3 Ă©tant un WM pavant sous Xorg, dont l’équivalent sous Wayland est Sway, qui est dĂ©v. par Drew DeVault). Ce plugin s’appelle hy3. Dans i3, il y a des conteneurs, en gros c’est un layout « manuel avec des dĂ©coupages horizontaux/verticaux, trĂšs simple et efficace, et la doc i3 est trĂšs bien. Parce que la doc Sway, ce sont juste des man page, ok c’est trĂšs bien aussi passons
 Bref, voilĂ , maintenant j’ai un compositeur i3 avec des gaps et de belles animations, vous vous souvenez de i3-gaps – qui a entre-temps Ă©tĂ© intĂ©grĂ© Ă  i3 ? Bref, hy3 c’est ça en mieux.

Configuration, doc, outils

Notez que d’autres plugins existent, pour les animations, pour changer des comportements. La communautĂ© pourrait ĂȘtre un bel axe de dĂ©veloppement maintenant que d’aprĂšs l’auteur le code se calme.

À un moment un gestionnaire de plugins a Ă©tĂ© ajoutĂ©, hyprpm (pm pour package manager je suppose). Alors j’ai essayĂ© d’installer hy3 avec, mais j’ai rencontrĂ© des soucis de versions me rappelant le bon vieux temps oĂč les dĂ©v. de plugins gnome-shell hurlaient comme des putois quand une nouvelle version sortait. Bon bref j’ai compilĂ© hy3 Ă  la main Ă  la place, mais sortez cpp et une bonne tasse de cafĂ©, c’est pas juste un script Emacs en Lisp qui prend 3 secondes. Mais au moins ça a bien marchĂ©.

Sinon la configuration permet de personnaliser le layout clavier, la rĂ©solution d’écran, l’esthĂ©tique et les animations. Beaucoup de possibilitĂ©s, par ex. pour les raccourcis on peut faire des “submap” (oui je sais, i3 aussi). On peut modifier plein de choses sans redĂ©marrer.

On peut aussi utiliser la commande hyprctl pour communiquer avec hypr.

CĂŽtĂ© documentation, l’API technique est trĂšs bien couverte, mais il manque une documentation simplifiĂ©e pour une prise en main rapide. Et puis de base ne vous attendez pas Ă  plein de raccourcis claviers prĂ©-configurĂ©s, vous allez devoir faire les vĂŽtres.

Ou alors vous pouvez aussi utiliser des configurations prĂ©existantes. On se croirait dans Doom Emacs !

Hyprland n’est pas un environnement de bureau complet. Il vous faudra un tableau de bord, un lanceur d’applications et d’autres outils. Quelques options populaires :

  • barre d’état : Ashell (prĂȘt Ă  l’emploi) ou Waybar (trĂšs personnalisable). A noter qu’il y a maintenant des mini libs pour se faire ses barres facilement comme quickshell, astal ;
  • lanceur d’applications : Wofi (simple, clavier + souris) ;
  • ou le fait d’utiliser un tiling peut mĂȘme vous donner envie de changer de terminal ? Foot, Kitty, Alacritty, etc.

Mais Awesome Hyprland vous listera bien plus de choses.

Je n’ai pas encore testĂ© ibus, et je sais que je vais rencontrer des soucis avec cela, comme j’en aurai sous Sway
 (Pas trop envie de passer sous fcitx mais on verra)

Aspects techniques, conclusion

Au cours du dĂ©veloppement de Sway, Drew Devault a conçu une bibliothĂšque, wlroots, qui est devenue indĂ©pendante de Sway et utilisĂ©e par d’autres compositeurs wayland.

Hyprland a dĂ©marrĂ© en 2022. En 2024, la dĂ©pendance Ă  wlroots, qui Ă©tait inclus sous forme de « submodule git Â», a Ă©tĂ© abandonnĂ©e au profit de Aquamarine, un moteur de rendu en C++. L’abandon de wlroots, d’aprĂšs l’auteur, tient au fait que

  • wlroots est en C,
  • wlroots manque de doc,
  • faire Ă©voluer wlroots prend du temps,
  • et accessoirement parce qu’il a Ă©tĂ© banni ! (Bon lĂ  dĂ©solĂ© je prĂ©fĂšre passer du temps sur la revue de Hyprland que sur les feux de l’amour, voyez ici).

Mais Aquamarine n’est pas un compĂ©titeur de wlroots.

Conclusion

Hyprland, comme d’autres, ça prend un max de temps Ă  s’approprier. Il faut lire et configurer Ă  tout-va, mĂȘme si aprĂšs-coup on se rend compte que c’était simple. Ce qui l’est moins, c’est de choisir sa maniĂšre de travailler.

J’adore jouer avec les gestionnaires de fenĂȘtre en mosaĂŻque et Hyprland est une belle dĂ©couverte. J’avais peur d’un simple ensemble d’animations flashy, mais il offre bien plus que cela. J’aimerais voir un tableau de bord style “ActivitĂ©s” de GNOME pour visualiser toutes les fenĂȘtres et espaces de travail en un coup d’Ɠil. Peut-ĂȘtre qu’avec le temps, quelqu’un dĂ©veloppera cette fonctionnalité  ou alors je finirai par coder un petit quelque chose moi-mĂȘme ! j’ai dĂ©jĂ  remarquĂ© que quelqu’un a codĂ© « hot corner Â», surprenant pour un tiling!

Commentaires du journal

Sources 1 et 2

  • multi-Ă©cran possible
  • dĂ©finition des raccourcis et des rĂšgles.

Commentaires : voir le flux Atom ouvrir dans le navigateur

Donnez moi un NixOS Ă  ronger

NixOS

Petit aperçu de Nix : il y a plusieurs articles sympas ici, la rĂ©cente revue de Seb95, Ă  cause de laquelle je suis passĂ© sur cette distribution il y a quelques jours (et sachant que visiblement lui n’y est pas restĂ©!, peut-ĂȘtre qu’il me lit haha), ou cette revue plus ancienne, donc j’essaierai de mettre en avant d’autres aspects.

    Sommaire

    Mini histoire Ă  zapper

    Dejà reprécisons - il faut remonter à 2003 pour que Eelco Dolstra développe le gestionnaire de paquets Nix, mais la distribution, elle, NixOS date de 2006. Il y a deux versions par an, nommée YY.MM, par ex. 13.05 pour version de mai 2013 - brillant.

    Pour la suite j’écrirai simplement Nix pour dĂ©signer la distribution.

    En 2010 un wiki démarre. En 2013, la distribution 13.05 passe de upstart à systemd et systemd-boot au démarrage (alors appelé gummiboot). La version 13.10 est la premiÚre version stable de NixOS.
    On peut noter chez la concurrence, en 2014 le lancement du projet Atomic de Red Hat.
    En 2016, le wiki Nix officiel est clos et un wiki non officiel démarre

    Fedora Silverblue apparait 2018 comme projet de distinct de « Atomic ». En 2019 Open Suse dĂ©marre le projet Micro OS.
    CÎté Nix, en 2020 ont été intégrés les Flakes (22.05). Un installateur graphique apparait en 2022, sur la 22.05.
    En 2024, le wiki Nix officiel redémarre (mais le nom officiel demeure
)

    Une distribution rétro-futuriste

    Dans Nix, il n’y a pas de rĂ©pertoire /bin, de /sbin, de /lib ou de /usr. Tout est gardĂ© dans un /nix/store.

    Enfin moi j’ai quand mĂȘme un /usr/bin/env mais j’avoue ça fait peu, ou un /bin mais qui ne contient qu’un symlink pour bash. Mais bref

    Dans le /nix/store on va retrouver nos hiĂ©rarchies habituelles, rangĂ©es dans des « dĂ©rivations Â». Prenons firefox : je ne l’aurai pas directement dans /usr/bin mais dans le store voici comment ça se prĂ©sente

    $ ls -R /nix/store/lxgnpycfaac8w893wmka5hw3dad8w228-firefox-121.0
    /nix/store/lxgnpycfaac8w893wmka5hw3dad8w228-firefox-121.0:
    bin  lib  share
    
    /nix/store/lxgnpycfaac8w893wmka5hw3dad8w228-firefox-121.0/bin:
    firefox
    
    /nix/store/lxgnpycfaac8w893wmka5hw3dad8w228-firefox-121.0/lib:
    firefox  mozilla
    
    /nix/store/lxgnpycfaac8w893wmka5hw3dad8w228-firefox-121.0/lib/firefox:
    application.ini    defaults            firefox-bin   libgkcodecs.so        libmozavutil.so   libmozwayland.so   omni.ja        Throbber-small.gif
    browser            dependentlibs.list  fonts         libipcclientcerts.so  libmozgtk.so      libxul.so          pingsender     vaapitest
    crashreporter      distribution        glxtest       liblgpllibs.so        libmozsandbox.so  minidump-analyzer  platform.ini
    crashreporter.ini  firefox             gmp-clearkey  libmozavcodec.so      libmozsqlite3.so  mozilla.cfg        removed-files
    

    etc.
    Pour le reste c’est plus standard.

    $ ls /
    bin  boot  dev  etc  home  lib  lib64  lost+found  nix  proc  root  run  srv  sys  tmp  usr  var
    
    

    DĂ©claratif

    La configuration, utilisateurs réseaux paquets services saucisson fromage, tout est déclaré dans un fichier /etc/nixos/configuration.nix.
    Comme dĂ©finir un point de montage pour un disque ou les rĂšgles du pare-feu, qui correspondraient Ă  du /etc sur d’autres distributions, mais aussi par exemple crĂ©er un utilisateur - ce qui correspondrait plutĂŽt Ă  des commandes sur d’autres distributions, comme useradd.

    Quand vous « compilez » le fichier /etc/nixos/configuration.nix, Nix va s’occuper tout seul des /etc/fstab, iptables (*), /etc/group, et ainsi de suite ; en gĂ©nĂ©ral on prĂ©cise que l’on « switche » vers ce nouvel OS et Nix redĂ©marre les services avec la nouvelle config (Ă  vous de savoir si redĂ©marrer des services est suffisant, ou si pour prendre en compte les changements vous prĂ©fĂ©rez redĂ©marrer la session voire reboot).

    (*nftables dispo)

    Exemple fstab, au lieu d’éditer fstab je mets ça dans /etc/nixos/configuration.nix

     # FSTAB
      fileSystems."/home" = {
        device = "/dev/disk/by-uuid/220260f3-a7b2-4387-9a0b-9d17c604aa18";
        fsType = "ext4";
       options = [ # If you don't have this options attribute, it'll default to "defaults" 
         # boot options for fstab. Search up fstab mount options you can use
         "users" # Allows any user to mount and unmount
         "nofail" # Prevent system from failing if this drive doesn't mount     
       ];
      };
    

    Ou encore ma fichue imprimante Samsung
    Sous Debian, j’aurai peut-ĂȘtre ajoutĂ© un dĂ©pĂŽt dans /etc/apt, j’aurai rafraichi puis installĂ© un paquet. Sous Nix j’édite le fichier.

      # Enable CUPS to print documents.
      services.printing.enable = true;
      services.printing.drivers = [ pkgs.samsung-unified-linux-driver ];
    

    On peut mĂȘme se retrouver Ă  configuration de maniĂšre abstraite
 En effet, imaginons que je configure le pare-feu : quel pare-feu suis-je en train de configurer?

    networking.firewall.allowedTCPPorts = [ 80 443 ];
    

    La documentation vous apprendra que par dĂ©faut, Nix passe par iptables pour implĂ©menter les rĂšgles que vous prĂ©cisez. Avec la directive ci-dessous, les mĂȘmes rĂšgles seraient implĂ©mentĂ©es en se basant sur nftables.

    networking.nftables.enable
    

    Immuable

    Est-ce que NixOS est immuable? On pourrait dire, comme Distro Watch, non, car on peut en rĂ©alitĂ© Ă©crire sur la totalitĂ© du systĂšme de fichier. L’immuabilitĂ© est plutĂŽt fonctionnelle - au sens oĂč on ne lance pas de commande, on Ă©dite un fichier /etc/nixos/configuration.nix (que l’on peut scinder, au besoin), qui donnera toujours le mĂȘme rĂ©sultat. (spoil cf quand mĂȘme plus bas : channel).

    Retour arriĂšre

    AprĂšs construction du systĂšme, au dĂ©marrage, vous aurez le choix d’amorcer (booter) sur chaque version de l'OS que vous avez construite. On peut dĂ©marrer sur une ancienne version. Un peu comme dĂ©marrer sur une ancienne version du noyau mais appliquĂ© Ă  tout.

    Multi-utilisateurs

    Vous pouvez avoir plusieurs versions d’un paquet installĂ©es en mĂȘme temps, en fonction des utilisateurs. Certainement trĂšs utile
 et pas testĂ© chez moi.

    En somme

    Cette page décrit bien les logiques différentes entre Nix et un systÚme basé sur Debian pour quelques opérations courantes.

    Bon clairement si le besoin c’est installer firefox et qu’on doit Ă©diter un fichier /etc puis rebuild le systĂšme, on ne ressent pas particuliĂšrement d’avantage Ă  utiliser Nix vs un autre systĂšme (mais en cas de souci, vous serez bien content d’avoir le rollback
)

    • À noter cela dit que l’installation de paquets n’est pas vraiment plus longue. RebĂątir le systĂšme n’est pas vraiment plus long qu’un apt-get ou Ă©quivalent. Ce qui m’étonne le plus c’est que par dĂ©faut il n’y a pas de commande pour chercher des paquets (
 ??!!! 
bon il y a le site officiel et on peut par exemple installer nix-search-cli) .
    • On peut bien sĂ»r utiliser des Flatpak si on active cette option. Par dĂ©faut si on installe GNOME, cela vient d’ailleurs avec gnome-software qui n’inclut que les Flatpak. Au moins c’est un Gnome Software lĂ©ger, ça change ahem ahem

    • Pour les AppImage j’en parle plus bas

    Donc l’usage pour installer une application graphique ne changera pas vraiment la vie. À noter tout de mĂȘme que le dĂ©pĂŽt est particuliĂšrement large.

    Mais quid de paquets un peu plus complexes? Quand j’ai voulu installer nginx avec le TLS, j’ai eu une bonne surprise. J’imaginais une tannĂ©e du fait de devoir « passer par Nix Â» pour gĂ©rer tout ce qui est configuration et certificats. En effet plus question de lancer des commandes pour acquĂ©rir ou renouveler des certificats. Comment faire? Pour le coup la doc me l’a indiquĂ© rapidement.

          security.acme.acceptTerms = true;
          security.acme.defaults.email = "mon@email.example.com";
    
              services.nginx = {
                enable = true;
                  virtualHosts = {
                     "mon.domaine" = {
                         forceSSL = true;
                         enableACME = true;
                         root = "/var/www/mon.domaine";
                  };
    

    Et voilà! Nginx est installé, mon domaine pointe vers le bon dossier, le http redirige vers https, Nix acquiert les certificats (par défaut Let'sEncrypt mais se personnalise si on veut), et surtout Nix définit un systemd pour renouveler les certificats.

    Et lĂ  on voit que Nix c’est un peu l’opposĂ© d’une ditribution minimaliste comme Arch
 Les points forts de Arch sont les points faibles de Nix et rĂ©ciproquement


    À noter que /etc/nginx n’existe pas. Dans mon exemple ce sera nix/store/brxfza7n2hjy6n15ffdrb7wlr2fqygy8-nginx. conf


    $ systemctl status nginx
    ● nginx.service - Nginx Web Server
         Loaded: loaded (/etc/systemd/system/nginx.service; enabled; preset: ignored)
         Active: active (running) since Sat 2025-03-29 09:45:55 CET; 1 day 10h ago
     Invocation: 84e49760dcee4e5ea0a6baa79dd6ceb2
        Process: 35568 ExecReload=/nix/store/alqjcv381xp2wawjc919h1qr6p4q8gvj-nginx-1.26.3/bin/nginx -c /nix/store/brxfza7n2hjy6n15ffdrb7wlr2fqygy8-nginx.conf -t>
        Process: 35569 ExecReload=/nix/store/9m68vvhnsq5cpkskphgw84ikl9m6wjwp-coreutils-9.5/bin/kill -HUP $MAINPID (code=exited, status=0/SUCCESS)
    

    Oui tout est dans le nix store, bah oui logique.

    On voit aussi que cette distribution est aussi agrĂ©able qu’elle est

    • bien empaquetĂ©e
    • bien documentĂ©e (j’y reviens plus bas
)

    Je nixifie tu nixifies

    DĂ©finir des choses dans /etc/nixos en dĂ©claratif plutĂŽt que de taper des commandes ou Ă©diter d’autres fichiers comme /etc/nginx, c’est ce qu’on appelle nixifier, qui vient du verbe galĂ©rer-de-ouf. Non je plaisante.

    Cela veut dire que pour tout ce que vous pouvez faire avec les services, le paquet Nix doit proposer des options pour le faire dans /etc/nixos
 Un peu effrayant au premier abord? Par ex. si je veux utiliser une fonction plus exotique de Nginx, alors la config Nix doit inclure un moyen de le spĂ©cifier, et doit inclure chaque option Nginx ??

    En fait de nombreux services vont proposer d’ajouter des options « extra ». Par ex. si je veux utiliser la fonction Nginx « rate-limit » et que le paquet Nix n’a pas d’option pour ça
 Eh bien je vais utiliser une directive « appendHttpConfig » qui va me permettre de directement Ă©crire dans le nginx.conf. Comme cela je continue d’utiliser les avantages Nix, mais je peux profiter d’options non nixifiĂ©es.

         services.nginx = {
            enable = true;
        appendHttpConfig = " limit_req_zone $binary_remote_addr zone=mylimit:10m rate=5r/m; " ;
              virtualHosts = {
                 "mon.domaine" = {
                     forceSSL = true;
                     enableACME = true;
                     root = "/var/www/mon.domaine";
             extraConfig = "limit_req zone=mylimit;";
              };
    

    On peut mĂȘme avoir le besoin de gĂ©nĂ©rer un fichier /etc. Pas de souci, exemple avec fail2ban, on peut gĂ©nĂ©rer un fichier /etc/fail2ban/filter.d

        # Defines a filter 
        "fail2ban/filter.d/nginx-py.local".text = pkgs.lib.mkDefault (pkgs.lib.mkAfter ''
          [Definition]
    failregex = ^.* \[error\] \d+#\d+: \*\d+ (\S+ )?\"\S+\" (failed|is not found) \(2\: No such file or directory\), client\: <HOST>, server\: \S*\, request: \"(GET|POST|HEAD) .*$
        '');
      };
    

    Interdit !

    Je ne vais pas rentrer dans le dĂ©tail, car je suis encore dĂ©butant, mais on ne peut pas exĂ©cuter ce que l’on veut sous Nix.

    $ touch holalal.sh
    $ echo -e '#!/bin/sh \necho "toto"' >> holalal.sh
    $ chmod +x holalal.sh
    $ ./holalal.sh
    bash: ./holalal.sh: Permission denied
    $ bash holalal.sh 
    toto
    

    AppliquĂ© aux AppImage, eh bien j’ai un peu galĂ©rĂ©. Apparemment on lance $appimage-run . Pas de bol pour moi, ça ne passe pas. J’ai testĂ© deux trois un million de trucs Ă  l’aveuge pour le fun (extraire puis ajouter chmod+x, passer par exec, voire par du sudo oh la la pardonnez moi
) Comme Google n’était clairement pas mon ami, j’ai voulu tester d’empaqueter l’AppImage moi-mĂȘme. C’était la bonne piste! Si j’étais familier avec Nix cela m’aurait pris 2s. Un petit fichier .nix de quelques lignes plus tard, je peux construire cette AppImage et cette fois la lancer.
    Dans de nombreux cas vous trouverez l’ppImage dĂ©jĂ  empaquetĂ©e.

    Channel

    Vous souvenez vous, Nix propose une version tous les 6 mois. Mais dites-moi
 Comment met-on Ă  jour si on lance pas de commande dans Nix et qu’on n’utilise que vi /etc/nixos/configuration.nix ?
    Et lĂ , voilĂ  la vĂ©ritĂ© rĂ©vĂ©lĂ©e : oui on utilise des commandes, et non Nix n’est pas que dĂ©clarative.
    (cf par exemple https://nlewo.github.io/nixos-manual-sphinx/installation/upgrading.xml.html )

    # nix-channel --add https://nixos.org/channels/*channel-name* nixos
    # nixos-rebuild switch --upgrade
    

    On peut Ă©galement spĂ©cifier dans la config que l’on veut automatiquement passer sur les nouvelles versions. En attendant cela veut dire que deux fichiers /etc/nixos/configuration.nix ne correspondent pas forcĂ©ment au mĂȘme OS!

    Note sur les channels : similairement Ă  Debian, il y a un channel unstable si on veut passer en mode rolling.

    Pour rĂ©soudre cette question des channels il y a les Flake. En gros l’idĂ©e est de prĂ©ciser non seulement qu’un paquet est installĂ© mais aussi quelle version.
    https://nixos-and-flakes.thiscute.world/nixos-with-flakes/introduction-to-flakes#nix-flakes-and-classic-nix
    Mais rien n’oblige à utiliser Flake.

    2 wikis et 2000 manuels

    • Deux wikis : un wiki officiel, qui a Ă©tĂ© suspendu, car il n’était pas super Ă  jour, du coup un wiki non officiel est apparu, puis ils ont remis le wiki officiel :O !!! du coup on a plein de manuels (utilisateur, dev, celui du gestionnaire de paquets Nix
) et deux wikis et on se retrouve Ă  jongler.
    • On a l’impression d’avoir atteint le point oĂč toute tentative d’amĂ©liorer ne fait qu’empirer. Je propose « Tools that need a manual to find the manual » ! 

    • Mes premiĂšres recherches sur Internet sont simplement dĂ©sastreuses, je tombe sur plein de versions diffĂ©rentes. Et souvenez-vous que Nix est Ă  la fois un langage, un gestionnaire, un builder, une distribution

    • Peut-ĂȘtre que des sites pour rĂ©pertorier , comme https://nixos.org/learn/ peuvent un peu aider


    xkcd

    Mais Ă  l’heure qu’il est, si Nix a un dĂ©faut c’est bien la documentation chaotique.

    Et les autres bombes atomiques?

    Fedora Silverblue propose aussi le retour arriÚre. Toutes les applications graphiques sont des Flatpak, et les applis dév utilisent le module Toolbox. Cf la présentation par Renault, plutÎt historique puis pratique.
    Silverblue semble avoir de larges dĂ©fis Ă  relever mais pourrait reprĂ©senter l’avenir de Fedora.

    CĂŽtĂ© Open Suse atomic, il y a eu Micro OS (2019), puis Aeon d’abord basĂ© dessus puis devenu projet indĂ©pendant pour offir GNOME. (En parallĂšle le projet Kalpa se dĂ©veloppe pour le bureau KDE.) Vous pouvez lire cette revue par LWN. Sur Aeon la mĂ©thode prĂ©fĂ©rĂ©e d’installation de paquets est encore Flatpak, mais il y a aussi Distrobox.

    Voilà pour ce que je connais, cela mériterait bien plus!

    Commentaires : voir le flux Atom ouvrir dans le navigateur

    ❌